execuse me

              \"([^\\\n\"]|{ESCSEQ})*\"
... Does it mean there should not be a '\n' or '\' in the string?

Please read the flex manual to resolve questions like this one. For scan.l,
ESCSEQ allows '\n' and '\' to appear in strings.

    Vern