Subject: RE: bug#51458: grep PCRE - '^' and '$' are not recognized as begin and end of line for multiline strings

From: "Skrzyniarz, Slawomir (Nokia - PL/Krakow)" <[email-masked]>
Date: Tue, 9 Nov 2021 06:48:56 +0000

Thank you Carlo.
Replacing (?: -> (?m:
Solve my issue.

Thank you,
Sławek

-----Original Message-----
From: Carlo Marcelo Arenas Belón <[email-masked]> 
Sent: Monday, November 8, 2021 9:29 PM
To: Skrzyniarz, Slawomir (Nokia - PL/Krakow) <[email-masked]>
Cc: [email-masked]
Subject: bug#51458: grep PCRE - '^' and '$' are not recognized as begin and end of line for multiline strings

older versions of PCRE support in grep used multiline mode by default, which
seems to be required by your expression to work and is also on by default in
the regex site.

you can add it back using an internal option[1] from PCRE, as shown in the
following modified expression from your original example:

/\A(?m:\s*^(?:#\w+.*\s*|extern\s+.+)$)*+(?<namespace>\s*namespace(?:\s+utTestNamespace\s*(?>(?<block>{(?:[^{}]*(?&block)*)*}))|(\s*[\w:]*\s*{)(?&namespace)\s*}))\s*\z/

Carlo

[1] https://www.pcre.org/current/doc/html/pcre2pattern.html#internaloptions