/[pcre]/code/trunk/testdata/testoutput2
ViewVC logotype

Diff of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 500 by ph10, Sat Mar 6 19:00:29 2010 UTC revision 1251 by ph10, Wed Feb 20 17:42:03 2013 UTC
# Line 2  Line 2 
2      of PCRE's API, error diagnostics, and the compiled code of some patterns.      of PCRE's API, error diagnostics, and the compiled code of some patterns.
3      It also checks the non-Perl syntax the PCRE supports (Python, .NET,      It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4      Oniguruma). Finally, there are some tests where PCRE and Perl differ,      Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5      either because PCRE can't be compatible, or there is potential Perl      either because PCRE can't be compatible, or there is a possible Perl
6      bug. --/      bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
 /-- Originally, the Perl 5.10 things were in here too, but now I have separated  
     many (most?) of them out into test 11. However, there may still be some  
     that were overlooked. --/  
   
11  /(a)b|/I  /(a)b|/I
12  Capturing subpattern count = 1  Capturing subpattern count = 1
13  No options  No options
# Line 103  Failed: missing terminating ] for charac Line 102  Failed: missing terminating ] for charac
102  /(?X)[\B]/  /(?X)[\B]/
103  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
104    
105    /(?X)[\R]/
106    Failed: invalid escape sequence in character class at offset 6
107    
108    /(?X)[\X]/
109    Failed: invalid escape sequence in character class at offset 6
110    
111    /[\B]/BZ
112    ------------------------------------------------------------------
113            Bra
114            B
115            Ket
116            End
117    ------------------------------------------------------------------
118    
119    /[\R]/BZ
120    ------------------------------------------------------------------
121            Bra
122            R
123            Ket
124            End
125    ------------------------------------------------------------------
126    
127    /[\X]/BZ
128    ------------------------------------------------------------------
129            Bra
130            X
131            Ket
132            End
133    ------------------------------------------------------------------
134    
135  /[z-a]/  /[z-a]/
136  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
137    
# Line 347  No need char Line 376  No need char
376   2: <unset>   2: <unset>
377   3: def   3: def
378    
 /abc/P  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/P  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/P  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/P  
     the quick brown fox  
  0: the quick brown fox  
     *** Failers  
 No match: POSIX code 17: match failed  
     The Quick Brown Fox  
 No match: POSIX code 17: match failed  
   
 /the quick brown fox/Pi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/P  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/P  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/P  
     abc  
 No match: POSIX code 17: match failed  
   
379  /)/  /)/
380  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
381    
# Line 477  Capturing subpattern count = 0 Line 451  Capturing subpattern count = 0
451  No options  No options
452  First char = 'f'  First char = 'f'
453  Need char = 'o'  Need char = 'o'
454    Max lookbehind = 6
455      foo      foo
456   0: foo   0: foo
457      catfoo      catfoo
# Line 602  Need char = 'h' (caseless) Line 577  Need char = 'h' (caseless)
577  ------------------------------------------------------------------  ------------------------------------------------------------------
578          Bra          Bra
579          CBra 1          CBra 1
580       01 Opt       /i b
      NC b  
581          Ket          Ket
      00 Opt  
582          Ket          Ket
583          End          End
584  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 686  Capturing subpattern count = 0 Line 659  Capturing subpattern count = 0
659  No options  No options
660  No first char  No first char
661  No need char  No need char
662    Max lookbehind = 3
663  Subject length lower bound = 1  Subject length lower bound = 1
664  Starting byte set: a b  Starting byte set: a b
665    
# Line 694  Capturing subpattern count = 1 Line 668  Capturing subpattern count = 1
668  No options  No options
669  No first char  No first char
670  Need char = 'a'  Need char = 'a'
671    Max lookbehind = 3
672  Subject length lower bound = 5  Subject length lower bound = 5
673  Starting byte set: a o  Starting byte set: a o
674    
# Line 711  Contains explicit CR or LF match Line 686  Contains explicit CR or LF match
686  Options: multiline  Options: multiline
687  No first char  No first char
688  Need char = 'r'  Need char = 'r'
689    Max lookbehind = 4
690      foo\nbarbar      foo\nbarbar
691   0: bar   0: bar
692      ***Failers      ***Failers
# Line 728  Contains explicit CR or LF match Line 704  Contains explicit CR or LF match
704  Options: multiline  Options: multiline
705  First char at start or follows newline  First char at start or follows newline
706  Need char = 'r'  Need char = 'r'
707    Max lookbehind = 4
708      foo\nbarbar      foo\nbarbar
709   0: bar   0: bar
710      ***Failers      ***Failers
# Line 769  Capturing subpattern count = 0 Line 746  Capturing subpattern count = 0
746  No options  No options
747  First char = '-'  First char = '-'
748  Need char = 't'  Need char = 't'
749    Max lookbehind = 7
750      the bullock-cart      the bullock-cart
751   0: -cart   0: -cart
752      a donkey-cart race      a donkey-cart race
# Line 785  Capturing subpattern count = 0 Line 763  Capturing subpattern count = 0
763  No options  No options
764  No first char  No first char
765  No need char  No need char
766    Max lookbehind = 3
767    
768  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
769  Capturing subpattern count = 2  Capturing subpattern count = 2
770  No options  No options
771  First char at start or follows newline  No first char
772  No need char  No need char
773    Max lookbehind = 4
774      alphabetabcd      alphabetabcd
775   0: alphabetabcd   0: alphabetabcd
776   1: abcd   1: abcd
# Line 804  Capturing subpattern count = 0 Line 784  Capturing subpattern count = 0
784  No options  No options
785  First char = 'Z'  First char = 'Z'
786  Need char = 'Z'  Need char = 'Z'
787    Max lookbehind = 4
788      abxyZZ      abxyZZ
789   0: ZZ   0: ZZ
790      abXyZZ      abXyZZ
# Line 832  Capturing subpattern count = 1 Line 813  Capturing subpattern count = 1
813  No options  No options
814  First char = 'b'  First char = 'b'
815  Need char = 'r'  Need char = 'r'
816    Max lookbehind = 4
817      bar      bar
818   0: bar   0: bar
819      foobbar      foobbar
# Line 1003  Failed: numbers out of order in {} quant Line 985  Failed: numbers out of order in {} quant
985  /abc/\  /abc/\
986  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
987    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
988  /abc/\i  /abc/\i
989  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
990    
# Line 1121  No first char Line 1100  No first char
1100  No need char  No need char
1101      abc\00def\L\C0      abc\00def\L\C0
1102   0: abc\x00def   0: abc\x00def
1103   0C abc (7)   0C abc\x00def (7)
1104   0L abc   0L abc
1105    
1106  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
# Line 1217  No need char Line 1196  No need char
1196  ------------------------------------------------------------------  ------------------------------------------------------------------
1197          Bra          Bra
1198          Bra          Bra
      04 Opt  
1199          AllAny*          AllAny*
1200          X          X
1201          Alt          Alt
      04 Opt  
1202          ^          ^
1203          B          B
1204          Ket          Ket
      00 Opt  
1205          Ket          Ket
1206          End          End
1207  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1239  Capturing subpattern count = 0 Line 1215  Capturing subpattern count = 0
1215  No options  No options
1216  First char = 'i'  First char = 'i'
1217  Need char = 's'  Need char = 's'
1218      Mississippi  Max lookbehind = 1
  0: iss  
  0+ issippi  
   
 /\Biss\B/I+P  
1219      Mississippi      Mississippi
1220   0: iss   0: iss
1221   0+ issippi   0+ issippi
# Line 1264  Capturing subpattern count = 0 Line 1236  Capturing subpattern count = 0
1236  No options  No options
1237  First char = 'i'  First char = 'i'
1238  Need char = 's'  Need char = 's'
1239    Max lookbehind = 1
1240      Mississippi      Mississippi
1241   0: iss   0: iss
1242   0+ issippi   0+ issippi
# Line 1273  Capturing subpattern count = 0 Line 1246  Capturing subpattern count = 0
1246  No options  No options
1247  First char = 'i'  First char = 'i'
1248  Need char = 's'  Need char = 's'
1249    Max lookbehind = 1
1250      Mississippi      Mississippi
1251   0: iss   0: iss
1252   0+ issippi   0+ issippi
# Line 1288  Capturing subpattern count = 0 Line 1262  Capturing subpattern count = 0
1262  No options  No options
1263  First char = 'i'  First char = 'i'
1264  Need char = 's'  Need char = 's'
1265    Max lookbehind = 1
1266      Mississippi      Mississippi
1267   0: iss   0: iss
1268   0+ issippi   0+ issippi
# Line 1299  Capturing subpattern count = 0 Line 1274  Capturing subpattern count = 0
1274  No options  No options
1275  First char = 'i'  First char = 'i'
1276  Need char = 's'  Need char = 's'
1277    Max lookbehind = 1
1278      Mississippi      Mississippi
1279   0: iss   0: iss
1280   0+ issippi   0+ issippi
# Line 1377  Capturing subpattern count = 0 Line 1353  Capturing subpattern count = 0
1353  Contains explicit CR or LF match  Contains explicit CR or LF match
1354  Options: multiline  Options: multiline
1355  First char at start or follows newline  First char at start or follows newline
1356  Need char = 10  Need char = \x0a
1357      ab\nab\ncd      ab\nab\ncd
1358   0: ab\x0a   0: ab\x0a
1359   0+ ab\x0acd   0+ ab\x0acd
# Line 1479  Capturing subpattern count = 0 Line 1455  Capturing subpattern count = 0
1455  No options  No options
1456  No first char  No first char
1457  No need char  No need char
1458    Max lookbehind = 3
1459    
1460  /abc(?!pqr)/I  /abc(?!pqr)/I
1461  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1664  No need char Line 1641  No need char
1641      \Nabc      \Nabc
1642  No match  No match
1643    
 /a*(b+)(z)(z)/P  
     aaaabbbbzzzz  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
  0: aaaabbbbzz  
     aaaabbbbzzzz\O2  
  0: aaaabbbbzz  
  1: bbbb  
     aaaabbbbzzzz\O3  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
     aaaabbbbzzzz\O4  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O5  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
   
1644  /^.?abcd/IS  /^.?abcd/IS
1645  Capturing subpattern count = 0  Capturing subpattern count = 0
1646  Options: anchored  Options: anchored
# Line 2734  No need char Line 2684  No need char
2684  ------------------------------------------------------------------  ------------------------------------------------------------------
2685          Bra          Bra
2686          a          a
2687       01 Opt       /i b
      NC b  
2688          Ket          Ket
2689          End          End
2690  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2757  No match Line 2706  No match
2706          Bra          Bra
2707          CBra 1          CBra 1
2708          a          a
2709       01 Opt       /i b
      NC b  
2710          Ket          Ket
      00 Opt  
2711          Ket          Ket
2712          End          End
2713  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2782  No match Line 2729  No match
2729  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2730  ------------------------------------------------------------------  ------------------------------------------------------------------
2731          Bra          Bra
2732       NC abc       /i abc
2733          Ket          Ket
2734          End          End
2735  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2795  Need char = 'c' (caseless) Line 2742  Need char = 'c' (caseless)
2742    (?i)abc/IxDZ    (?i)abc/IxDZ
2743  ------------------------------------------------------------------  ------------------------------------------------------------------
2744          Bra          Bra
2745       NC abc       /i abc
2746          Ket          Ket
2747          End          End
2748  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2968  No need char Line 2915  No need char
2915  /(x)*+/DZ  /(x)*+/DZ
2916  ------------------------------------------------------------------  ------------------------------------------------------------------
2917          Bra          Bra
2918          Once          Braposzero
2919          Brazero          CBraPos 1
         CBra 1  
2920          x          x
2921          KetRmax          KetRpos
         Ket  
2922          Ket          Ket
2923          End          End
2924  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3198  Failed: POSIX collating elements are not Line 3143  Failed: POSIX collating elements are not
3143  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3144    
3145  /\l/I  /\l/I
3146  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3147    
3148  /\L/I  /\L/I
3149  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3150    
3151  /\N{name}/I  /\N{name}/I
3152  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3153    
3154  /\u/I  /\u/I
3155  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3156    
3157  /\U/I  /\U/I
3158  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3159    
3160  /[/I  /[/I
3161  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3291  Capturing subpattern count = 0 Line 3236  Capturing subpattern count = 0
3236  No options  No options
3237  First char = '8'  First char = '8'
3238  Need char = 'X'  Need char = 'X'
3239    Max lookbehind = 1
3240    
3241  |\$\<\.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
3242  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3304  Capturing subpattern count = 0 Line 3250  Capturing subpattern count = 0
3250  No options  No options
3251  First char = '$'  First char = '$'
3252  Need char = 'X'  Need char = 'X'
3253    Max lookbehind = 1
3254    
3255  /(.*)\d+\1/I  /(.*)\d+\1/I
3256  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 3560  Need char = 'f' Line 3507  Need char = 'f'
3507    1    ^    ^     f    1    ^    ^     f
3508   0: abcdef   0: abcdef
3509    
3510  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3511    Capturing subpattern count = 0
3512    No options
3513    No first char
3514    Need char = 'f'
3515    Subject length lower bound = 7
3516    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3517        1234abcdef
3518    --->1234abcdef
3519      1 ^              \d
3520      1  ^             \d
3521      1   ^            \d
3522      1    ^           \d
3523      2    ^   ^       d
3524     0: 4abcdef
3525        *** Failers
3526    No match
3527        abcdef
3528    No match
3529    
3530    /(?C1)\dabc(?C2)def/ISS
3531  Capturing subpattern count = 0  Capturing subpattern count = 0
3532  No options  No options
3533  No first char  No first char
# Line 3799  Capturing subpattern count = 1 Line 3766  Capturing subpattern count = 1
3766  No options  No options
3767  First char = 'x'  First char = 'x'
3768  Need char = 'z'  Need char = 'z'
3769    Max lookbehind = 3
3770     abcxyz\C+     abcxyz\C+
3771  Callout 0: last capture = 1  Callout 0: last capture = 1
3772   0: <unset>   0: <unset>
# Line 3964  Need char = '<' Line 3932  Need char = '<'
3932          Bra          Bra
3933          CBra 1          CBra 1
3934          a          a
         Once  
3935          Recurse          Recurse
         Ket  
3936          b          b
3937          Ket          Ket
3938          Ket          Ket
# Line 4187  Need char = 'a' Line 4153  Need char = 'a'
4153          Any          Any
4154          \1          \1
4155          bbb          bbb
         Once  
4156          Recurse          Recurse
         Ket  
4157          d          d
4158          Ket          Ket
4159          End          End
# Line 4561  Need char = ']' Line 4525  Need char = ']'
4525          a          a
4526          CBra 2          CBra 2
4527          b          b
         Once  
4528          Recurse          Recurse
         Ket  
4529          c          c
4530          Ket          Ket
4531          Ket          Ket
# Line 4583  No need char Line 4545  No need char
4545          a          a
4546          CBra 2          CBra 2
4547          b          b
         Once  
4548          Recurse          Recurse
         Ket  
4549          c          c
4550          Ket          Ket
4551          KetRmax          KetRmax
# Line 4606  No need char Line 4566  No need char
4566          a          a
4567          CBra 2          CBra 2
4568          b          b
         Once  
4569          Recurse          Recurse
         Ket  
4570          c          c
4571          Ket          Ket
4572          Ket          Ket
# Line 4617  No need char Line 4575  No need char
4575          a          a
4576          CBra 2          CBra 2
4577          b          b
         Once  
4578          Recurse          Recurse
         Ket  
4579          c          c
4580          Ket          Ket
4581          Ket          Ket
# Line 4758  Need char = 'e' Line 4714  Need char = 'e'
4714   +4 ^   ^      e   +4 ^   ^      e
4715  No match  No match
4716    
4717  /a*b/ICDZ  /a*b/ICDZS
4718    ------------------------------------------------------------------
4719            Bra
4720            Callout 255 0 2
4721            a*+
4722            Callout 255 2 1
4723            b
4724            Callout 255 3 0
4725            Ket
4726            End
4727    ------------------------------------------------------------------
4728    Capturing subpattern count = 0
4729    Options:
4730    No first char
4731    Need char = 'b'
4732    Subject length lower bound = 1
4733    Starting byte set: a b
4734      ab
4735    --->ab
4736     +0 ^      a*
4737     +2 ^^     b
4738     +3 ^ ^
4739     0: ab
4740      aaaab
4741    --->aaaab
4742     +0 ^         a*
4743     +2 ^   ^     b
4744     +3 ^    ^
4745     0: aaaab
4746      aaaacb
4747    --->aaaacb
4748     +0 ^          a*
4749     +2 ^   ^      b
4750     +0  ^         a*
4751     +2  ^  ^      b
4752     +0   ^        a*
4753     +2   ^ ^      b
4754     +0    ^       a*
4755     +2    ^^      b
4756     +0      ^     a*
4757     +2      ^     b
4758     +3      ^^
4759     0: b
4760    
4761    /a*b/ICDZSS
4762  ------------------------------------------------------------------  ------------------------------------------------------------------
4763          Bra          Bra
4764          Callout 255 0 2          Callout 255 0 2
# Line 4841  Need char = 'b' Line 4841  Need char = 'b'
4841   +2    ^^      b   +2    ^^      b
4842  No match  No match
4843    
4844  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4845    ------------------------------------------------------------------
4846            Bra
4847            Callout 255 0 9
4848            CBra 1
4849            Callout 255 1 1
4850            a
4851            Callout 255 2 1
4852            b
4853            Callout 255 3 1
4854            c
4855            Callout 255 4 0
4856            Alt
4857            Callout 255 5 1
4858            d
4859            Callout 255 6 1
4860            e
4861            Callout 255 7 1
4862            f
4863            Callout 255 8 0
4864            Ket
4865            Callout 255 9 1
4866            x
4867            Callout 255 10 0
4868            Ket
4869            End
4870    ------------------------------------------------------------------
4871    Capturing subpattern count = 1
4872    Options:
4873    No first char
4874    Need char = 'x'
4875    Subject length lower bound = 4
4876    Starting byte set: a d
4877      abcx
4878    --->abcx
4879     +0 ^        (abc|def)
4880     +1 ^        a
4881     +2 ^^       b
4882     +3 ^ ^      c
4883     +4 ^  ^     |
4884     +9 ^  ^     x
4885    +10 ^   ^
4886     0: abcx
4887     1: abc
4888      defx
4889    --->defx
4890     +0 ^        (abc|def)
4891     +1 ^        a
4892     +5 ^        d
4893     +6 ^^       e
4894     +7 ^ ^      f
4895     +8 ^  ^     )
4896     +9 ^  ^     x
4897    +10 ^   ^
4898     0: defx
4899     1: def
4900      ** Failers
4901    No match
4902      abcdefzx
4903    --->abcdefzx
4904     +0 ^            (abc|def)
4905     +1 ^            a
4906     +2 ^^           b
4907     +3 ^ ^          c
4908     +4 ^  ^         |
4909     +9 ^  ^         x
4910     +5 ^            d
4911     +0    ^         (abc|def)
4912     +1    ^         a
4913     +5    ^         d
4914     +6    ^^        e
4915     +7    ^ ^       f
4916     +8    ^  ^      )
4917     +9    ^  ^      x
4918    No match
4919    
4920    /(abc|def)x/ICDZSS
4921  ------------------------------------------------------------------  ------------------------------------------------------------------
4922          Bra          Bra
4923          Callout 255 0 9          Callout 255 0 9
# Line 4895  Need char = 'x' Line 4971  Need char = 'x'
4971  +10 ^   ^  +10 ^   ^
4972   0: defx   0: defx
4973   1: def   1: def
4974      ** Failers
4975    No match
4976    abcdefzx    abcdefzx
4977  --->abcdefzx  --->abcdefzx
4978   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4995  No need char Line 5073  No need char
5073   0: abcdcdcd   0: abcdcdcd
5074   1: cd   1: cd
5075    
5076  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5077  ------------------------------------------------------------------  ------------------------------------------------------------------
5078          Bra          Bra
5079          Callout 255 0 14          Callout 255 0 14
# Line 5028  Capturing subpattern count = 1 Line 5106  Capturing subpattern count = 1
5106  Options:  Options:
5107  No first char  No first char
5108  No need char  No need char
5109    Subject length lower bound = 2
5110    Starting byte set: a b x
5111      Note: that { does NOT introduce a quantifier      Note: that { does NOT introduce a quantifier
5112  --->Note: that { does NOT introduce a quantifier  --->Note: that { does NOT introduce a quantifier
  +0 ^                                                ([ab]{,4}c|xy)  
  +1 ^                                                [ab]  
 +11 ^                                                x  
  +0  ^                                               ([ab]{,4}c|xy)  
  +1  ^                                               [ab]  
 +11  ^                                               x  
  +0   ^                                              ([ab]{,4}c|xy)  
  +1   ^                                              [ab]  
 +11   ^                                              x  
  +0    ^                                             ([ab]{,4}c|xy)  
  +1    ^                                             [ab]  
 +11    ^                                             x  
  +0     ^                                            ([ab]{,4}c|xy)  
  +1     ^                                            [ab]  
 +11     ^                                            x  
  +0      ^                                           ([ab]{,4}c|xy)  
  +1      ^                                           [ab]  
 +11      ^                                           x  
  +0       ^                                          ([ab]{,4}c|xy)  
  +1       ^                                          [ab]  
 +11       ^                                          x  
  +0        ^                                         ([ab]{,4}c|xy)  
  +1        ^                                         [ab]  
 +11        ^                                         x  
5113   +0         ^                                        ([ab]{,4}c|xy)   +0         ^                                        ([ab]{,4}c|xy)
5114   +1         ^                                        [ab]   +1         ^                                        [ab]
5115   +5         ^^                                       {   +5         ^^                                       {
5116  +11         ^                                        x  +11         ^                                        x
5117   +0          ^                                       ([ab]{,4}c|xy)   +0                                 ^                ([ab]{,4}c|xy)
5118   +1          ^                                       [ab]   +1                                 ^                [ab]
5119  +11          ^                                       x   +5                                 ^^               {
5120   +0           ^                                      ([ab]{,4}c|xy)  +11                                 ^                x
5121   +1           ^                                      [ab]   +0                                     ^            ([ab]{,4}c|xy)
5122  +11           ^                                      x   +1                                     ^            [ab]
5123   +0            ^                                     ([ab]{,4}c|xy)   +5                                     ^^           {
5124    +11                                     ^            x
5125    No match
5126    
5127    /([ab]{,4}c|xy)/ICDZSS
5128    ------------------------------------------------------------------
5129            Bra
5130            Callout 255 0 14
5131            CBra 1
5132            Callout 255 1 4
5133            [ab]
5134            Callout 255 5 1
5135            {
5136            Callout 255 6 1
5137            ,
5138            Callout 255 7 1
5139            4
5140            Callout 255 8 1
5141            }
5142            Callout 255 9 1
5143            c
5144            Callout 255 10 0
5145            Alt
5146            Callout 255 11 1
5147            x
5148            Callout 255 12 1
5149            y
5150            Callout 255 13 0
5151            Ket
5152            Callout 255 14 0
5153            Ket
5154            End
5155    ------------------------------------------------------------------
5156    Capturing subpattern count = 1
5157    Options:
5158    No first char
5159    No need char
5160        Note: that { does NOT introduce a quantifier
5161    --->Note: that { does NOT introduce a quantifier
5162     +0 ^                                                ([ab]{,4}c|xy)
5163     +1 ^                                                [ab]
5164    +11 ^                                                x
5165     +0  ^                                               ([ab]{,4}c|xy)
5166     +1  ^                                               [ab]
5167    +11  ^                                               x
5168     +0   ^                                              ([ab]{,4}c|xy)
5169     +1   ^                                              [ab]
5170    +11   ^                                              x
5171     +0    ^                                             ([ab]{,4}c|xy)
5172     +1    ^                                             [ab]
5173    +11    ^                                             x
5174     +0     ^                                            ([ab]{,4}c|xy)
5175     +1     ^                                            [ab]
5176    +11     ^                                            x
5177     +0      ^                                           ([ab]{,4}c|xy)
5178     +1      ^                                           [ab]
5179    +11      ^                                           x
5180     +0       ^                                          ([ab]{,4}c|xy)
5181     +1       ^                                          [ab]
5182    +11       ^                                          x
5183     +0        ^                                         ([ab]{,4}c|xy)
5184     +1        ^                                         [ab]
5185    +11        ^                                         x
5186     +0         ^                                        ([ab]{,4}c|xy)
5187     +1         ^                                        [ab]
5188     +5         ^^                                       {
5189    +11         ^                                        x
5190     +0          ^                                       ([ab]{,4}c|xy)
5191     +1          ^                                       [ab]
5192    +11          ^                                       x
5193     +0           ^                                      ([ab]{,4}c|xy)
5194     +1           ^                                      [ab]
5195    +11           ^                                      x
5196     +0            ^                                     ([ab]{,4}c|xy)
5197   +1            ^                                     [ab]   +1            ^                                     [ab]
5198  +11            ^                                     x  +11            ^                                     x
5199   +0             ^                                    ([ab]{,4}c|xy)   +0             ^                                    ([ab]{,4}c|xy)
# Line 5285  Capturing subpattern count = 0 Line 5414  Capturing subpattern count = 0
5414  No options  No options
5415  No first char  No first char
5416  No need char  No need char
5417    Max lookbehind = 1
5418    ab cd\>1    ab cd\>1
5419   0:  cd   0:  cd
5420    
# Line 5293  Capturing subpattern count = 0 Line 5423  Capturing subpattern count = 0
5423  Options: dotall  Options: dotall
5424  No first char  No first char
5425  No need char  No need char
5426    Max lookbehind = 1
5427    ab cd\>1    ab cd\>1
5428   0:  cd   0:  cd
5429    
# Line 5447  No match Line 5578  No match
5578      123456\P      123456\P
5579  No match  No match
5580    
5581  /abc/I>testsavedregex  /abc/IS>testsavedregex
5582    Capturing subpattern count = 0
5583    No options
5584    First char = 'a'
5585    Need char = 'c'
5586    Subject length lower bound = 3
5587    No set of starting bytes
5588    Compiled pattern written to testsavedregex
5589    Study data written to testsavedregex
5590    <testsavedregex
5591    Compiled pattern loaded from testsavedregex
5592    Study data loaded from testsavedregex
5593        abc
5594     0: abc
5595        ** Failers
5596    No match
5597        bca
5598    No match
5599    
5600    /abc/ISS>testsavedregex
5601  Capturing subpattern count = 0  Capturing subpattern count = 0
5602  No options  No options
5603  First char = 'a'  First char = 'a'
5604  Need char = 'c'  Need char = 'c'
5605  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5606  <testsavedregex  <testsavedregex
5607  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5608  No study data  No study data
5609      abc      abc
5610   0: abc   0: abc
# Line 5463  No match Line 5613  No match
5613      bca      bca
5614  No match  No match
5615    
5616  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5617    Capturing subpattern count = 0
5618    No options
5619    First char = 'a'
5620    Need char = 'c'
5621    Subject length lower bound = 3
5622    No set of starting bytes
5623    Compiled pattern written to testsavedregex
5624    Study data written to testsavedregex
5625    <testsavedregex
5626    Compiled pattern (byte-inverted) loaded from testsavedregex
5627    Study data loaded from testsavedregex
5628        abc
5629     0: abc
5630        ** Failers
5631    No match
5632        bca
5633    No match
5634    
5635    /abc/IFSS>testsavedregex
5636  Capturing subpattern count = 0  Capturing subpattern count = 0
5637  No options  No options
5638  First char = 'a'  First char = 'a'
5639  Need char = 'c'  Need char = 'c'
5640  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5641  <testsavedregex  <testsavedregex
5642  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5643  No study data  No study data
5644      abc      abc
5645   0: abc   0: abc
# Line 5486  No first char Line 5655  No first char
5655  No need char  No need char
5656  Subject length lower bound = 1  Subject length lower bound = 1
5657  Starting byte set: a b  Starting byte set: a b
5658  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5659  Study data written to testsavedregex  Study data written to testsavedregex
5660  <testsavedregex  <testsavedregex
5661  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5662  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5663      abc      abc
5664   0: a   0: a
# Line 5500  Study data loaded from testsavedregex Line 5669  Study data loaded from testsavedregex
5669      def      def
5670  No match  No match
5671    
5672    /(a|b)/ISS>testsavedregex
5673    Capturing subpattern count = 1
5674    No options
5675    No first char
5676    No need char
5677    Compiled pattern written to testsavedregex
5678    <testsavedregex
5679    Compiled pattern loaded from testsavedregex
5680    No study data
5681        abc
5682     0: a
5683     1: a
5684        ** Failers
5685     0: a
5686     1: a
5687        def
5688    No match
5689    
5690  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5691  Capturing subpattern count = 1  Capturing subpattern count = 1
5692  No options  No options
# Line 5507  No first char Line 5694  No first char
5694  No need char  No need char
5695  Subject length lower bound = 1  Subject length lower bound = 1
5696  Starting byte set: a b  Starting byte set: a b
5697  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5698  Study data written to testsavedregex  Study data written to testsavedregex
5699  <testsavedregex  <testsavedregex
5700  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5701  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5702      abc      abc
5703   0: a   0: a
# Line 5521  Study data loaded from testsavedregex Line 5708  Study data loaded from testsavedregex
5708      def      def
5709  No match  No match
5710    
5711    /(a|b)/ISSF>testsavedregex
5712    Capturing subpattern count = 1
5713    No options
5714    No first char
5715    No need char
5716    Compiled pattern written to testsavedregex
5717    <testsavedregex
5718    Compiled pattern (byte-inverted) loaded from testsavedregex
5719    No study data
5720        abc
5721     0: a
5722     1: a
5723        ** Failers
5724     0: a
5725     1: a
5726        def
5727    No match
5728    
5729  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5730  Capturing subpattern count = 3  Capturing subpattern count = 3
5731  Max back reference = 1  Max back reference = 1
5732  Options: multiline dotall  Options: multiline dotall
5733  First char = '<'  First char = '<'
5734  Need char = '>'  Need char = '>'
5735      <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>      \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
5736   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
5737   1: seite   1: seite
5738   2: \x0a   2: \x0a
# Line 5576  No match Line 5781  No match
5781      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5782  No match  No match
5783    
 /ab.cd/P  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ** Failers  
 No match: POSIX code 17: match failed  
     ab\ncd  
 No match: POSIX code 17: match failed  
   
 /ab.cd/Ps  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ab\ncd  
  0: ab\x0acd  
   
5784  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5785  Capturing subpattern count = 0  Capturing subpattern count = 0
5786  No options  No options
# Line 5886  No need char Line 6073  No need char
6073      ((this))      ((this))
6074   0: ((this))   0: ((this))
6075    
 /a(b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /a(?P<name>b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /\x{100}/I  
 Failed: character value in \x{...} sequence is too large at offset 6  
   
6076  /\x{0000ff}/I  /\x{0000ff}/I
6077  Capturing subpattern count = 0  Capturing subpattern count = 0
6078  No options  No options
6079  First char = 255  First char = \xff
6080  No need char  No need char
6081    
6082  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 6010  no parentheses with name "Z" Line 6186  no parentheses with name "Z"
6186   0: a1   0: a1
6187   1: a1   1: a1
6188   2: a1   2: a1
6189  copy substring Z failed -7  get substring Z failed -7
6190    G a1 (2) A    G a1 (2) A
6191    
6192  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6042  No need char Line 6218  No need char
6218    G a (1) A    G a (1) A
6219      cd\GA      cd\GA
6220   0: cd   0: cd
6221  copy substring A failed -7  get substring A failed -7
6222    
6223  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6224  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6210  No need char Line 6386  No need char
6386   9:   9:
6387  10: Y  10: Y
6388    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6389  /\s*,\s*/IS  /\s*,\s*/IS
6390  Capturing subpattern count = 0  Capturing subpattern count = 0
6391  No options  No options
# Line 6644  No match Line 6817  No match
6817  ------------------------------------------------------------------  ------------------------------------------------------------------
6818          Bra          Bra
6819          ^          ^
6820          a*       /i a*
6821       NC A       /i A
6822          \d          \d
6823          Ket          Ket
6824          End          End
# Line 7273  Matched, but too many substrings Line 7446  Matched, but too many substrings
7446  /[^a]+a/BZi  /[^a]+a/BZi
7447  ------------------------------------------------------------------  ------------------------------------------------------------------
7448          Bra          Bra
7449          [^A]++       /i [^a]++
7450       NC a       /i a
7451          Ket          Ket
7452          End          End
7453  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7282  Matched, but too many substrings Line 7455  Matched, but too many substrings
7455  /[^a]+A/BZi  /[^a]+A/BZi
7456  ------------------------------------------------------------------  ------------------------------------------------------------------
7457          Bra          Bra
7458          [^A]++       /i [^a]++
7459       NC A       /i A
7460          Ket          Ket
7461          End          End
7462  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7478  No match Line 7651  No match
7651  ------------------------------------------------------------------  ------------------------------------------------------------------
7652          Bra          Bra
7653          ^          ^
         Once  
7654          Recurse          Recurse
         Ket  
7655          [()]          [()]
7656          CBra 1          CBra 1
7657          Ket          Ket
# Line 7514  No match Line 7685  No match
7685  ------------------------------------------------------------------  ------------------------------------------------------------------
7686          Bra          Bra
7687          ^          ^
         Once  
7688          Recurse          Recurse
         Ket  
7689          ()          ()
7690          CBra 1          CBra 1
7691          Ket          Ket
# Line 7528  No match Line 7697  No match
7697  ------------------------------------------------------------------  ------------------------------------------------------------------
7698          Bra          Bra
7699          ^          ^
         Once  
7700          Recurse          Recurse
         Ket  
7701          [(\]a]          [(\]a]
7702          CBra 1          CBra 1
7703          Ket          Ket
# Line 7543  No match Line 7710  No match
7710  ------------------------------------------------------------------  ------------------------------------------------------------------
7711          Bra          Bra
7712          ^          ^
         Once  
7713          Recurse          Recurse
         Ket  
7714          CBra 1          CBra 1
7715          Ket          Ket
7716          Ket          Ket
# Line 7677  Options: extended Line 7842  Options: extended
7842  First char = 'x'  First char = 'x'
7843  Need char = 'z'  Need char = 'z'
7844    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7845  /(a|)*\d/  /(a|)*\d/
7846    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7847  No match  No match
# Line 7997  No match Line 8159  No match
8159          Alt          Alt
8160          c          c
8161          Ket          Ket
         Once  
8162          Recurse          Recurse
8163          Ket          Ket
         Ket  
8164          End          End
8165  ------------------------------------------------------------------  ------------------------------------------------------------------
8166      abc      abc
# Line 8011  No match Line 8171  No match
8171  ------------------------------------------------------------------  ------------------------------------------------------------------
8172          Bra          Bra
8173          xy          xy
         Once  
8174          Recurse          Recurse
         Ket  
8175          CBra 1          CBra 1
8176          abc          abc
8177          Ket          Ket
# Line 8243  Failed: syntax error in subpattern name Line 8401  Failed: syntax error in subpattern name
8401   3: <unset>   3: <unset>
8402   4: x   4: x
8403    
 /[\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09<  
  0: \x09  
   
 /[\h]+/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]+  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09\x20\xa0<  
  0: \x09 \xa0  
   
 /[\v]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x0a-\x0d\x85]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\H]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[^\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x09\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\x0a\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x0a\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
8404  /\H++X/BZ  /\H++X/BZ
8405  ------------------------------------------------------------------  ------------------------------------------------------------------
8406          Bra          Bra
# Line 8494  No match Line 8592  No match
8592  ------------------------------------------------------------------  ------------------------------------------------------------------
8593    
8594  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8595  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)  \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8596   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8597    
8598  /[\E]AAA/  /[\E]AAA/
# Line 8667  No match Line 8765  No match
8765  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8766  No match  No match
8767    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8768  /a(*MARK)b/  /a(*MARK)b/
8769  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8770    
8771  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8772  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 8679  Failed: number is too big at offset 19 Line 8774  Failed: number is too big at offset 19
8774  /\g6666666666/  /\g6666666666/
8775  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8776    
8777  /[\g6666666666]/  /[\g6666666666]/BZ
8778  Failed: number is too big at offset 12  ------------------------------------------------------------------
8779            Bra
8780            [6g]
8781            Ket
8782            End
8783    ------------------------------------------------------------------
8784    
8785  /(?1)\c[/  /(?1)\c[/
8786  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8760  No match Line 8860  No match
8860  No match  No match
8861      a\x85b      a\x85b
8862  No match  No match
8863    
8864    /(*ANY).*/g
8865        abc\r\ndef
8866     0: abc
8867     0:
8868     0: def
8869     0:
8870    
8871    /(*ANYCRLF).*/g
8872        abc\r\ndef
8873     0: abc
8874     0:
8875     0: def
8876     0:
8877    
8878    /(*CRLF).*/g
8879        abc\r\ndef
8880     0: abc
8881     0:
8882     0: def
8883     0:
8884    
8885  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8886  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 8965  Failed: subpattern name expected at offs Line 9086  Failed: subpattern name expected at offs
9086  /\k{}/  /\k{}/
9087  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9088    
9089    /\k/
9090    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9091    
9092    /\kabc/
9093    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9094    
9095  /(?P=)/  /(?P=)/
9096  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9097    
# Line 9186  No options Line 9313  No options
9313  First char at start or follows newline  First char at start or follows newline
9314  No need char  No need char
9315    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9316  /xyz/C  /xyz/C
9317    xyz    xyz
9318  --->xyz  --->xyz
# Line 9246  No match Line 9365  No match
9365   +0        ^     x   +0        ^     x
9366   +0         ^    x   +0         ^    x
9367  No match  No match
9368    
9369    /(*NO_START_OPT)xyz/C
9370      abcxyz
9371    --->abcxyz
9372    +15 ^          x
9373    +15  ^         x
9374    +15   ^        x
9375    +15    ^       x
9376    +16    ^^      y
9377    +17    ^ ^     z
9378    +18    ^  ^
9379     0: xyz
9380    
9381    /xyz/CY
9382      abcxyz
9383    --->abcxyz
9384     +0 ^          x
9385     +0  ^         x
9386     +0   ^        x
9387     +0    ^       x
9388     +1    ^^      y
9389     +2    ^ ^     z
9390     +3    ^  ^
9391     0: xyz
9392    
9393  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9394      "ab"      "ab"
# Line 9564  Partial match: the cat Line 9707  Partial match: the cat
9707     abc\P\P     abc\P\P
9708   0: abc   0: abc
9709    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9710  /abc\K123/  /abc\K123/
9711      xyzabc123pqr      xyzabc123pqr
9712   0: 123   0: 123
# Line 9584  Partial match: abc12 Line 9719  Partial match: abc12
9719      xyzabc123pqr      xyzabc123pqr
9720   0: 123   0: 123
9721      xyzabc12\P      xyzabc12\P
9722  Partial match: abc12  Partial match at offset 6: abc12
9723      xyzabc12\P\P      xyzabc12\P\P
9724  Partial match: abc12  Partial match at offset 6: abc12
9725    
9726  /\babc\b/  /\babc\b/
9727      +++abc+++      +++abc+++
9728   0: abc   0: abc
9729      +++ab\P      +++ab\P
9730  Partial match: +ab  Partial match at offset 3: +ab
9731      +++ab\P\P      +++ab\P\P
9732  Partial match: +ab  Partial match at offset 3: +ab
9733    
9734  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9735  ------------------------------------------------------------------  ------------------------------------------------------------------
9736          Bra          Bra
         Once  
9737          Recurse          Recurse
         Ket  
         Once  
9738          Recurse          Recurse
         Ket  
9739          Cond          Cond
9740          Cond def          Cond def
9741          CBra 1          CBra 1
# Line 9625  Partial match: +ab Line 9756  Partial match: +ab
9756  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9757  ------------------------------------------------------------------  ------------------------------------------------------------------
9758          Bra          Bra
         Once  
9759          Recurse          Recurse
         Ket  
         Once  
9760          Recurse          Recurse
         Ket  
9761          Cond          Cond
9762          Cond def          Cond def
9763          CBra 1          CBra 1
# Line 9972  Need char = ':' Line 10099  Need char = ':'
10099  Subject length lower bound = 22  Subject length lower bound = 22
10100  No set of starting bytes  No set of starting bytes
10101    
 /  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                          # optional leading comment  
 (?:    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 # address  
 |                     #  or  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )             # one word, optionally followed by....  
 (?:  
 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...  
 \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)       |  # comments, or...  
   
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 # quoted strings  
 )*  
 <  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                     # leading <  
 (?:  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
   
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  ,  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 )* # further okay, if led by comma  
 :                                # closing colon  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  )? #       optional route  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 #       address spec  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  > #                  trailing >  
 # name and address  
 )  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                       # optional trailing comment  
 /xSI  
 Capturing subpattern count = 0  
 Contains explicit CR or LF match  
 Options: extended  
 No first char  
 No need char  
 Subject length lower bound = 3  
 Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8  
   9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e  
   f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f  
   
10102  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10103  Capturing subpattern count = 11  Capturing subpattern count = 11
10104  Options: caseless dotall  Options: caseless dotall
# Line 10187  No set of starting bytes Line 10110  No set of starting bytes
10110  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10111  Capturing subpattern count = 0  Capturing subpattern count = 0
10112  No options  No options
10113  First char at start or follows newline  No first char
10114  Need char = 'o'  Need char = 'o'
10115  Subject length lower bound = 4  Subject length lower bound = 4
10116  No set of starting bytes  No set of starting bytes
# Line 10371  No match Line 10294  No match
10294          Cond nrecurse 1          Cond nrecurse 1
10295          $          $
10296          Alt          Alt
         Once  
10297          Recurse          Recurse
10298          Ket          Ket
10299          Ket          Ket
10300          Ket          Ket
         Ket  
10301          End          End
10302  ------------------------------------------------------------------  ------------------------------------------------------------------
10303  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 10432  Partial match: abca Line 10353  Partial match: abca
10353      xxxxabcde\P\P      xxxxabcde\P\P
10354  Partial match: abcde  Partial match: abcde
10355    
10356  /-- This is not in the Perl 5.10 test because Perl seems currently to be broken  /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10357      and not behaving as specified in that it *does* bumpalong after hitting      broken and not behaving as specified in that it *does* bumpalong after
10358      (*COMMIT). --/      hitting (*COMMIT). --/
10359    
10360  /(?1)(A(*COMMIT)|B)D/  /(?1)(A(*COMMIT)|B)D/
10361      ABD      ABD
# Line 10514  Starting byte set: i Line 10435  Starting byte set: i
10435  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10436  ------------------------------------------------------------------  ------------------------------------------------------------------
10437          Bra          Bra
10438       NC a       /i a
      00 Opt  
10439          b          b
10440          Alt          Alt
      00 Opt  
10441          c          c
10442          Ket          Ket
10443          End          End
# Line 10537  No match Line 10456  No match
10456  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10457  ------------------------------------------------------------------  ------------------------------------------------------------------
10458          Bra          Bra
10459       NC a       /i ab
      05 Opt  
      NC b  
10460          Alt          Alt
10461       05 Opt       /i c
      NC c  
10462          Ket          Ket
10463          End          End
10464  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10550  No match Line 10466  No match
10466  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10467  ------------------------------------------------------------------  ------------------------------------------------------------------
10468          Bra          Bra
10469       NC a       /i a
      04 Opt  
10470          b          b
10471          Alt          Alt
      04 Opt  
10472          c          c
10473          Ket          Ket
10474          End          End
# Line 10601  No match Line 10515  No match
10515  ------------------------------------------------------------------  ------------------------------------------------------------------
10516          Bra          Bra
10517          ^          ^
10518          Once          Braposzero
10519          Brazero          SBraPos
         Once  
10520          Recurse          Recurse
10521          KetRmax          KetRpos
         Ket  
10522          Cond          Cond
10523          Cond def          Cond def
10524          CBra 1          CBra 1
# Line 10637  No match Line 10549  No match
10549          End          End
10550  ------------------------------------------------------------------  ------------------------------------------------------------------
10551    
10552  / -- The first four of these are not in the Perl 5.10 test because Perl  / -- The first four of these are not in the Perl >= 5.10 test because Perl
10553       documents that the use of \K in assertions is "not well defined". The       documents that the use of \K in assertions is "not well defined". The
10554       last is here because Perl gives the match as "b" rather than "ab". I       last is here because Perl gives the match as "b" rather than "ab". I
10555       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
# Line 10665  No match Line 10577  No match
10577    
10578  /----------------------/  /----------------------/
10579    
10580    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10581    Failed: recursive call could loop indefinitely at offset 31
10582    
10583    /abc(*MARK:)pqr/
10584    Failed: (*MARK) must have an argument at offset 10
10585    
10586    /abc(*:)pqr/
10587    Failed: (*MARK) must have an argument at offset 6
10588    
10589    /abc(*FAIL:123)xyz/
10590    Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10591    
10592    /--- This should, and does, fail. In Perl, it does not, which I think is a
10593         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10594    
10595    /A(*COMMIT)B/+K
10596        ACABX
10597    No match
10598    
10599    /--- These should be different, but in Perl 5.11 are not, which I think
10600         is a bug in Perl. ---/
10601    
10602    /A(*THEN)B|A(*THEN)C/K
10603        AC
10604     0: AC
10605    
10606    /A(*PRUNE)B|A(*PRUNE)C/K
10607        AC
10608    No match
10609    
10610    /--- This should fail; the SKIP advances by one, but when we get to AC, the
10611         PRUNE kills it. Perl behaves differently. ---/
10612    
10613    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10614        AAAC
10615    No match, mark = A
10616    
10617    /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10618    though PCRE does. ---/
10619    
10620    /^A(*:A)B|^X(*:A)Y/K
10621        ** Failers
10622    No match
10623        XAQQ
10624    No match, mark = A
10625    
10626    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10627    optimizations defeat this. So does the PCRE optimization unless we disable it
10628    with \Y. ---/
10629    
10630    /(*COMMIT)ABC/
10631        ABCDEFG
10632     0: ABC
10633        ** Failers
10634    No match
10635        DEFGABC\Y
10636    No match
10637    
10638    /^(ab (c+(*THEN)cd) | xyz)/x
10639        abcccd
10640    No match
10641    
10642    /^(ab (c+(*PRUNE)cd) | xyz)/x
10643        abcccd
10644    No match
10645    
10646    /^(ab (c+(*FAIL)cd) | xyz)/x
10647        abcccd
10648    No match
10649    
10650    /--- Perl 5.11 gets some of these wrong ---/
10651    
10652    /(?>.(*ACCEPT))*?5/
10653        abcde
10654     0: a
10655    
10656    /(.(*ACCEPT))*?5/
10657        abcde
10658     0: a
10659     1: a
10660    
10661    /(.(*ACCEPT))5/
10662        abcde
10663     0: a
10664     1: a
10665    
10666    /(.(*ACCEPT))*5/
10667        abcde
10668     0: a
10669     1: a
10670    
10671    /A\NB./BZ
10672    ------------------------------------------------------------------
10673            Bra
10674            A
10675            Any
10676            B
10677            Any
10678            Ket
10679            End
10680    ------------------------------------------------------------------
10681        ACBD
10682     0: ACBD
10683        *** Failers
10684    No match
10685        A\nB
10686    No match
10687        ACB\n
10688    No match
10689    
10690    /A\NB./sBZ
10691    ------------------------------------------------------------------
10692            Bra
10693            A
10694            Any
10695            B
10696            AllAny
10697            Ket
10698            End
10699    ------------------------------------------------------------------
10700        ACBD
10701     0: ACBD
10702        ACB\n
10703     0: ACB\x0a
10704        *** Failers
10705    No match
10706        A\nB
10707    No match
10708    
10709    /A\NB/<crlf>
10710        A\nB
10711     0: A\x0aB
10712        A\rB
10713     0: A\x0dB
10714        ** Failers
10715    No match
10716        A\r\nB
10717    No match
10718    
10719    /\R+b/BZ
10720    ------------------------------------------------------------------
10721            Bra
10722            \R++
10723            b
10724            Ket
10725            End
10726    ------------------------------------------------------------------
10727    
10728    /\R+\n/BZ
10729    ------------------------------------------------------------------
10730            Bra
10731            \R+
10732            \x0a
10733            Ket
10734            End
10735    ------------------------------------------------------------------
10736    
10737    /\R+\d/BZ
10738    ------------------------------------------------------------------
10739            Bra
10740            \R++
10741            \d
10742            Ket
10743            End
10744    ------------------------------------------------------------------
10745    
10746    /\d*\R/BZ
10747    ------------------------------------------------------------------
10748            Bra
10749            \d*+
10750            \R
10751            Ket
10752            End
10753    ------------------------------------------------------------------
10754    
10755    /\s*\R/BZ
10756    ------------------------------------------------------------------
10757            Bra
10758            \s*
10759            \R
10760            Ket
10761            End
10762    ------------------------------------------------------------------
10763        \x20\x0a
10764     0:  \x0a
10765        \x20\x0d
10766     0:  \x0d
10767        \x20\x0d\x0a
10768     0:  \x0d\x0a
10769    
10770    /\S*\R/BZ
10771    ------------------------------------------------------------------
10772            Bra
10773            \S*+
10774            \R
10775            Ket
10776            End
10777    ------------------------------------------------------------------
10778        a\x0a
10779     0: a\x0a
10780    
10781    /X\h*\R/BZ
10782    ------------------------------------------------------------------
10783            Bra
10784            X
10785            \h*+
10786            \R
10787            Ket
10788            End
10789    ------------------------------------------------------------------
10790        X\x20\x0a
10791     0: X \x0a
10792    
10793    /X\H*\R/BZ
10794    ------------------------------------------------------------------
10795            Bra
10796            X
10797            \H*
10798            \R
10799            Ket
10800            End
10801    ------------------------------------------------------------------
10802        X\x0d\x0a
10803     0: X\x0d\x0a
10804    
10805    /X\H+\R/BZ
10806    ------------------------------------------------------------------
10807            Bra
10808            X
10809            \H+
10810            \R
10811            Ket
10812            End
10813    ------------------------------------------------------------------
10814        X\x0d\x0a
10815     0: X\x0d\x0a
10816    
10817    /X\H++\R/BZ
10818    ------------------------------------------------------------------
10819            Bra
10820            X
10821            \H++
10822            \R
10823            Ket
10824            End
10825    ------------------------------------------------------------------
10826        X\x0d\x0a
10827    No match
10828    
10829    /-- Perl treats this one differently, not failing the second string. I believe
10830        that is a bug in Perl. --/
10831    
10832    /^((abc|abcx)(*THEN)y|abcd)/
10833        abcd
10834     0: abcd
10835     1: abcd
10836        *** Failers
10837    No match
10838        abcxy
10839    No match
10840    
10841    /(?<=abc)def/
10842        abc\P\P
10843    Partial match at offset 3: abc
10844    
10845    /abc$/
10846        abc
10847     0: abc
10848        abc\P
10849     0: abc
10850        abc\P\P
10851    Partial match: abc
10852    
10853    /abc$/m
10854        abc
10855     0: abc
10856        abc\n
10857     0: abc
10858        abc\P\P
10859    Partial match: abc
10860        abc\n\P\P
10861     0: abc
10862        abc\P
10863     0: abc
10864        abc\n\P
10865     0: abc
10866    
10867    /abc\z/
10868        abc
10869     0: abc
10870        abc\P
10871     0: abc
10872        abc\P\P
10873    Partial match: abc
10874    
10875    /abc\Z/
10876        abc
10877     0: abc
10878        abc\P
10879     0: abc
10880        abc\P\P
10881    Partial match: abc
10882    
10883    /abc\b/
10884        abc
10885     0: abc
10886        abc\P
10887     0: abc
10888        abc\P\P
10889    Partial match: abc
10890    
10891    /abc\B/
10892        abc
10893    No match
10894        abc\P
10895    Partial match: abc
10896        abc\P\P
10897    Partial match: abc
10898    
10899    /.+/
10900        abc\>0
10901     0: abc
10902        abc\>1
10903     0: bc
10904        abc\>2
10905     0: c
10906        abc\>3
10907    No match
10908        abc\>4
10909    Error -24 (bad offset value)
10910        abc\>-4
10911    Error -24 (bad offset value)
10912    
10913    /^\cģ/
10914    Failed: \c must be followed by an ASCII character at offset 3
10915    
10916    /(?P<abn>(?P=abn)xxx)/BZ
10917    ------------------------------------------------------------------
10918            Bra
10919            Once
10920            CBra 1
10921            \1
10922            xxx
10923            Ket
10924            Ket
10925            Ket
10926            End
10927    ------------------------------------------------------------------
10928    
10929    /(a\1z)/BZ
10930    ------------------------------------------------------------------
10931            Bra
10932            Once
10933            CBra 1
10934            a
10935            \1
10936            z
10937            Ket
10938            Ket
10939            Ket
10940            End
10941    ------------------------------------------------------------------
10942    
10943    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10944    Failed: syntax error in subpattern name (missing terminator) at offset 29
10945    
10946    /(?P<abn>(?P=axn)xxx)/BZ
10947    Failed: reference to non-existent subpattern at offset 15
10948    
10949    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10950    ------------------------------------------------------------------
10951            Bra
10952            CBra 1
10953            \2
10954            xxx
10955            Ket
10956            CBra 2
10957            yy
10958            Ket
10959            Ket
10960            End
10961    ------------------------------------------------------------------
10962    
10963    /-- These tests are here because Perl gets the first one wrong. --/
10964    
10965    /(\R*)(.)/s
10966        \r\n
10967     0: \x0d
10968     1:
10969     2: \x0d
10970        \r\r\n\n\r
10971     0: \x0d\x0d\x0a\x0a\x0d
10972     1: \x0d\x0d\x0a\x0a
10973     2: \x0d
10974        \r\r\n\n\r\n
10975     0: \x0d\x0d\x0a\x0a\x0d
10976     1: \x0d\x0d\x0a\x0a
10977     2: \x0d
10978    
10979    /(\R)*(.)/s
10980        \r\n
10981     0: \x0d
10982     1: <unset>
10983     2: \x0d
10984        \r\r\n\n\r
10985     0: \x0d\x0d\x0a\x0a\x0d
10986     1: \x0a
10987     2: \x0d
10988        \r\r\n\n\r\n
10989     0: \x0d\x0d\x0a\x0a\x0d
10990     1: \x0a
10991     2: \x0d
10992    
10993    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10994        \r\n
10995     0: \x0d
10996     1:
10997     2: \x0d
10998        \r\r\n\n\r
10999     0: \x0d\x0d\x0a\x0a\x0d
11000     1: \x0d\x0d\x0a\x0a
11001     2: \x0d
11002        \r\r\n\n\r\n
11003     0: \x0d\x0d\x0a\x0a\x0d
11004     1: \x0d\x0d\x0a\x0a
11005     2: \x0d
11006    
11007    /-- --/
11008    
11009    /^abc$/BZ
11010    ------------------------------------------------------------------
11011            Bra
11012            ^
11013            abc
11014            $
11015            Ket
11016            End
11017    ------------------------------------------------------------------
11018    
11019    /^abc$/BZm
11020    ------------------------------------------------------------------
11021            Bra
11022         /m ^
11023            abc
11024         /m $
11025            Ket
11026            End
11027    ------------------------------------------------------------------
11028    
11029    /^(a)*+(\w)/S
11030        aaaaX
11031     0: aaaaX
11032     1: a
11033     2: X
11034        ** Failers
11035    No match
11036        aaaa
11037    No match
11038    
11039    /^(?:a)*+(\w)/S
11040        aaaaX
11041     0: aaaaX
11042     1: X
11043        ** Failers
11044    No match
11045        aaaa
11046    No match
11047    
11048    /(a)++1234/SDZ
11049    ------------------------------------------------------------------
11050            Bra
11051            CBraPos 1
11052            a
11053            KetRpos
11054            1234
11055            Ket
11056            End
11057    ------------------------------------------------------------------
11058    Capturing subpattern count = 1
11059    No options
11060    First char = 'a'
11061    Need char = '4'
11062    Subject length lower bound = 5
11063    No set of starting bytes
11064    
11065    /([abc])++1234/SI
11066    Capturing subpattern count = 1
11067    No options
11068    No first char
11069    Need char = '4'
11070    Subject length lower bound = 5
11071    Starting byte set: a b c
11072    
11073    /(?<=(abc)+)X/
11074    Failed: lookbehind assertion is not fixed length at offset 10
11075    
11076    /(^ab)/I
11077    Capturing subpattern count = 1
11078    Options: anchored
11079    No first char
11080    No need char
11081    
11082    /(^ab)++/I
11083    Capturing subpattern count = 1
11084    Options: anchored
11085    No first char
11086    No need char
11087    
11088    /(^ab|^)+/I
11089    Capturing subpattern count = 1
11090    Options: anchored
11091    No first char
11092    No need char
11093    
11094    /(^ab|^)++/I
11095    Capturing subpattern count = 1
11096    Options: anchored
11097    No first char
11098    No need char
11099    
11100    /(?:^ab)/I
11101    Capturing subpattern count = 0
11102    Options: anchored
11103    No first char
11104    No need char
11105    
11106    /(?:^ab)++/I
11107    Capturing subpattern count = 0
11108    Options: anchored
11109    No first char
11110    No need char
11111    
11112    /(?:^ab|^)+/I
11113    Capturing subpattern count = 0
11114    Options: anchored
11115    No first char
11116    No need char
11117    
11118    /(?:^ab|^)++/I
11119    Capturing subpattern count = 0
11120    Options: anchored
11121    No first char
11122    No need char
11123    
11124    /(.*ab)/I
11125    Capturing subpattern count = 1
11126    No options
11127    First char at start or follows newline
11128    Need char = 'b'
11129    
11130    /(.*ab)++/I
11131    Capturing subpattern count = 1
11132    No options
11133    First char at start or follows newline
11134    Need char = 'b'
11135    
11136    /(.*ab|.*)+/I
11137    Capturing subpattern count = 1
11138    No options
11139    First char at start or follows newline
11140    No need char
11141    
11142    /(.*ab|.*)++/I
11143    Capturing subpattern count = 1
11144    No options
11145    First char at start or follows newline
11146    No need char
11147    
11148    /(?:.*ab)/I
11149    Capturing subpattern count = 0
11150    No options
11151    First char at start or follows newline
11152    Need char = 'b'
11153    
11154    /(?:.*ab)++/I
11155    Capturing subpattern count = 0
11156    No options
11157    First char at start or follows newline
11158    Need char = 'b'
11159    
11160    /(?:.*ab|.*)+/I
11161    Capturing subpattern count = 0
11162    No options
11163    First char at start or follows newline
11164    No need char
11165    
11166    /(?:.*ab|.*)++/I
11167    Capturing subpattern count = 0
11168    No options
11169    First char at start or follows newline
11170    No need char
11171    
11172    /(?=a)[bcd]/I
11173    Capturing subpattern count = 0
11174    No options
11175    First char = 'a'
11176    No need char
11177    
11178    /((?=a))[bcd]/I
11179    Capturing subpattern count = 1
11180    No options
11181    First char = 'a'
11182    No need char
11183    
11184    /((?=a))+[bcd]/I
11185    Capturing subpattern count = 1
11186    No options
11187    First char = 'a'
11188    No need char
11189    
11190    /((?=a))++[bcd]/I
11191    Capturing subpattern count = 1
11192    No options
11193    First char = 'a'
11194    No need char
11195    
11196    /(?=a+)[bcd]/iI
11197    Capturing subpattern count = 0
11198    Options: caseless
11199    First char = 'a' (caseless)
11200    No need char
11201    
11202    /(?=a+?)[bcd]/iI
11203    Capturing subpattern count = 0
11204    Options: caseless
11205    First char = 'a' (caseless)
11206    No need char
11207    
11208    /(?=a++)[bcd]/iI
11209    Capturing subpattern count = 0
11210    Options: caseless
11211    First char = 'a' (caseless)
11212    No need char
11213    
11214    /(?=a{3})[bcd]/iI
11215    Capturing subpattern count = 0
11216    Options: caseless
11217    First char = 'a' (caseless)
11218    Need char = 'a' (caseless)
11219    
11220    /(abc)\1+/S
11221    
11222    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11223    
11224    /(?1)(?:(b(*ACCEPT))){0}/
11225        b
11226     0: b
11227    
11228    /(?1)(?:(b(*ACCEPT))){0}c/
11229        bc
11230     0: bc
11231        ** Failers
11232    No match
11233        b
11234    No match
11235    
11236    /(?1)(?:((*ACCEPT))){0}c/
11237        c
11238     0: c
11239        c\N
11240     0: c
11241    
11242    /^.*?(?(?=a)a|b(*THEN)c)/
11243        ba
11244    No match
11245    
11246    /^.*?(?(?=a)a|bc)/
11247        ba
11248     0: ba
11249    
11250    /^.*?(?(?=a)a(*THEN)b|c)/
11251        ac
11252    No match
11253    
11254    /^.*?(?(?=a)a(*THEN)b)c/
11255        ac
11256    No match
11257    
11258    /^.*?(a(*THEN)b)c/
11259        aabc
11260    No match
11261    
11262    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11263        aabc
11264     0: aabc
11265    
11266    /^.*?(a(*THEN)b|z)c/
11267        aabc
11268     0: aabc
11269     1: ab
11270    
11271    /^.*?(z|a(*THEN)b)c/
11272        aabc
11273     0: aabc
11274     1: ab
11275    
11276    /-- --/
11277    
11278    /-- These studied versions are here because they are not Perl-compatible; the
11279        studying means the mark is not seen. --/
11280    
11281    /(*MARK:A)(*SKIP:B)(C|X)/KS
11282        C
11283     0: C
11284     1: C
11285    MK: A
11286        D
11287    No match, mark = A
11288    
11289    /(*:A)A+(*SKIP:A)(B|Z)/KS
11290        AAAC
11291    No match, mark = A
11292    
11293    /-- --/
11294    
11295    "(?=a*(*ACCEPT)b)c"
11296        c
11297     0: c
11298        c\N
11299     0: c
11300    
11301    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11302        c
11303     0: c
11304        c\N
11305     0: c
11306    
11307    /(?>(*ACCEPT)b)c/
11308        c
11309     0:
11310        c\N
11311    No match
11312    
11313    /(?:(?>(a)))+a%/++
11314        %aa%
11315     0: aa%
11316     0+
11317     1: a
11318     1+ a%
11319    
11320    /(a)b|ac/++SS
11321        ac\O3
11322     0: ac
11323     0+
11324    
11325    /(a)(b)x|abc/++
11326         abc\O6
11327     0: abc
11328     0+
11329    
11330    /(a)bc|(a)(b)\2/
11331        \O3abc
11332    Matched, but too many substrings
11333     0: abc
11334        \O4abc
11335    Matched, but too many substrings
11336     0: abc
11337    
11338    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11339    Capturing subpattern count = 2
11340    No options
11341    No first char
11342    No need char
11343    Subject length lower bound = 1
11344    No set of starting bytes
11345    
11346    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11347    Capturing subpattern count = 2
11348    No options
11349    No first char
11350    No need char
11351    Subject length lower bound = 3
11352    Starting byte set: a b
11353    
11354    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11355    Capturing subpattern count = 2
11356    No options
11357    No first char
11358    No need char
11359    Subject length lower bound = 4
11360    Starting byte set: a b
11361    
11362    /(abc)(?1)/SI
11363    Capturing subpattern count = 1
11364    No options
11365    First char = 'a'
11366    Need char = 'c'
11367    Subject length lower bound = 6
11368    No set of starting bytes
11369    
11370    /^(?>a)++/
11371        aa\M
11372    Minimum match() limit = 5
11373    Minimum match() recursion limit = 2
11374     0: aa
11375        aaaaaaaaa\M
11376    Minimum match() limit = 12
11377    Minimum match() recursion limit = 2
11378     0: aaaaaaaaa
11379    
11380    /(a)(?1)++/
11381        aa\M
11382    Minimum match() limit = 7
11383    Minimum match() recursion limit = 4
11384     0: aa
11385     1: a
11386        aaaaaaaaa\M
11387    Minimum match() limit = 21
11388    Minimum match() recursion limit = 4
11389     0: aaaaaaaaa
11390     1: a
11391    
11392    /(?:(foo)|(bar)|(baz))X/SS=
11393        bazfooX
11394     0: fooX
11395     1: foo
11396     2: <unset>
11397     3: <unset>
11398        foobazbarX
11399     0: barX
11400     1: <unset>
11401     2: bar
11402     3: <unset>
11403        barfooX
11404     0: fooX
11405     1: foo
11406     2: <unset>
11407     3: <unset>
11408        bazX
11409     0: bazX
11410     1: <unset>
11411     2: <unset>
11412     3: baz
11413        foobarbazX
11414     0: bazX
11415     1: <unset>
11416     2: <unset>
11417     3: baz
11418        bazfooX\O0
11419    Matched, but too many substrings
11420        bazfooX\O2
11421    Matched, but too many substrings
11422     0: fooX
11423        bazfooX\O4
11424    Matched, but too many substrings
11425     0: fooX
11426     1: <unset>
11427        bazfooX\O6
11428    Matched, but too many substrings
11429     0: fooX
11430     1: foo
11431     2: <unset>
11432        bazfooX\O8
11433    Matched, but too many substrings
11434     0: fooX
11435     1: foo
11436     2: <unset>
11437     3: <unset>
11438        bazfooX\O10
11439     0: fooX
11440     1: foo
11441     2: <unset>
11442     3: <unset>
11443    
11444    /(?=abc){3}abc/BZ
11445    ------------------------------------------------------------------
11446            Bra
11447            Assert
11448            abc
11449            Ket
11450            abc
11451            Ket
11452            End
11453    ------------------------------------------------------------------
11454    
11455    /(?=abc)+abc/BZ
11456    ------------------------------------------------------------------
11457            Bra
11458            Assert
11459            abc
11460            Ket
11461            abc
11462            Ket
11463            End
11464    ------------------------------------------------------------------
11465    
11466    /(?=abc)++abc/BZ
11467    ------------------------------------------------------------------
11468            Bra
11469            Assert
11470            abc
11471            Ket
11472            abc
11473            Ket
11474            End
11475    ------------------------------------------------------------------
11476    
11477    /(?=abc){0}xyz/BZ
11478    ------------------------------------------------------------------
11479            Bra
11480            Skip zero
11481            Assert
11482            abc
11483            Ket
11484            xyz
11485            Ket
11486            End
11487    ------------------------------------------------------------------
11488    
11489    /(?=(a))?./BZ
11490    ------------------------------------------------------------------
11491            Bra
11492            Brazero
11493            Assert
11494            CBra 1
11495            a
11496            Ket
11497            Ket
11498            Any
11499            Ket
11500            End
11501    ------------------------------------------------------------------
11502    
11503    /(?=(a))??./BZ
11504    ------------------------------------------------------------------
11505            Bra
11506            Braminzero
11507            Assert
11508            CBra 1
11509            a
11510            Ket
11511            Ket
11512            Any
11513            Ket
11514            End
11515    ------------------------------------------------------------------
11516    
11517    /^(?=(a)){0}b(?1)/BZ
11518    ------------------------------------------------------------------
11519            Bra
11520            ^
11521            Skip zero
11522            Assert
11523            CBra 1
11524            a
11525            Ket
11526            Ket
11527            b
11528            Recurse
11529            Ket
11530            End
11531    ------------------------------------------------------------------
11532    
11533    /(?(DEFINE)(a))?b(?1)/BZ
11534    ------------------------------------------------------------------
11535            Bra
11536            Cond
11537            Cond def
11538            CBra 1
11539            a
11540            Ket
11541            Ket
11542            b
11543            Recurse
11544            Ket
11545            End
11546    ------------------------------------------------------------------
11547    
11548    /^(?=(?1))?[az]([abc])d/BZ
11549    ------------------------------------------------------------------
11550            Bra
11551            ^
11552            Brazero
11553            Assert
11554            Recurse
11555            Ket
11556            [az]
11557            CBra 1
11558            [a-c]
11559            Ket
11560            d
11561            Ket
11562            End
11563    ------------------------------------------------------------------
11564    
11565    /^(?!a){0}\w+/BZ
11566    ------------------------------------------------------------------
11567            Bra
11568            ^
11569            Skip zero
11570            Assert not
11571            a
11572            Ket
11573            \w+
11574            Ket
11575            End
11576    ------------------------------------------------------------------
11577    
11578    /(?<=(abc))?xyz/BZ
11579    ------------------------------------------------------------------
11580            Bra
11581            Brazero
11582            AssertB
11583            Reverse
11584            CBra 1
11585            abc
11586            Ket
11587            Ket
11588            xyz
11589            Ket
11590            End
11591    ------------------------------------------------------------------
11592    
11593    /[:a[:abc]b:]/BZ
11594    ------------------------------------------------------------------
11595            Bra
11596            [:[a-c]
11597            b:]
11598            Ket
11599            End
11600    ------------------------------------------------------------------
11601    
11602    /((?2))((?1))/SS
11603        abc
11604    Error -26 (nested recursion at the same subject position)
11605    
11606    /((?(R2)a+|(?1)b))/SS
11607        aaaabcde
11608    Error -26 (nested recursion at the same subject position)
11609    
11610    /(?(R)a*(?1)|((?R))b)/SS
11611        aaaabcde
11612    Error -26 (nested recursion at the same subject position)
11613    
11614    /(a+|(?R)b)/
11615    Failed: recursive call could loop indefinitely at offset 7
11616    
11617    /^(a(*:A)(d|e(*:B))z|aeq)/C
11618        adz
11619    --->adz
11620     +0 ^       ^
11621     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11622     +2 ^       a
11623     +3 ^^      (*:A)
11624     +8 ^^      (d|e(*:B))
11625    Latest Mark: A
11626     +9 ^^      d
11627    +10 ^ ^     |
11628    +18 ^ ^     z
11629    +19 ^  ^    |
11630    +24 ^  ^
11631     0: adz
11632     1: adz
11633     2: d
11634        aez
11635    --->aez
11636     +0 ^       ^
11637     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11638     +2 ^       a
11639     +3 ^^      (*:A)
11640     +8 ^^      (d|e(*:B))
11641    Latest Mark: A
11642     +9 ^^      d
11643    +11 ^^      e
11644    +12 ^ ^     (*:B)
11645    +17 ^ ^     )
11646    Latest Mark: B
11647    +18 ^ ^     z
11648    +19 ^  ^    |
11649    +24 ^  ^
11650     0: aez
11651     1: aez
11652     2: e
11653        aeqwerty
11654    --->aeqwerty
11655     +0 ^            ^
11656     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11657     +2 ^            a
11658     +3 ^^           (*:A)
11659     +8 ^^           (d|e(*:B))
11660    Latest Mark: A
11661     +9 ^^           d
11662    +11 ^^           e
11663    +12 ^ ^          (*:B)
11664    +17 ^ ^          )
11665    Latest Mark: B
11666    +18 ^ ^          z
11667    +20 ^            a
11668    +21 ^^           e
11669    +22 ^ ^          q
11670    +23 ^  ^         )
11671    +24 ^  ^
11672     0: aeq
11673     1: aeq
11674    
11675    /.(*F)/
11676        \P\Pabc
11677    No match
11678    
11679    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11680    Capturing subpattern count = 0
11681    No options
11682    First char = 't'
11683    Need char = 't'
11684    Max lookbehind = 1
11685    Subject length lower bound = 18
11686    No set of starting bytes
11687    
11688    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11689    Capturing subpattern count = 0
11690    No options
11691    No first char
11692    No need char
11693    Max lookbehind = 1
11694    Subject length lower bound = 8
11695    Starting byte set: < o t u
11696    
11697    /a(*SKIP)c|b(*ACCEPT)|/+SI
11698    Capturing subpattern count = 0
11699    No options
11700    No first char
11701    No need char
11702    Study returned NULL
11703        a
11704     0:
11705     0+
11706    
11707    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11708    Capturing subpattern count = 0
11709    No options
11710    No first char
11711    No need char
11712    Subject length lower bound = -1
11713    Starting byte set: a b x
11714        ax
11715     0: x
11716    
11717    'a*(*ACCEPT)b'+
11718        \N\N
11719    No match
11720        abc\N\N
11721     0: a
11722     0+ bc
11723        bbb\N\N
11724     0:
11725     0+ bb
11726    
11727    /(*ACCEPT)a/+I
11728    Capturing subpattern count = 0
11729    No options
11730    No first char
11731    No need char
11732        bax
11733     0:
11734     0+ bax
11735    
11736    /z(*ACCEPT)a/+I
11737    Capturing subpattern count = 0
11738    No options
11739    First char = 'z'
11740    No need char
11741        baxzbx
11742     0: z
11743     0+ bx
11744    
11745    /a(?:.)*?a/ims
11746        \Mabbbbbbbbbbbbbbbbbbbbba
11747    Minimum match() limit = 65
11748    Minimum match() recursion limit = 2
11749     0: abbbbbbbbbbbbbbbbbbbbba
11750    
11751    /a(?:.(*THEN))*?a/ims
11752        \Mabbbbbbbbbbbbbbbbbbbbba
11753    Minimum match() limit = 86
11754    Minimum match() recursion limit = 45
11755     0: abbbbbbbbbbbbbbbbbbbbba
11756    
11757    /a(?:.(*THEN:ABC))*?a/ims
11758        \Mabbbbbbbbbbbbbbbbbbbbba
11759    Minimum match() limit = 86
11760    Minimum match() recursion limit = 45
11761     0: abbbbbbbbbbbbbbbbbbbbba
11762    
11763    /-- These tests are in agreement with development Perl 5.015, which has fixed
11764        some things, but they don't all work with 5.012, so they aren't in the
11765        Perl-compatible tests. Those after the first come from Perl's own test
11766        files. --/
11767    
11768    /^((yes|no)(*THEN)(*F))?/
11769      yes
11770    No match
11771    
11772    /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
11773    AbcdCBefgBhiBqz
11774    No match
11775    
11776    /(A (.*)   C? (*THEN)  | A D) z/x
11777    AbcdCBefgBhiBqz
11778    No match
11779    
11780    /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
11781    AbcdCBefgBhiBqz
11782    No match
11783    
11784    /(A (.*)   C? (*THEN)  | A D) \s* z/x
11785    AbcdCBefgBhiBqz
11786    No match
11787    
11788    /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
11789    AbcdCBefgBhiBqz
11790    No match
11791    
11792    /(A (.*)   (?:C|) (*THEN)  | A D) z/x
11793    AbcdCBefgBhiBqz
11794    No match
11795    
11796    /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
11797    AbcdCBefgBhiBqz
11798    No match
11799    
11800    /(A (.*)   C{0,6} (*THEN)  | A D) z/x
11801    AbcdCBefgBhiBqz
11802    No match
11803    
11804    /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
11805    AbcdCEBefgBhiBqz
11806    No match
11807    
11808    /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
11809    AbcdCEBefgBhiBqz
11810    No match
11811    
11812    /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
11813    AbcdCBefgBhiBqz
11814    No match
11815    
11816    /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
11817    AbcdCBefgBhiBqz
11818    No match
11819    
11820    /-----------------------------------------------/
11821    
11822    /^(?>a+)(?>(z+))\w/BZ
11823    ------------------------------------------------------------------
11824            Bra
11825            ^
11826            Once_NC
11827            a+
11828            Ket
11829            Once
11830            CBra 1
11831            z+
11832            Ket
11833            Ket
11834            \w
11835            Ket
11836            End
11837    ------------------------------------------------------------------
11838        aaaazzzzb
11839     0: aaaazzzzb
11840     1: zzzz
11841        ** Failers
11842    No match
11843        aazz
11844    No match
11845    
11846    /(.)(\1|a(?2))/
11847        bab
11848     0: bab
11849     1: b
11850     2: ab
11851    
11852    /\1|(.)(?R)\1/
11853        cbbbc
11854     0: cbbbc
11855     1: c
11856    
11857    /(.)((?(1)c|a)|a(?2))/
11858        baa
11859    No match
11860    
11861    /(?P<abn>(?P=abn)xxx)/BZ
11862    ------------------------------------------------------------------
11863            Bra
11864            Once
11865            CBra 1
11866            \1
11867            xxx
11868            Ket
11869            Ket
11870            Ket
11871            End
11872    ------------------------------------------------------------------
11873    
11874    /(a\1z)/BZ
11875    ------------------------------------------------------------------
11876            Bra
11877            Once
11878            CBra 1
11879            a
11880            \1
11881            z
11882            Ket
11883            Ket
11884            Ket
11885            End
11886    ------------------------------------------------------------------
11887    
11888    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11889         \Maabbccddee
11890    Minimum match() limit = 12
11891    Minimum match() recursion limit = 3
11892     0: aabbccddee
11893    
11894    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11895         \Maabbccddee
11896    Minimum match() limit = 22
11897    Minimum match() recursion limit = 21
11898     0: aabbccddee
11899     1: aa
11900     2: bb
11901     3: cc
11902     4: dd
11903     5: ee
11904    
11905    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11906         \Maabbccddee
11907    Minimum match() limit = 18
11908    Minimum match() recursion limit = 13
11909     0: aabbccddee
11910     1: aa
11911     2: cc
11912     3: ee
11913    
11914    /^a\x41z/<JS>
11915        aAz
11916     0: aAz
11917        *** Failers
11918    No match
11919        ax41z
11920    No match
11921    
11922    /^a[m\x41]z/<JS>
11923        aAz
11924     0: aAz
11925    
11926    /^a\x1z/<JS>
11927        ax1z
11928     0: ax1z
11929    
11930    /^a\u0041z/<JS>
11931        aAz
11932     0: aAz
11933        *** Failers
11934    No match
11935        au0041z
11936    No match
11937    
11938    /^a[m\u0041]z/<JS>
11939        aAz
11940     0: aAz
11941    
11942    /^a\u041z/<JS>
11943        au041z
11944     0: au041z
11945        *** Failers
11946    No match
11947        aAz
11948    No match
11949    
11950    /^a\U0041z/<JS>
11951        aU0041z
11952     0: aU0041z
11953        *** Failers
11954    No match
11955        aAz
11956    No match
11957    
11958    /(?(?=c)c|d)++Y/BZ
11959    ------------------------------------------------------------------
11960            Bra
11961            BraPos
11962            Cond
11963            Assert
11964            c
11965            Ket
11966            c
11967            Alt
11968            d
11969            Ket
11970            KetRpos
11971            Y
11972            Ket
11973            End
11974    ------------------------------------------------------------------
11975    
11976    /(?(?=c)c|d)*+Y/BZ
11977    ------------------------------------------------------------------
11978            Bra
11979            Braposzero
11980            BraPos
11981            Cond
11982            Assert
11983            c
11984            Ket
11985            c
11986            Alt
11987            d
11988            Ket
11989            KetRpos
11990            Y
11991            Ket
11992            End
11993    ------------------------------------------------------------------
11994    
11995    /a[\NB]c/
11996    Failed: \N is not supported in a class at offset 3
11997    
11998    /a[B-\Nc]/
11999    Failed: \N is not supported in a class at offset 5
12000    
12001    /(a)(?2){0,1999}?(b)/
12002    
12003    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
12004    
12005    /--- This test, with something more complicated than individual letters, causes
12006    different behaviour in Perl. Perhaps it disables some optimization; no tag is
12007    passed back for the failures, whereas in PCRE there is a tag. ---/
12008    
12009    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
12010        AABC
12011     0: AB
12012     1: A
12013     2: B
12014    MK: A
12015        XXYZ
12016     0: XXY
12017     1: <unset>
12018     2: <unset>
12019     3: X
12020     4: X
12021     5: Y
12022    MK: B
12023        ** Failers
12024    No match
12025        XAQQ
12026    No match, mark = A
12027        XAQQXZZ
12028    No match, mark = A
12029        AXQQQ
12030    No match, mark = A
12031        AXXQQQ
12032    No match, mark = B
12033    
12034    /-- Perl doesn't give marks for these, though it does if the alternatives are
12035    replaced by single letters. --/
12036    
12037    /(b|q)(*:m)f|a(*:n)w/K
12038        aw
12039     0: aw
12040    MK: n
12041        ** Failers
12042    No match, mark = n
12043        abc
12044    No match, mark = m
12045    
12046    /(q|b)(*:m)f|a(*:n)w/K
12047        aw
12048     0: aw
12049    MK: n
12050        ** Failers
12051    No match, mark = n
12052        abc
12053    No match, mark = m
12054    
12055    /-- After a partial match, the behaviour is as for a failure. --/
12056    
12057    /^a(*:X)bcde/K
12058       abc\P
12059    Partial match, mark=X: abc
12060    
12061    /-- These are here because Perl doesn't return a mark, except for the first --/
12062    
12063    /(?=(*:x))(q|)/K+
12064        abc
12065     0:
12066     0+ abc
12067     1:
12068    MK: x
12069    
12070    /(?=(*:x))((*:y)q|)/K+
12071        abc
12072     0:
12073     0+ abc
12074     1:
12075    MK: x
12076    
12077    /(?=(*:x))(?:(*:y)q|)/K+
12078        abc
12079     0:
12080     0+ abc
12081    MK: x
12082    
12083    /(?=(*:x))(?>(*:y)q|)/K+
12084        abc
12085     0:
12086     0+ abc
12087    MK: x
12088    
12089    /(?=a(*:x))(?!a(*:y)c)/K+
12090        ab
12091     0:
12092     0+ ab
12093    MK: x
12094    
12095    /(?=a(*:x))(?=a(*:y)c|)/K+
12096        ab
12097     0:
12098     0+ ab
12099    MK: x
12100    
12101    /(..)\1/
12102        ab\P
12103    Partial match: ab
12104        aba\P
12105    Partial match: aba
12106        abab\P
12107     0: abab
12108     1: ab
12109    
12110    /(..)\1/i
12111        ab\P
12112    Partial match: ab
12113        abA\P
12114    Partial match: abA
12115        aBAb\P
12116     0: aBAb
12117     1: aB
12118    
12119    /(..)\1{2,}/
12120        ab\P
12121    Partial match: ab
12122        aba\P
12123    Partial match: aba
12124        abab\P
12125    Partial match: abab
12126        ababa\P
12127    Partial match: ababa
12128        ababab\P
12129     0: ababab
12130     1: ab
12131        ababab\P\P
12132    Partial match: ababab
12133        abababa\P
12134     0: ababab
12135     1: ab
12136        abababa\P\P
12137    Partial match: abababa
12138    
12139    /(..)\1{2,}/i
12140        ab\P
12141    Partial match: ab
12142        aBa\P
12143    Partial match: aBa
12144        aBAb\P
12145    Partial match: aBAb
12146        AbaBA\P
12147    Partial match: AbaBA
12148        abABAb\P
12149     0: abABAb
12150     1: ab
12151        aBAbaB\P\P
12152    Partial match: aBAbaB
12153        abABabA\P
12154     0: abABab
12155     1: ab
12156        abaBABa\P\P
12157    Partial match: abaBABa
12158    
12159    /(..)\1{2,}?x/i
12160        ab\P
12161    Partial match: ab
12162        abA\P
12163    Partial match: abA
12164        aBAb\P
12165    Partial match: aBAb
12166        abaBA\P
12167    Partial match: abaBA
12168        abAbaB\P
12169    Partial match: abAbaB
12170        abaBabA\P
12171    Partial match: abaBabA
12172        abAbABaBx\P
12173     0: abAbABaBx
12174     1: ab
12175    
12176    /^(..)\1/
12177        aba\P
12178    Partial match: aba
12179    
12180    /^(..)\1{2,3}x/
12181        aba\P
12182    Partial match: aba
12183        ababa\P
12184    Partial match: ababa
12185        ababa\P\P
12186    Partial match: ababa
12187        abababx
12188     0: abababx
12189     1: ab
12190        ababababx
12191     0: ababababx
12192     1: ab
12193    
12194    /^(..)\1{2,3}?x/
12195        aba\P
12196    Partial match: aba
12197        ababa\P
12198    Partial match: ababa
12199        ababa\P\P
12200    Partial match: ababa
12201        abababx
12202     0: abababx
12203     1: ab
12204        ababababx
12205     0: ababababx
12206     1: ab
12207    
12208    /^(..)(\1{2,3})ab/
12209        abababab
12210     0: abababab
12211     1: ab
12212     2: abab
12213    
12214    /^\R/
12215        \r\P
12216     0: \x0d
12217        \r\P\P
12218    Partial match: \x0d
12219    
12220    /^\R{2,3}x/
12221        \r\P
12222    Partial match: \x0d
12223        \r\P\P
12224    Partial match: \x0d
12225        \r\r\P
12226    Partial match: \x0d\x0d
12227        \r\r\P\P
12228    Partial match: \x0d\x0d
12229        \r\r\r\P
12230    Partial match: \x0d\x0d\x0d
12231        \r\r\r\P\P
12232    Partial match: \x0d\x0d\x0d
12233        \r\rx
12234     0: \x0d\x0dx
12235        \r\r\rx
12236     0: \x0d\x0d\x0dx
12237    
12238    /^\R{2,3}?x/
12239        \r\P
12240    Partial match: \x0d
12241        \r\P\P
12242    Partial match: \x0d
12243        \r\r\P
12244    Partial match: \x0d\x0d
12245        \r\r\P\P
12246    Partial match: \x0d\x0d
12247        \r\r\r\P
12248    Partial match: \x0d\x0d\x0d
12249        \r\r\r\P\P
12250    Partial match: \x0d\x0d\x0d
12251        \r\rx
12252     0: \x0d\x0dx
12253        \r\r\rx
12254     0: \x0d\x0d\x0dx
12255    
12256    /^\R?x/
12257        \r\P
12258    Partial match: \x0d
12259        \r\P\P
12260    Partial match: \x0d
12261        x
12262     0: x
12263        \rx
12264     0: \x0dx
12265    
12266    /^\R+x/
12267        \r\P
12268    Partial match: \x0d
12269        \r\P\P
12270    Partial match: \x0d
12271        \r\n\P
12272    Partial match: \x0d\x0a
12273        \r\n\P\P
12274    Partial match: \x0d\x0a
12275        \rx
12276     0: \x0dx
12277    
12278    /^a$/<CRLF>
12279        a\r\P
12280    Partial match: a\x0d
12281        a\r\P\P
12282    Partial match: a\x0d
12283    
12284    /^a$/m<CRLF>
12285        a\r\P
12286    Partial match: a\x0d
12287        a\r\P\P
12288    Partial match: a\x0d
12289    
12290    /^(a$|a\r)/<CRLF>
12291        a\r\P
12292     0: a\x0d
12293     1: a\x0d
12294        a\r\P\P
12295    Partial match: a\x0d
12296    
12297    /^(a$|a\r)/m<CRLF>
12298        a\r\P
12299     0: a\x0d
12300     1: a\x0d
12301        a\r\P\P
12302    Partial match: a\x0d
12303    
12304    /./<CRLF>
12305        \r\P
12306     0: \x0d
12307        \r\P\P
12308    Partial match: \x0d
12309    
12310    /.{2,3}/<CRLF>
12311        \r\P
12312    Partial match: \x0d
12313        \r\P\P
12314    Partial match: \x0d
12315        \r\r\P
12316     0: \x0d\x0d
12317        \r\r\P\P
12318    Partial match: \x0d\x0d
12319        \r\r\r\P
12320     0: \x0d\x0d\x0d
12321        \r\r\r\P\P
12322    Partial match: \x0d\x0d\x0d
12323    
12324    /.{2,3}?/<CRLF>
12325        \r\P
12326    Partial match: \x0d
12327        \r\P\P
12328    Partial match: \x0d
12329        \r\r\P
12330     0: \x0d\x0d
12331        \r\r\P\P
12332    Partial match: \x0d\x0d
12333        \r\r\r\P
12334     0: \x0d\x0d
12335        \r\r\r\P\P
12336     0: \x0d\x0d
12337    
12338    /-- These two are here because Perl does not match: it seems to allow the
12339    COMMIT to escape from the assertion. --/
12340    
12341    /(?=a(*COMMIT)b|ac)ac|ac/
12342        ac
12343     0: ac
12344    
12345    /(?=a(*COMMIT)b|(ac)) ac | (a)c/x
12346        ac
12347     0: ac
12348     1: <unset>
12349     2: a
12350    
12351    "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12352        ABCDGHI\O03
12353    Matched, but too many substrings
12354     0: ABCD
12355    
12356    /-- This one is here because Perl does not confine the *COMMIT to the
12357    assertion, and therefore fails the entire subroutine call. --/
12358    
12359    /((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/
12360        ac
12361     0: ac
12362    
12363    /-- These are all run as real matches in test 1; here we are just checking the
12364    settings of the anchored and startline bits. --/
12365    
12366    /(?>.*?a)(?<=ba)/I
12367    Capturing subpattern count = 0
12368    No options
12369    No first char
12370    Need char = 'a'
12371    Max lookbehind = 2
12372    
12373    /(?:.*?a)(?<=ba)/I
12374    Capturing subpattern count = 0
12375    No options
12376    First char at start or follows newline
12377    Need char = 'a'
12378    Max lookbehind = 2
12379    
12380    /.*?a(*PRUNE)b/I
12381    Capturing subpattern count = 0
12382    No options
12383    No first char
12384    Need char = 'b'
12385    
12386    /.*?a(*PRUNE)b/sI
12387    Capturing subpattern count = 0
12388    Options: dotall
12389    No first char
12390    Need char = 'b'
12391    
12392    /^a(*PRUNE)b/sI
12393    Capturing subpattern count = 0
12394    Options: anchored dotall
12395    No first char
12396    No need char
12397    
12398    /.*?a(*SKIP)b/I
12399    Capturing subpattern count = 0
12400    No options
12401    No first char
12402    Need char = 'b'
12403    
12404    /(?>.*?a)b/sI
12405    Capturing subpattern count = 0
12406    Options: dotall
12407    No first char
12408    Need char = 'b'
12409    
12410    /(?>.*?a)b/I
12411    Capturing subpattern count = 0
12412    No options
12413    No first char
12414    Need char = 'b'
12415    
12416    /(?>^a)b/sI
12417    Capturing subpattern count = 0
12418    Options: anchored dotall
12419    No first char
12420    No need char
12421    
12422    /(?>.*?)(?<=(abcd)|(wxyz))/I
12423    Capturing subpattern count = 2
12424    No options
12425    No first char
12426    No need char
12427    Max lookbehind = 4
12428    
12429    /(?>.*)(?<=(abcd)|(wxyz))/I
12430    Capturing subpattern count = 2
12431    No options
12432    No first char
12433    No need char
12434    Max lookbehind = 4
12435    
12436    "(?>.*)foo"I
12437    Capturing subpattern count = 0
12438    No options
12439    No first char
12440    Need char = 'o'
12441    
12442    "(?>.*?)foo"I
12443    Capturing subpattern count = 0
12444    No options
12445    No first char
12446    Need char = 'o'
12447    
12448    /(?>^abc)/mI
12449    Capturing subpattern count = 0
12450    Options: multiline
12451    First char at start or follows newline
12452    Need char = 'c'
12453    
12454    /(?>.*abc)/mI
12455    Capturing subpattern count = 0
12456    Options: multiline
12457    No first char
12458    Need char = 'c'
12459    
12460    /(?:.*abc)/mI
12461    Capturing subpattern count = 0
12462    Options: multiline
12463    First char at start or follows newline
12464    Need char = 'c'
12465    
12466    /-- Check PCRE_STUDY_EXTRA_NEEDED --/
12467    
12468    /.?/S-I
12469    Capturing subpattern count = 0
12470    No options
12471    No first char
12472    No need char
12473    Study returned NULL
12474    
12475    /.?/S!I
12476    Capturing subpattern count = 0
12477    No options
12478    No first char
12479    No need char
12480    Subject length lower bound = -1
12481    No set of starting bytes
12482    
12483    /(?:(a)+(?C1)bb|aa(?C2)b)/
12484        aab\C+
12485    Callout 1: last capture = 1
12486     0: <unset>
12487     1: a
12488    --->aab
12489        ^ ^     b
12490    Callout 1: last capture = 1
12491     0: <unset>
12492     1: a
12493    --->aab
12494        ^^      b
12495    Callout 2: last capture = -1
12496     0: <unset>
12497    --->aab
12498        ^ ^     b
12499     0: aab
12500    
12501    /(?:(a)++(?C1)bb|aa(?C2)b)/
12502        aab\C+
12503    Callout 1: last capture = 1
12504     0: <unset>
12505     1: a
12506    --->aab
12507        ^ ^     b
12508    Callout 2: last capture = -1
12509     0: <unset>
12510    --->aab
12511        ^ ^     b
12512     0: aab
12513    
12514    /(?:(?>(a))(?C1)bb|aa(?C2)b)/
12515        aab\C+
12516    Callout 1: last capture = 1
12517     0: <unset>
12518     1: a
12519    --->aab
12520        ^^      b
12521    Callout 2: last capture = -1
12522     0: <unset>
12523    --->aab
12524        ^ ^     b
12525     0: aab
12526    
12527    /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
12528        aab\C+
12529    Callout 1: last capture = -1
12530     0: <unset>
12531    --->aab
12532        ^^      x
12533    Callout 1: last capture = -1
12534     0: <unset>
12535    --->aab
12536         ^^     x
12537    Callout 2: last capture = -1
12538     0: <unset>
12539    --->aab
12540         ^ ^    )
12541     0: ab
12542    
12543    /(?1)(?C1)((a)(?C2)){0}/
12544        aab\C+
12545    Callout 2: last capture = 2
12546     0: <unset>
12547     1: <unset>
12548     2: a
12549    --->aab
12550        ^^      )
12551    Callout 1: last capture = -1
12552     0: <unset>
12553    --->aab
12554        ^^      ((a)(?C2)){0}
12555     0: a
12556    
12557    /(?:(a)+(?C1)bb|aa(?C2)b)++/
12558        aab\C+
12559    Callout 1: last capture = 1
12560     0: <unset>
12561     1: a
12562    --->aab
12563        ^ ^     b
12564    Callout 1: last capture = 1
12565     0: <unset>
12566     1: a
12567    --->aab
12568        ^^      b
12569    Callout 2: last capture = -1
12570     0: <unset>
12571    --->aab
12572        ^ ^     b
12573     0: aab
12574        aab\C+\O2
12575    Callout 1: last capture = 1
12576     0: <unset>
12577    --->aab
12578        ^ ^     b
12579    Callout 1: last capture = 1
12580     0: <unset>
12581    --->aab
12582        ^^      b
12583    Callout 2: last capture = -1
12584     0: <unset>
12585    --->aab
12586        ^ ^     b
12587     0: aab
12588    
12589    /(ab)x|ab/
12590        ab\O3
12591     0: ab
12592        ab\O2
12593     0: ab
12594    
12595    /(ab)/
12596        ab\O3
12597    Matched, but too many substrings
12598     0: ab
12599        ab\O2
12600    Matched, but too many substrings
12601     0: ab
12602    
12603    /(?<=123)(*MARK:xx)abc/K
12604        xxxx123a\P\P
12605    Partial match at offset 7, mark=xx: 123a
12606        xxxx123a\P
12607    Partial match at offset 7, mark=xx: 123a
12608    
12609    /123\Kabc/
12610        xxxx123a\P\P
12611    Partial match: 123a
12612        xxxx123a\P
12613    Partial match: 123a
12614    
12615  /-- End of testinput2 --/  /-- End of testinput2 --/

Legend:
Removed from v.500  
changed lines
  Added in v.1251

  ViewVC Help
Powered by ViewVC 1.1.5