Documentation and test update.

This commit is contained in:
Philip.Hazel 2019-07-28 15:32:11 +00:00
parent 24c62fc0d0
commit fe2df37c9f
5 changed files with 88 additions and 19 deletions

View File

@ -3758,11 +3758,20 @@ retained in both cases.
</P> </P>
<P> <P>
The remaining verbs act only when a later failure causes a backtrack to The remaining verbs act only when a later failure causes a backtrack to
reach them. This means that their effect is confined to the assertion, reach them. This means that, for the Perl-compatible assertions, their effect
because lookaround assertions are atomic. A backtrack that occurs after an is confined to the assertion, because Perl lookaround assertions are atomic. A
assertion is complete does not jump back into the assertion. Note in particular backtrack that occurs after such an assertion is complete does not jump back
that a (*MARK) name that is set in an assertion is not "seen" by an instance of into the assertion. Note in particular that a (*MARK) name that is set in an
(*SKIP:NAME) latter in the pattern. assertion is not "seen" by an instance of (*SKIP:NAME) later in the pattern.
</P>
<P>
PCRE2 now supports non-atomic positive assertions, as described in the section
entitled
<a href="#nonatomicassertions"> "Non-atomic assertions"</a>
above. These assertions must be standalone (not used as conditions). They are
not Perl-compatible. For these assertions, a later backtrack does jump back
into the assertion, and therefore verbs such as (*COMMIT) can be triggered by
backtracks from later in the pattern.
</P> </P>
<P> <P>
The effect of (*THEN) is not allowed to escape beyond an assertion. If there The effect of (*THEN) is not allowed to escape beyond an assertion. If there
@ -3820,7 +3829,7 @@ Cambridge, England.
</P> </P>
<br><a name="SEC32" href="#TOC1">REVISION</a><br> <br><a name="SEC32" href="#TOC1">REVISION</a><br>
<P> <P>
Last updated: 13 July 2019 Last updated: 28 July 2019
<br> <br>
Copyright &copy; 1997-2019 University of Cambridge. Copyright &copy; 1997-2019 University of Cambridge.
<br> <br>

View File

@ -9439,11 +9439,19 @@ BACKTRACKING CONTROL
substrings are retained in both cases. substrings are retained in both cases.
The remaining verbs act only when a later failure causes a backtrack to The remaining verbs act only when a later failure causes a backtrack to
reach them. This means that their effect is confined to the assertion, reach them. This means that, for the Perl-compatible assertions, their
because lookaround assertions are atomic. A backtrack that occurs after effect is confined to the assertion, because Perl lookaround assertions
an assertion is complete does not jump back into the assertion. Note in are atomic. A backtrack that occurs after such an assertion is complete
particular that a (*MARK) name that is set in an assertion is not does not jump back into the assertion. Note in particular that a
"seen" by an instance of (*SKIP:NAME) latter in the pattern. (*MARK) name that is set in an assertion is not "seen" by an instance
of (*SKIP:NAME) later in the pattern.
PCRE2 now supports non-atomic positive assertions, as described in the
section entitled "Non-atomic assertions" above. These assertions must
be standalone (not used as conditions). They are not Perl-compatible.
For these assertions, a later backtrack does jump back into the asser-
tion, and therefore verbs such as (*COMMIT) can be triggered by back-
tracks from later in the pattern.
The effect of (*THEN) is not allowed to escape beyond an assertion. If The effect of (*THEN) is not allowed to escape beyond an assertion. If
there are no more branches to try, (*THEN) causes a positive assertion there are no more branches to try, (*THEN) causes a positive assertion
@ -9494,7 +9502,7 @@ AUTHOR
REVISION REVISION
Last updated: 13 July 2019 Last updated: 28 July 2019
Copyright (c) 1997-2019 University of Cambridge. Copyright (c) 1997-2019 University of Cambridge.
------------------------------------------------------------------------------ ------------------------------------------------------------------------------

View File

@ -1,4 +1,4 @@
.TH PCRE2PATTERN 3 "13 July 2019" "PCRE2 10.34" .TH PCRE2PATTERN 3 "28 July 2019" "PCRE2 10.34"
.SH NAME .SH NAME
PCRE2 - Perl-compatible regular expressions (revised API) PCRE2 - Perl-compatible regular expressions (revised API)
.SH "PCRE2 REGULAR EXPRESSION DETAILS" .SH "PCRE2 REGULAR EXPRESSION DETAILS"
@ -3796,11 +3796,22 @@ a positive assertion and false for a negative one; captured substrings are
retained in both cases. retained in both cases.
.P .P
The remaining verbs act only when a later failure causes a backtrack to The remaining verbs act only when a later failure causes a backtrack to
reach them. This means that their effect is confined to the assertion, reach them. This means that, for the Perl-compatible assertions, their effect
because lookaround assertions are atomic. A backtrack that occurs after an is confined to the assertion, because Perl lookaround assertions are atomic. A
assertion is complete does not jump back into the assertion. Note in particular backtrack that occurs after such an assertion is complete does not jump back
that a (*MARK) name that is set in an assertion is not "seen" by an instance of into the assertion. Note in particular that a (*MARK) name that is set in an
(*SKIP:NAME) latter in the pattern. assertion is not "seen" by an instance of (*SKIP:NAME) later in the pattern.
.P
PCRE2 now supports non-atomic positive assertions, as described in the section
entitled
.\" HTML <a href="#nonatomicassertions">
.\" </a>
"Non-atomic assertions"
.\"
above. These assertions must be standalone (not used as conditions). They are
not Perl-compatible. For these assertions, a later backtrack does jump back
into the assertion, and therefore verbs such as (*COMMIT) can be triggered by
backtracks from later in the pattern.
.P .P
The effect of (*THEN) is not allowed to escape beyond an assertion. If there The effect of (*THEN) is not allowed to escape beyond an assertion. If there
are no more branches to try, (*THEN) causes a positive assertion to be false, are no more branches to try, (*THEN) causes a positive assertion to be false,
@ -3859,6 +3870,6 @@ Cambridge, England.
.rs .rs
.sp .sp
.nf .nf
Last updated: 13 July 2019 Last updated: 28 July 2019
Copyright (c) 1997-2019 University of Cambridge. Copyright (c) 1997-2019 University of Cambridge.
.fi .fi

15
testdata/testinput2 vendored
View File

@ -5688,6 +5688,21 @@ a)"xI
/(*napla:abc|abd)/I /(*napla:abc|abd)/I
/(*napla:a|(.)(*ACCEPT)zz)\1../
abcd
/(*napla:a(*ACCEPT)zz|(.))\1../
abcd
/(*napla:a|(*COMMIT)(.))\1\1/
aabc
\= Expect no match
abbc
/(*napla:a|(.))\1\1/
aabc
abbc
# ---- # ----
# Expect error (recursion => not fixed length) # Expect error (recursion => not fixed length)

26
testdata/testoutput2 vendored
View File

@ -17185,6 +17185,32 @@ May match empty string
First code unit = 'a' First code unit = 'a'
Subject length lower bound = 1 Subject length lower bound = 1
/(*napla:a|(.)(*ACCEPT)zz)\1../
abcd
0: abc
1: a
/(*napla:a(*ACCEPT)zz|(.))\1../
abcd
0: bcd
1: b
/(*napla:a|(*COMMIT)(.))\1\1/
aabc
0: aa
1: a
\= Expect no match
abbc
No match
/(*napla:a|(.))\1\1/
aabc
0: aa
1: a
abbc
0: bb
1: b
# ---- # ----
# Expect error (recursion => not fixed length) # Expect error (recursion => not fixed length)