http://www.perlmonks.org?node_id=782882


in reply to Look-Arounds in Regexes are Hard

I view

/(?:(?!$re).)*/s

as the equivalent of

/[^$chars]*/

except it can prevent the match of entire regexps instead of a choice of characters. I call it the common use of a negative lookahead. If you're using a negative lookahead, that construct will probably satisfy your needs.

Keep in mind that both expressions can successfully match 0 characters if not properly anchored.

I think it would be nice if /(?^$re)/ could be added as a shortcut to /(?:(?!$re)(?s:.)*/. It would be more readable, and it would help prevent the common misuse of negative lookahead (/(?!$re.*)/).

Update: Formatting.