Your answer is more like what rovfsays he wants (FOO ... things things ... must not be BA[RZ] ... end) but differ from the regexen he presented initially: /^FOO(.*)$/ and $1 !~ /^BA[RZ]$/ mean (FOO ... things things ... end AND "things things" must not be BA[RZ]). The difference is that your answer does not FOOMABAR, and his expression does match it.