PCRE is a widely used Unicode-compatible regular expression engine. It implements Perl5 regex syntax and semantics, some Python, .NET and Onigurama extensions. It uses just-in-time compilation, has consistent escaping rules, and allows for recursion, assertions and conditional patterns or complex subroutines and callouts, thus goes far beyond classic regular expressions.
minor feature: The full list of changes that includes and tidies is, as always, in ChangeLog. These are the most important new features: 1. The main interpreter, pcre2_match(), has been refactored into a new version. That does not use recursive function calls (and therefore the system stack) for Remembering backtracking positions. This makes --disable-stack-for-recursion a NOOP. The new implementation allows backtracking into recursive group calls in Patterns, making it more compatible with Perl, and also some other Previously hard-to-do. For patterns that have a lot of backtracking, the Heap is now used, and there is explicit limit on the amount, settable by Pcre2_set_heap_limit() or (*LIMIT_HEAP=xxx). The "recursion limit" is retained, But is renamed as "depth limit" (though the old names remain for Compatibility). There is also a change in the way callouts from pcre2_match() are handled. The. Offset_vector field in the callout block is no longer a pointer to the Actual ovector that was passed to the matching function in the match data Block. Instead it points to an internal ovector of a size large enough to hold All possible captured substrings in the pattern. 2. The new option PCRE2_ENDANCHORED insists that a pattern match must end at. The end of the subject. 3. The new option PCRE2_EXTENDED_MORE implements Perl's /xx feature, and. Pcre2test is upgraded to support it. Setting within the pattern by (?xx) is Also supported. 4. (?n) can be used to set PCRE2_NO_AUTO_CAPTURE, because Perl now has this. 5. Additional compile options in the compile context are now available, and the. First two are: PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES and PCRE2_EXTRA_BAD_ESCAPE_IS LITERAL. 6. The newline type PCRE2_NEWLINE_NUL is now available. 7. The match limit value now also applies to pcre2_dfa_match() as there are. Patterns that can use up a lot of resources without necessarily recursing very Deeply. 8. The option REG_PEND (a GNU extension) is now available for the POSIX. Wrappe