# printf (($ "### line: " g l $, line)); #
In the uncommented cases the string literals don't show that wrong effect, so
these are *correctly* highlighted:
CHAR x = "#";
STRING y = "###";
But commenting out phrases with such literals as in
# CHAR x = "#"; #
# STRING y = "###"; #
will spoil all subsequent highlighting.