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

Thank you,
Sławek

-----Original Message-----
From: Carlo Marcelo Arenas Belón <care...@gmail.com> 
Sent: Monday, November 8, 2021 9:29 PM
To: Skrzyniarz, Slawomir (Nokia - PL/Krakow) <slawomir.skrzyni...@nokia.com>
Cc: 51...@debbugs.gnu.org
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



Reply via email to