Diff for /embedaddon/pcre/testdata/testoutput2 between versions 1.1.1.3 and 1.1.1.4

version 1.1.1.3, 2012/10/09 09:19:18 version 1.1.1.4, 2013/07/22 08:25:57
Line 448  Need char = '=' Line 448  Need char = '='
   
 /(?<!bar|cattle)foo/I  /(?<!bar|cattle)foo/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 6
 No options  No options
 First char = 'f'  First char = 'f'
 Need char = 'o'  Need char = 'o'
 Max lookbehind = 6  
     foo      foo
  0: foo   0: foo
     catfoo      catfoo
Line 631  No match Line 631  No match
   
 /\Aabc/Im  /\Aabc/Im
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 Options: anchored multiline  Options: anchored multiline
 No first char  No first char
 No need char  No need char
Line 656  No need char Line 657  No need char
   
 /(?<=foo)[ab]/IS  /(?<=foo)[ab]/IS
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 3
 No options  No options
 No first char  No first char
 No need char  No need char
 Max lookbehind = 3  
 Subject length lower bound = 1  Subject length lower bound = 1
 Starting byte set: a b   Starting byte set: a b 
   
 /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
 Capturing subpattern count = 1  Capturing subpattern count = 1
   Max lookbehind = 3
 No options  No options
 No first char  No first char
 Need char = 'a'  Need char = 'a'
 Max lookbehind = 3  
 Subject length lower bound = 5  Subject length lower bound = 5
 Starting byte set: a o   Starting byte set: a o 
   
Line 682  Starting byte set: a b  Line 683  Starting byte set: a b 
   
 /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 4
 Contains explicit CR or LF match  Contains explicit CR or LF match
 Options: multiline  Options: multiline
 No first char  No first char
 Need char = 'r'  Need char = 'r'
 Max lookbehind = 4  
     foo\nbarbar      foo\nbarbar
  0: bar   0: bar
     ***Failers      ***Failers
Line 700  No match Line 701  No match
   
 /^(?<=foo\n)bar/Im  /^(?<=foo\n)bar/Im
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 4
 Contains explicit CR or LF match  Contains explicit CR or LF match
 Options: multiline  Options: multiline
 First char at start or follows newline  First char at start or follows newline
 Need char = 'r'  Need char = 'r'
 Max lookbehind = 4  
     foo\nbarbar      foo\nbarbar
  0: bar   0: bar
     ***Failers      ***Failers
Line 743  Failed: lookbehind assertion is not fixed length at of Line 744  Failed: lookbehind assertion is not fixed length at of
   
 /(?<=bullock|donkey)-cart/I  /(?<=bullock|donkey)-cart/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 7
 No options  No options
 First char = '-'  First char = '-'
 Need char = 't'  Need char = 't'
 Max lookbehind = 7  
     the bullock-cart      the bullock-cart
  0: -cart   0: -cart
     a donkey-cart race      a donkey-cart race
Line 760  No match Line 761  No match
   
 /(?<=ab(?i)x|y|z)/I  /(?<=ab(?i)x|y|z)/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 3
 No options  No options
 No first char  No first char
 No need char  No need char
 Max lookbehind = 3  
   
 /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
 Capturing subpattern count = 2  Capturing subpattern count = 2
   Max lookbehind = 4
 No options  No options
First char at start or follows newlineNo first char
 No need char  No need char
 Max lookbehind = 4  
     alphabetabcd      alphabetabcd
  0: alphabetabcd   0: alphabetabcd
  1: abcd   1: abcd
Line 781  Max lookbehind = 4 Line 782  Max lookbehind = 4
   
 /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 4
 No options  No options
 First char = 'Z'  First char = 'Z'
 Need char = 'Z'  Need char = 'Z'
 Max lookbehind = 4  
     abxyZZ      abxyZZ
  0: ZZ   0: ZZ
     abXyZZ      abXyZZ
Line 810  No match Line 811  No match
   
 /(?<!(foo)a)bar/I  /(?<!(foo)a)bar/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   Max lookbehind = 4
 No options  No options
 First char = 'b'  First char = 'b'
 Need char = 'r'  Need char = 'r'
 Max lookbehind = 4  
     bar      bar
  0: bar   0: bar
     foobbar      foobbar
Line 823  No match Line 824  No match
     fooabar      fooabar
 No match  No match
   
 /This one is here because Perl 5.005_02 doesn't fail it/I  
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 't'  
   
 /^(a)?(?(1)a|b)+$/I  
 Capturing subpattern count = 1  
 Options: anchored  
 No first char  
 No need char  
     *** Failers  
 No match  
     a  
 No match  
   
 /This one is here because Perl behaves differently; see also the following/I  /This one is here because Perl behaves differently; see also the following/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
 No options  No options
Line 1212  No need char Line 1197  No need char
   
 /\Biss\B/I+  /\Biss\B/I+
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = 'i'  First char = 'i'
 Need char = 's'  Need char = 's'
 Max lookbehind = 1  
     Mississippi      Mississippi
  0: iss   0: iss
  0+ issippi   0+ issippi
Line 1233  Need char = 's' Line 1218  Need char = 's'
   
 /\Biss\B/IG+  /\Biss\B/IG+
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = 'i'  First char = 'i'
 Need char = 's'  Need char = 's'
 Max lookbehind = 1  
     Mississippi      Mississippi
  0: iss   0: iss
  0+ issippi   0+ issippi
   
 /\Biss\B/Ig+  /\Biss\B/Ig+
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = 'i'  First char = 'i'
 Need char = 's'  Need char = 's'
 Max lookbehind = 1  
     Mississippi      Mississippi
  0: iss   0: iss
  0+ issippi   0+ issippi
Line 1259  No match Line 1244  No match
   
 /(?<=[Ms])iss/Ig+  /(?<=[Ms])iss/Ig+
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = 'i'  First char = 'i'
 Need char = 's'  Need char = 's'
 Max lookbehind = 1  
     Mississippi      Mississippi
  0: iss   0: iss
  0+ issippi   0+ issippi
Line 1271  Max lookbehind = 1 Line 1256  Max lookbehind = 1
   
 /(?<=[Ms])iss/IG+  /(?<=[Ms])iss/IG+
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = 'i'  First char = 'i'
 Need char = 's'  Need char = 's'
 Max lookbehind = 1  
     Mississippi      Mississippi
  0: iss   0: iss
  0+ issippi   0+ issippi
Line 1452  Need char = 'r' Line 1437  Need char = 'r'
   
 /...(?<=abc)/I  /...(?<=abc)/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 3
 No options  No options
 No first char  No first char
 No need char  No need char
 Max lookbehind = 3  
   
 /abc(?!pqr)/I  /abc(?!pqr)/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
Line 3233  No match Line 3218  No match
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = '8'  First char = '8'
 Need char = 'X'  Need char = 'X'
 Max lookbehind = 1  
   
 |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ  |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
 ------------------------------------------------------------------  ------------------------------------------------------------------
Line 3247  Max lookbehind = 1 Line 3232  Max lookbehind = 1
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = '$'  First char = '$'
 Need char = 'X'  Need char = 'X'
 Max lookbehind = 1  
   
 /(.*)\d+\1/I  /(.*)\d+\1/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
Line 3763  Callout 2: last capture = -1 Line 3748  Callout 2: last capture = -1
   
 /(?<=(abc)(?C))xyz/I  /(?<=(abc)(?C))xyz/I
 Capturing subpattern count = 1  Capturing subpattern count = 1
   Max lookbehind = 3
 No options  No options
 First char = 'x'  First char = 'x'
 Need char = 'z'  Need char = 'z'
 Max lookbehind = 3  
    abcxyz\C+     abcxyz\C+
 Callout 0: last capture = 1  Callout 0: last capture = 1
  0: <unset>   0: <unset>
Line 4363  Minimum match() recursion limit = 6 Line 4348  Minimum match() recursion limit = 6
  1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
 Minimum match() limit = 32768  Minimum match() limit = 32768
Minimum match() recursion limit = 42Minimum match() recursion limit = 29
 No match  No match
   
 /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
Line 5411  Need char = '3' Line 5396  Need char = '3'
   
 /\b.*/I  /\b.*/I
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 No first char  No first char
 No need char  No need char
 Max lookbehind = 1  
   ab cd\>1    ab cd\>1
  0:  cd   0:  cd
   
 /\b.*/Is  /\b.*/Is
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 Options: dotall  Options: dotall
 No first char  No first char
 No need char  No need char
 Max lookbehind = 1  
   ab cd\>1    ab cd\>1
  0:  cd   0:  cd
   
Line 8803  No match Line 8788  No match
  1: \x0a   1: \x0a
   
 /a(*CR)b/  /a(*CR)b/
Failed: (*VERB) not recognized at offset 5Failed: (*VERB) not recognized or malformed at offset 5
   
 /(*CR)a.b/  /(*CR)a.b/
     a\nb      a\nb
Line 9276  No need char Line 9261  No need char
  +7 ^ ^     b   +7 ^ ^     b
  +7 ^^      b   +7 ^^      b
  +7 ^       b   +7 ^       b
   +11 ^       ^
 +12 ^       )  +12 ^       )
 +13 ^         +13 ^       
  0:    0: 
Line 9406  No match Line 9392  No match
  +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
  +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
  +8 ^ ^      [a]   +8 ^ ^      [a]
   +17 ^ ^      |
 +21 ^ ^      "  +21 ^ ^      "
 +18 ^ ^      b  +18 ^ ^      b
 +19 ^  ^     )  +19 ^  ^     )
  +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
  +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
  +8 ^  ^     [a]   +8 ^  ^     [a]
   +17 ^  ^     |
 +21 ^  ^     "  +21 ^  ^     "
 +22 ^   ^    $  +22 ^   ^    $
 +23 ^   ^      +23 ^   ^    
Line 9719  Partial match: abc12 Line 9707  Partial match: abc12
     xyzabc123pqr       xyzabc123pqr 
  0: 123   0: 123
     xyzabc12\P      xyzabc12\P
Partial match: abc12Partial match at offset 6: abc12
     xyzabc12\P\P      xyzabc12\P\P
Partial match: abc12Partial match at offset 6: abc12
   
 /\babc\b/  /\babc\b/
     +++abc+++      +++abc+++
  0: abc   0: abc
     +++ab\P      +++ab\P
Partial match: +abPartial match at offset 3: +ab
     +++ab\P\P        +++ab\P\P  
Partial match: +abPartial match at offset 3: +ab
   
 /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
 ------------------------------------------------------------------  ------------------------------------------------------------------
Line 10110  No set of starting bytes Line 10098  No set of starting bytes
 "(?>.*/)foo"SI  "(?>.*/)foo"SI
 Capturing subpattern count = 0  Capturing subpattern count = 0
 No options  No options
First char at start or follows newlineNo first char
 Need char = 'o'  Need char = 'o'
 Subject length lower bound = 4  Subject length lower bound = 4
 No set of starting bytes  No set of starting bytes
Line 10353  Partial match: abca Line 10341  Partial match: abca
     xxxxabcde\P\P      xxxxabcde\P\P
 Partial match: abcde  Partial match: abcde
   
/-- This is not in the Perl >= 5.10 test because Perl seems currently to be/-- This is not in the Perl-compatible test because Perl seems currently to be
     broken and not behaving as specified in that it *does* bumpalong after      broken and not behaving as specified in that it *does* bumpalong after
     hitting (*COMMIT). --/      hitting (*COMMIT). --/
   
Line 10549  No match Line 10537  No match
         End          End
 ------------------------------------------------------------------  ------------------------------------------------------------------
   
/ -- The first four of these are not in the Perl >= 5.10 test because Perl / -- This one is here because Perl gives the match as "b" rather than "ab". I
     documents that the use of \K in assertions is "not well defined". The 
     last is here because Perl gives the match as "b" rather than "ab". I 
      believe this to be a Perl bug. --/         believe this to be a Perl bug. --/  
               
 /(?=a\Kb)ab/  
     ab   
  0: b  
   
 /(?!a\Kb)ac/  
     ac   
  0: ac  
       
 /^abc(?<=b\Kc)d/  
     abcd  
  0: cd  
   
 /^abc(?<!b\Kq)d/  
     abcd  
  0: abcd  
   
 /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
     ab       ab 
  0: ab   0: ab
  1: ab   1: ab
   
 /----------------------/  
   
 /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
 Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
   
Line 10596  Failed: an argument is not allowed for (*ACCEPT), (*FA Line 10564  Failed: an argument is not allowed for (*ACCEPT), (*FA
     ACABX      ACABX
 No match  No match
   
/--- These should be different, but in Perl 5.11 are not, which I think/--- These should be different, but in Perl they are not, which I think
      is a bug in Perl. ---/       is a bug in Perl. ---/
   
 /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
Line 10607  No match Line 10575  No match
     AC      AC
 No match  No match
           
 /--- This should fail; the SKIP advances by one, but when we get to AC, the  
      PRUNE kills it. Perl behaves differently. ---/   
       
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK  
     AAAC  
 No match, mark = A  
   
 /--- Mark names can be duplicated. Perl doesn't give a mark for this one,  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
 though PCRE does. ---/  though PCRE does. ---/
   
Line 10647  No match Line 10608  No match
     abcccd        abcccd  
 No match  No match
           
/--- Perl 5.11 gets some of these wrong ---/ /--- Perl gets some of these wrong ---/ 
   
 /(?>.(*ACCEPT))*?5/  /(?>.(*ACCEPT))*?5/
     abcde      abcde
Line 10826  No match Line 10787  No match
     X\x0d\x0a      X\x0d\x0a
 No match  No match
   
 /-- Perl treats this one differently, not failing the second string. I believe  
     that is a bug in Perl. --/  
   
 /^((abc|abcx)(*THEN)y|abcd)/  
     abcd  
  0: abcd  
  1: abcd  
     *** Failers   
 No match  
     abcxy   
 No match  
   
 /(?<=abc)def/  /(?<=abc)def/
     abc\P\P      abc\P\P
Partial match: abcPartial match at offset 3: abc
   
 /abc$/  /abc$/
     abc      abc
Line 11319  No match Line 11268  No match
   
 /(a)b|ac/++SS  /(a)b|ac/++SS
     ac\O3      ac\O3
 Matched, but too many substrings  
  0: ac   0: ac
  0+    0+ 
           
Line 11679  No match Line 11627  No match
   
 /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS  /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 First char = 't'  First char = 't'
 Need char = 't'  Need char = 't'
 Max lookbehind = 1  
 Subject length lower bound = 18  Subject length lower bound = 18
 No set of starting bytes  No set of starting bytes
   
 /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS  /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
 Capturing subpattern count = 0  Capturing subpattern count = 0
   Max lookbehind = 1
 No options  No options
 No first char  No first char
 No need char  No need char
 Max lookbehind = 1  
 Subject length lower bound = 8  Subject length lower bound = 8
 Starting byte set: < o t u   Starting byte set: < o t u 
   
/a(*SKIP)c|b(*ACCEPT)|/+SI/a(*SKIP)c|b(*ACCEPT)|/+S!I
 Capturing subpattern count = 0  Capturing subpattern count = 0
 No options  No options
 No first char  No first char
 No need char  No need char
Study returned NULLSubject length lower bound = -1
 No set of starting bytes
     a      a
  0:    0: 
  0+    0+ 
Line 11761  Minimum match() limit = 86 Line 11710  Minimum match() limit = 86
 Minimum match() recursion limit = 45  Minimum match() recursion limit = 45
  0: abbbbbbbbbbbbbbbbbbbbba   0: abbbbbbbbbbbbbbbbbbbbba
   
 /-- These tests are in agreement with development Perl 5.015, which has fixed  
     some things, but they don't all work with 5.012, so they aren't in the  
     Perl-compatible tests. Those after the first come from Perl's own test  
     files. --/  
       
 /^((yes|no)(*THEN)(*F))?/  
   yes  
 No match  
   
 /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C? (*THEN)  | A D) z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C? (*THEN)  | A D) \s* z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   (?:C|) (*THEN)  | A D) z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   C{0,6} (*THEN)  | A D) z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x  
 AbcdCEBefgBhiBqz  
 No match  
   
 /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x  
 AbcdCEBefgBhiBqz  
 No match  
   
 /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x  
 AbcdCBefgBhiBqz  
 No match  
   
 /-----------------------------------------------/    
   
 /^(?>a+)(?>(z+))\w/BZ  /^(?>a+)(?>(z+))\w/BZ
 ------------------------------------------------------------------  ------------------------------------------------------------------
         Bra          Bra
Line 12336  Partial match: \x0d\x0d Line 12226  Partial match: \x0d\x0d
     \r\r\r\P\P           \r\r\r\P\P     
  0: \x0d\x0d   0: \x0d\x0d
   
/-- These two are here because Perl does not match: it seems to allow the"AB(C(D))(E(F))?(?(?=\2)(?=\4))"
COMMIT to escape from the assertion. --/    ABCDGHI\O03
 Matched, but too many substrings
  0: ABCD
     
 /-- These are all run as real matches in test 1; here we are just checking the
 settings of the anchored and startline bits. --/ 
   
/(?=a(*COMMIT)b|ac)ac|ac//(?>.*?a)(?<=ba)/I
    acCapturing subpattern count = 0
 0: acMax lookbehind = 2
 No options
 No first char
 Need char = 'a'
   
/(?=a(*COMMIT)b|(ac)) ac | (a)c/x/(?:.*?a)(?<=ba)/I
    acCapturing subpattern count = 0
 0: acMax lookbehind = 2
 No options
 First char at start or follows newline
 Need char = 'a'
 
 /.*?a(*PRUNE)b/I
 Capturing subpattern count = 0
 No options
 No first char
 Need char = 'b'
 
 /.*?a(*PRUNE)b/sI
 Capturing subpattern count = 0
 Options: dotall
 No first char
 Need char = 'b'
 
 /^a(*PRUNE)b/sI
 Capturing subpattern count = 0
 Options: anchored dotall
 No first char
 No need char
 
 /.*?a(*SKIP)b/I
 Capturing subpattern count = 0
 No options
 No first char
 Need char = 'b'
 
 /(?>.*?a)b/sI
 Capturing subpattern count = 0
 Options: dotall
 No first char
 Need char = 'b'
 
 /(?>.*?a)b/I
 Capturing subpattern count = 0
 No options
 No first char
 Need char = 'b'
 
 /(?>^a)b/sI
 Capturing subpattern count = 0
 Options: anchored dotall
 No first char
 No need char
 
 /(?>.*?)(?<=(abcd)|(wxyz))/I
 Capturing subpattern count = 2
 Max lookbehind = 4
 No options
 No first char
 No need char
 
 /(?>.*)(?<=(abcd)|(wxyz))/I
 Capturing subpattern count = 2
 Max lookbehind = 4
 No options
 No first char
 No need char
 
 "(?>.*)foo"I
 Capturing subpattern count = 0
 No options
 No first char
 Need char = 'o'
 
 "(?>.*?)foo"I
 Capturing subpattern count = 0
 No options
 No first char
 Need char = 'o'
 
 /(?>^abc)/mI
 Capturing subpattern count = 0
 Options: multiline
 First char at start or follows newline
 Need char = 'c'
 
 /(?>.*abc)/mI
 Capturing subpattern count = 0
 Options: multiline
 No first char
 Need char = 'c'
 
 /(?:.*abc)/mI
 Capturing subpattern count = 0
 Options: multiline
 First char at start or follows newline
 Need char = 'c'
 
 /-- Check PCRE_STUDY_EXTRA_NEEDED --/
 
 /.?/S-I
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 Study returned NULL
 
 /.?/S!I
 Capturing subpattern count = 0
 No options
 No first char
 No need char
 Subject length lower bound = -1
 No set of starting bytes
 
 /(?:(a)+(?C1)bb|aa(?C2)b)/
     aab\C+
 Callout 1: last capture = 1
  0: <unset>
  1: a
 --->aab
     ^ ^     b
 Callout 1: last capture = 1
  0: <unset>
  1: a
 --->aab
     ^^      b
 Callout 2: last capture = -1
  0: <unset>
 --->aab
     ^ ^     b
  0: aab
    
 /(?:(a)++(?C1)bb|aa(?C2)b)/
     aab\C+ 
 Callout 1: last capture = 1
  0: <unset>
  1: a
 --->aab
     ^ ^     b
 Callout 2: last capture = -1
  0: <unset>
 --->aab
     ^ ^     b
  0: aab
     
 /(?:(?>(a))(?C1)bb|aa(?C2)b)/
     aab\C+ 
 Callout 1: last capture = 1
  0: <unset>
  1: a
 --->aab
     ^^      b
 Callout 2: last capture = -1
  0: <unset>
 --->aab
     ^ ^     b
  0: aab
 
 /(?:(?1)(?C1)x|ab(?C2))((a)){0}/                                                
     aab\C+ 
 Callout 1: last capture = -1
  0: <unset>
 --->aab
     ^^      x
 Callout 1: last capture = -1
  0: <unset>
 --->aab
      ^^     x
 Callout 2: last capture = -1
  0: <unset>
 --->aab
      ^ ^    )
  0: ab
 
 /(?1)(?C1)((a)(?C2)){0}/   
     aab\C+ 
 Callout 2: last capture = 2
  0: <unset>
  1: <unset>   1: <unset>
  2: a   2: a
   --->aab
       ^^      )
   Callout 1: last capture = -1
    0: <unset>
   --->aab
       ^^      ((a)(?C2)){0}
    0: a
   
"AB(C(D))(E(F))?(?(?=\2)(?=\4))"/(?:(a)+(?C1)bb|aa(?C2)b)++/
    ABCDGHI\O03    aab\C+
 Callout 1: last capture = 1
  0: <unset>
  1: a
 --->aab
     ^ ^     b
 Callout 1: last capture = 1
  0: <unset>
  1: a
 --->aab
     ^^      b
 Callout 2: last capture = -1
  0: <unset>
 --->aab
     ^ ^     b
  0: aab
     aab\C+\O2
 Callout 1: last capture = 1
  0: <unset>
 --->aab
     ^ ^     b
 Callout 1: last capture = 1
  0: <unset>
 --->aab
     ^^      b
 Callout 2: last capture = -1
  0: <unset>
 --->aab
     ^ ^     b
  0: aab
 
 /(ab)x|ab/
     ab\O3
  0: ab
     ab\O2 
  0: ab
   
 /(ab)/
     ab\O3
 Matched, but too many substrings  Matched, but too many substrings
 0: ABCD 0: ab
     ab\O2 
 Matched, but too many substrings
  0: ab
           
/-- This one is here because Perl does not confine the *COMMIT to the /(?<=123)(*MARK:xx)abc/K
assertion, and therefore fails the entire subroutine call. --/     xxxx123a\P\P
 Partial match at offset 7, mark=xx: 123a
     xxxx123a\P
 Partial match at offset 7, mark=xx: 123a
           
/((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))//123\Kabc/
    ac     xxxx123a\P\P
 Partial match: 123a
     xxxx123a\P
 Partial match: 123a
 
 /^(?(?=a)aa|bb)/C
     bb
 --->bb
  +0 ^      ^
  +1 ^      (?(?=a)aa|bb)
  +3 ^      (?=a)
  +6 ^      a
 +11 ^      b
 +12 ^^     b
 +13 ^ ^    )
 +14 ^ ^    
  0: bb
 
 /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
     bb
 --->bb
   1 ^      ^
   2 ^      (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
  99 ^      (?=(?C3)a(?C4))
   3 ^      a
   8 ^      b
   9 ^^     b
  10 ^ ^    )
  11 ^ ^    
  0: bb
 
 /-- Perl seems to have a bug with this one --/
 
 /aaaaa(*COMMIT)(*PRUNE)b|a+c/
     aaaaaac
  0: aaaac
     
 /-- Here are some that Perl treats differently because of the way it handles
 backtracking verbs. --/
 
  /(?!a(*COMMIT)b)ac|ad/
      ac
  0: ac   0: ac
        ad 
    0: ad
   
   /^(?!a(*THEN)b|ac)../
        ac
   No match
        ad 
    0: ad
   
   /^(?=a(*THEN)b|ac)/
       ac
    0: 
       
   /\A.*?(?:a|b(*THEN)c)/
       ba
    0: ba
   
   /\A.*?(?:a|b(*THEN)c)++/
       ba
    0: ba
   
   /\A.*?(?:a|b(*THEN)c|d)/
       ba
    0: ba
   
   /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
       aac 
    0: aac
   
   /\A.*?(a|b(*THEN)c)/
       ba
    0: ba
    1: a
   
   /^(A(*THEN)B|A(*THEN)D)/
       AD           
    0: AD
    1: AD
       
   /(?!b(*THEN)a)bn|bnn/
       bnn
    0: bn
   
   /(?(?=b(*SKIP)a)bn|bnn)/
       bnn
   No match
   
   /(?=b(*THEN)a|)bn|bnn/
       bnn
    0: bn
   
   /-------------------------/ 
   
   /(*LIMIT_MATCH=12bc)abc/
   Failed: (*VERB) not recognized or malformed at offset 7
   
   /(*LIMIT_MATCH=4294967290)abc/
   Failed: (*VERB) not recognized or malformed at offset 7
   
   /(*LIMIT_RECURSION=4294967280)abc/I
   Capturing subpattern count = 0
   Recursion limit = 4294967280
   No options
   First char = 'a'
   Need char = 'c'
   
   /(a+)*zz/
       aaaaaaaaaaaaaz
   No match
       aaaaaaaaaaaaaz\q3000
   Error -8 (match limit exceeded)
   
   /(a+)*zz/S-
       aaaaaaaaaaaaaz\Q10 
   Error -21 (recursion limit exceeded)
   
   /(*LIMIT_MATCH=3000)(a+)*zz/I
   Capturing subpattern count = 1
   Match limit = 3000
   No options
   No first char
   Need char = 'z'
       aaaaaaaaaaaaaz
   Error -8 (match limit exceeded)
       aaaaaaaaaaaaaz\q60000
   Error -8 (match limit exceeded)
   
   /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
   Capturing subpattern count = 1
   Match limit = 3000
   No options
   No first char
   Need char = 'z'
       aaaaaaaaaaaaaz
   Error -8 (match limit exceeded)
   
   /(*LIMIT_MATCH=60000)(a+)*zz/I
   Capturing subpattern count = 1
   Match limit = 60000
   No options
   No first char
   Need char = 'z'
       aaaaaaaaaaaaaz
   No match
       aaaaaaaaaaaaaz\q3000
   Error -8 (match limit exceeded)
   
   /(*LIMIT_RECURSION=10)(a+)*zz/IS-
   Capturing subpattern count = 1
   Recursion limit = 10
   No options
   No first char
   Need char = 'z'
   Subject length lower bound = 2
   Starting byte set: a z 
       aaaaaaaaaaaaaz
   Error -21 (recursion limit exceeded)
       aaaaaaaaaaaaaz\Q1000
   Error -21 (recursion limit exceeded)
   
   /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
   Capturing subpattern count = 1
   Recursion limit = 10
   No options
   No first char
   Need char = 'z'
   Subject length lower bound = 2
   Starting byte set: a z 
       aaaaaaaaaaaaaz
   Error -21 (recursion limit exceeded)
   
   /(*LIMIT_RECURSION=1000)(a+)*zz/IS-
   Capturing subpattern count = 1
   Recursion limit = 1000
   No options
   No first char
   Need char = 'z'
   Subject length lower bound = 2
   Starting byte set: a z 
       aaaaaaaaaaaaaz
   No match
       aaaaaaaaaaaaaz\Q10
   Error -21 (recursion limit exceeded)
   
 /-- End of testinput2 --/  /-- End of testinput2 --/

Removed from v.1.1.1.3  
changed lines
  Added in v.1.1.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>