/[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 961 by ph10, Fri Apr 20 11:49:13 2012 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  First char at start or follows newline
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   +1            ^                                     [ab]  +11                                     ^            x
5125  +11            ^                                     x  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]
5198    +11            ^                                     x
5199   +0             ^                                    ([ab]{,4}c|xy)   +0             ^                                    ([ab]{,4}c|xy)
5200   +1             ^                                    [ab]   +1             ^                                    [ab]
5201  +11             ^                                    x  +11             ^                                    x
# 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 9599  Partial match: +ab Line 9734  Partial match: +ab
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 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: 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    Matched, but too many substrings
11323     0: ac
11324     0+
11325    
11326    /(a)(b)x|abc/++
11327         abc\O6
11328     0: abc
11329     0+
11330    
11331    /(a)bc|(a)(b)\2/
11332        \O3abc
11333    Matched, but too many substrings
11334     0: abc
11335        \O4abc
11336    Matched, but too many substrings
11337     0: abc
11338    
11339    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11340    Capturing subpattern count = 2
11341    No options
11342    No first char
11343    No need char
11344    Subject length lower bound = 1
11345    No set of starting bytes
11346    
11347    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11348    Capturing subpattern count = 2
11349    No options
11350    No first char
11351    No need char
11352    Subject length lower bound = 3
11353    Starting byte set: a b
11354    
11355    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11356    Capturing subpattern count = 2
11357    No options
11358    No first char
11359    No need char
11360    Subject length lower bound = 4
11361    Starting byte set: a b
11362    
11363    /(abc)(?1)/SI
11364    Capturing subpattern count = 1
11365    No options
11366    First char = 'a'
11367    Need char = 'c'
11368    Subject length lower bound = 6
11369    No set of starting bytes
11370    
11371    /^(?>a)++/
11372        aa\M
11373    Minimum match() limit = 5
11374    Minimum match() recursion limit = 2
11375     0: aa
11376        aaaaaaaaa\M
11377    Minimum match() limit = 12
11378    Minimum match() recursion limit = 2
11379     0: aaaaaaaaa
11380    
11381    /(a)(?1)++/
11382        aa\M
11383    Minimum match() limit = 7
11384    Minimum match() recursion limit = 4
11385     0: aa
11386     1: a
11387        aaaaaaaaa\M
11388    Minimum match() limit = 21
11389    Minimum match() recursion limit = 4
11390     0: aaaaaaaaa
11391     1: a
11392    
11393    /(?:(foo)|(bar)|(baz))X/SS=
11394        bazfooX
11395     0: fooX
11396     1: foo
11397     2: <unset>
11398     3: <unset>
11399        foobazbarX
11400     0: barX
11401     1: <unset>
11402     2: bar
11403     3: <unset>
11404        barfooX
11405     0: fooX
11406     1: foo
11407     2: <unset>
11408     3: <unset>
11409        bazX
11410     0: bazX
11411     1: <unset>
11412     2: <unset>
11413     3: baz
11414        foobarbazX
11415     0: bazX
11416     1: <unset>
11417     2: <unset>
11418     3: baz
11419        bazfooX\O0
11420    Matched, but too many substrings
11421        bazfooX\O2
11422    Matched, but too many substrings
11423     0: fooX
11424        bazfooX\O4
11425    Matched, but too many substrings
11426     0: fooX
11427     1: <unset>
11428        bazfooX\O6
11429    Matched, but too many substrings
11430     0: fooX
11431     1: foo
11432     2: <unset>
11433        bazfooX\O8
11434    Matched, but too many substrings
11435     0: fooX
11436     1: foo
11437     2: <unset>
11438     3: <unset>
11439        bazfooX\O10
11440     0: fooX
11441     1: foo
11442     2: <unset>
11443     3: <unset>
11444    
11445    /(?=abc){3}abc/BZ
11446    ------------------------------------------------------------------
11447            Bra
11448            Assert
11449            abc
11450            Ket
11451            abc
11452            Ket
11453            End
11454    ------------------------------------------------------------------
11455    
11456    /(?=abc)+abc/BZ
11457    ------------------------------------------------------------------
11458            Bra
11459            Assert
11460            abc
11461            Ket
11462            abc
11463            Ket
11464            End
11465    ------------------------------------------------------------------
11466    
11467    /(?=abc)++abc/BZ
11468    ------------------------------------------------------------------
11469            Bra
11470            Assert
11471            abc
11472            Ket
11473            abc
11474            Ket
11475            End
11476    ------------------------------------------------------------------
11477    
11478    /(?=abc){0}xyz/BZ
11479    ------------------------------------------------------------------
11480            Bra
11481            Skip zero
11482            Assert
11483            abc
11484            Ket
11485            xyz
11486            Ket
11487            End
11488    ------------------------------------------------------------------
11489    
11490    /(?=(a))?./BZ
11491    ------------------------------------------------------------------
11492            Bra
11493            Brazero
11494            Assert
11495            CBra 1
11496            a
11497            Ket
11498            Ket
11499            Any
11500            Ket
11501            End
11502    ------------------------------------------------------------------
11503    
11504    /(?=(a))??./BZ
11505    ------------------------------------------------------------------
11506            Bra
11507            Braminzero
11508            Assert
11509            CBra 1
11510            a
11511            Ket
11512            Ket
11513            Any
11514            Ket
11515            End
11516    ------------------------------------------------------------------
11517    
11518    /^(?=(a)){0}b(?1)/BZ
11519    ------------------------------------------------------------------
11520            Bra
11521            ^
11522            Skip zero
11523            Assert
11524            CBra 1
11525            a
11526            Ket
11527            Ket
11528            b
11529            Recurse
11530            Ket
11531            End
11532    ------------------------------------------------------------------
11533    
11534    /(?(DEFINE)(a))?b(?1)/BZ
11535    ------------------------------------------------------------------
11536            Bra
11537            Cond
11538            Cond def
11539            CBra 1
11540            a
11541            Ket
11542            Ket
11543            b
11544            Recurse
11545            Ket
11546            End
11547    ------------------------------------------------------------------
11548    
11549    /^(?=(?1))?[az]([abc])d/BZ
11550    ------------------------------------------------------------------
11551            Bra
11552            ^
11553            Brazero
11554            Assert
11555            Recurse
11556            Ket
11557            [az]
11558            CBra 1
11559            [a-c]
11560            Ket
11561            d
11562            Ket
11563            End
11564    ------------------------------------------------------------------
11565    
11566    /^(?!a){0}\w+/BZ
11567    ------------------------------------------------------------------
11568            Bra
11569            ^
11570            Skip zero
11571            Assert not
11572            a
11573            Ket
11574            \w+
11575            Ket
11576            End
11577    ------------------------------------------------------------------
11578    
11579    /(?<=(abc))?xyz/BZ
11580    ------------------------------------------------------------------
11581            Bra
11582            Brazero
11583            AssertB
11584            Reverse
11585            CBra 1
11586            abc
11587            Ket
11588            Ket
11589            xyz
11590            Ket
11591            End
11592    ------------------------------------------------------------------
11593    
11594    /[:a[:abc]b:]/BZ
11595    ------------------------------------------------------------------
11596            Bra
11597            [:[a-c]
11598            b:]
11599            Ket
11600            End
11601    ------------------------------------------------------------------
11602    
11603    /((?2))((?1))/SS
11604        abc
11605    Error -26 (nested recursion at the same subject position)
11606    
11607    /((?(R2)a+|(?1)b))/SS
11608        aaaabcde
11609    Error -26 (nested recursion at the same subject position)
11610    
11611    /(?(R)a*(?1)|((?R))b)/SS
11612        aaaabcde
11613    Error -26 (nested recursion at the same subject position)
11614    
11615    /(a+|(?R)b)/
11616    Failed: recursive call could loop indefinitely at offset 7
11617    
11618    /^(a(*:A)(d|e(*:B))z|aeq)/C
11619        adz
11620    --->adz
11621     +0 ^       ^
11622     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11623     +2 ^       a
11624     +3 ^^      (*:A)
11625     +8 ^^      (d|e(*:B))
11626    Latest Mark: A
11627     +9 ^^      d
11628    +10 ^ ^     |
11629    +18 ^ ^     z
11630    +19 ^  ^    |
11631    +24 ^  ^
11632     0: adz
11633     1: adz
11634     2: d
11635        aez
11636    --->aez
11637     +0 ^       ^
11638     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11639     +2 ^       a
11640     +3 ^^      (*:A)
11641     +8 ^^      (d|e(*:B))
11642    Latest Mark: A
11643     +9 ^^      d
11644    +11 ^^      e
11645    +12 ^ ^     (*:B)
11646    +17 ^ ^     )
11647    Latest Mark: B
11648    +18 ^ ^     z
11649    +19 ^  ^    |
11650    +24 ^  ^
11651     0: aez
11652     1: aez
11653     2: e
11654        aeqwerty
11655    --->aeqwerty
11656     +0 ^            ^
11657     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11658     +2 ^            a
11659     +3 ^^           (*:A)
11660     +8 ^^           (d|e(*:B))
11661    Latest Mark: A
11662     +9 ^^           d
11663    +11 ^^           e
11664    +12 ^ ^          (*:B)
11665    +17 ^ ^          )
11666    Latest Mark: B
11667    +18 ^ ^          z
11668    +20 ^            a
11669    +21 ^^           e
11670    +22 ^ ^          q
11671    +23 ^  ^         )
11672    +24 ^  ^
11673     0: aeq
11674     1: aeq
11675    
11676    /.(*F)/
11677        \P\Pabc
11678    No match
11679    
11680    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11681    Capturing subpattern count = 0
11682    No options
11683    First char = 't'
11684    Need char = 't'
11685    Max lookbehind = 1
11686    Subject length lower bound = 18
11687    No set of starting bytes
11688    
11689    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11690    Capturing subpattern count = 0
11691    No options
11692    No first char
11693    No need char
11694    Max lookbehind = 1
11695    Subject length lower bound = 8
11696    Starting byte set: < o t u
11697    
11698    /a(*SKIP)c|b(*ACCEPT)|/+SI
11699    Capturing subpattern count = 0
11700    No options
11701    No first char
11702    No need char
11703    Study returned NULL
11704        a
11705     0:
11706     0+
11707    
11708    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11709    Capturing subpattern count = 0
11710    No options
11711    No first char
11712    No need char
11713    Subject length lower bound = -1
11714    Starting byte set: a b x
11715        ax
11716     0: x
11717    
11718    'a*(*ACCEPT)b'+
11719        \N\N
11720    No match
11721        abc\N\N
11722     0: a
11723     0+ bc
11724        bbb\N\N
11725     0:
11726     0+ bb
11727    
11728    /(*ACCEPT)a/+I
11729    Capturing subpattern count = 0
11730    No options
11731    No first char
11732    No need char
11733        bax
11734     0:
11735     0+ bax
11736    
11737    /z(*ACCEPT)a/+I
11738    Capturing subpattern count = 0
11739    No options
11740    First char = 'z'
11741    No need char
11742        baxzbx
11743     0: z
11744     0+ bx
11745    
11746    /a(?:.)*?a/ims
11747        \Mabbbbbbbbbbbbbbbbbbbbba
11748    Minimum match() limit = 65
11749    Minimum match() recursion limit = 2
11750     0: abbbbbbbbbbbbbbbbbbbbba
11751    
11752    /a(?:.(*THEN))*?a/ims
11753        \Mabbbbbbbbbbbbbbbbbbbbba
11754    Minimum match() limit = 86
11755    Minimum match() recursion limit = 45
11756     0: abbbbbbbbbbbbbbbbbbbbba
11757    
11758    /a(?:.(*THEN:ABC))*?a/ims
11759        \Mabbbbbbbbbbbbbbbbbbbbba
11760    Minimum match() limit = 86
11761    Minimum match() recursion limit = 45
11762     0: abbbbbbbbbbbbbbbbbbbbba
11763    
11764    /-- These tests are in agreement with development Perl 5.015, which has fixed
11765        some things, but they don't all work with 5.012, so they aren't in the
11766        Perl-compatible tests. Those after the first come from Perl's own test
11767        files. --/
11768    
11769    /^((yes|no)(*THEN)(*F))?/
11770      yes
11771    No match
11772    
11773    /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
11774    AbcdCBefgBhiBqz
11775    No match
11776    
11777    /(A (.*)   C? (*THEN)  | A D) z/x
11778    AbcdCBefgBhiBqz
11779    No match
11780    
11781    /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
11782    AbcdCBefgBhiBqz
11783    No match
11784    
11785    /(A (.*)   C? (*THEN)  | A D) \s* z/x
11786    AbcdCBefgBhiBqz
11787    No match
11788    
11789    /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
11790    AbcdCBefgBhiBqz
11791    No match
11792    
11793    /(A (.*)   (?:C|) (*THEN)  | A D) z/x
11794    AbcdCBefgBhiBqz
11795    No match
11796    
11797    /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
11798    AbcdCBefgBhiBqz
11799    No match
11800    
11801    /(A (.*)   C{0,6} (*THEN)  | A D) z/x
11802    AbcdCBefgBhiBqz
11803    No match
11804    
11805    /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
11806    AbcdCEBefgBhiBqz
11807    No match
11808    
11809    /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
11810    AbcdCEBefgBhiBqz
11811    No match
11812    
11813    /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
11814    AbcdCBefgBhiBqz
11815    No match
11816    
11817    /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
11818    AbcdCBefgBhiBqz
11819    No match
11820    
11821    /-----------------------------------------------/
11822    
11823    /^(?>a+)(?>(z+))\w/BZ
11824    ------------------------------------------------------------------
11825            Bra
11826            ^
11827            Once_NC
11828            a+
11829            Ket
11830            Once
11831            CBra 1
11832            z+
11833            Ket
11834            Ket
11835            \w
11836            Ket
11837            End
11838    ------------------------------------------------------------------
11839        aaaazzzzb
11840     0: aaaazzzzb
11841     1: zzzz
11842        ** Failers
11843    No match
11844        aazz
11845    No match
11846    
11847    /(.)(\1|a(?2))/
11848        bab
11849     0: bab
11850     1: b
11851     2: ab
11852    
11853    /\1|(.)(?R)\1/
11854        cbbbc
11855     0: cbbbc
11856     1: c
11857    
11858    /(.)((?(1)c|a)|a(?2))/
11859        baa
11860    No match
11861    
11862    /(?P<abn>(?P=abn)xxx)/BZ
11863    ------------------------------------------------------------------
11864            Bra
11865            Once
11866            CBra 1
11867            \1
11868            xxx
11869            Ket
11870            Ket
11871            Ket
11872            End
11873    ------------------------------------------------------------------
11874    
11875    /(a\1z)/BZ
11876    ------------------------------------------------------------------
11877            Bra
11878            Once
11879            CBra 1
11880            a
11881            \1
11882            z
11883            Ket
11884            Ket
11885            Ket
11886            End
11887    ------------------------------------------------------------------
11888    
11889    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11890         \Maabbccddee
11891    Minimum match() limit = 12
11892    Minimum match() recursion limit = 3
11893     0: aabbccddee
11894    
11895    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11896         \Maabbccddee
11897    Minimum match() limit = 22
11898    Minimum match() recursion limit = 21
11899     0: aabbccddee
11900     1: aa
11901     2: bb
11902     3: cc
11903     4: dd
11904     5: ee
11905    
11906    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11907         \Maabbccddee
11908    Minimum match() limit = 18
11909    Minimum match() recursion limit = 13
11910     0: aabbccddee
11911     1: aa
11912     2: cc
11913     3: ee
11914    
11915    /^a\x41z/<JS>
11916        aAz
11917     0: aAz
11918        *** Failers
11919    No match
11920        ax41z
11921    No match
11922    
11923    /^a[m\x41]z/<JS>
11924        aAz
11925     0: aAz
11926    
11927    /^a\x1z/<JS>
11928        ax1z
11929     0: ax1z
11930    
11931    /^a\u0041z/<JS>
11932        aAz
11933     0: aAz
11934        *** Failers
11935    No match
11936        au0041z
11937    No match
11938    
11939    /^a[m\u0041]z/<JS>
11940        aAz
11941     0: aAz
11942    
11943    /^a\u041z/<JS>
11944        au041z
11945     0: au041z
11946        *** Failers
11947    No match
11948        aAz
11949    No match
11950    
11951    /^a\U0041z/<JS>
11952        aU0041z
11953     0: aU0041z
11954        *** Failers
11955    No match
11956        aAz
11957    No match
11958    
11959    /(?(?=c)c|d)++Y/BZ
11960    ------------------------------------------------------------------
11961            Bra
11962            BraPos
11963            Cond
11964            Assert
11965            c
11966            Ket
11967            c
11968            Alt
11969            d
11970            Ket
11971            KetRpos
11972            Y
11973            Ket
11974            End
11975    ------------------------------------------------------------------
11976    
11977    /(?(?=c)c|d)*+Y/BZ
11978    ------------------------------------------------------------------
11979            Bra
11980            Braposzero
11981            BraPos
11982            Cond
11983            Assert
11984            c
11985            Ket
11986            c
11987            Alt
11988            d
11989            Ket
11990            KetRpos
11991            Y
11992            Ket
11993            End
11994    ------------------------------------------------------------------
11995    
11996    /a[\NB]c/
11997    Failed: \N is not supported in a class at offset 3
11998    
11999    /a[B-\Nc]/
12000    Failed: \N is not supported in a class at offset 5
12001    
12002    /(a)(?2){0,1999}?(b)/
12003    
12004    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
12005    
12006    /--- This test, with something more complicated than individual letters, causes
12007    different behaviour in Perl. Perhaps it disables some optimization; no tag is
12008    passed back for the failures, whereas in PCRE there is a tag. ---/
12009    
12010    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
12011        AABC
12012     0: AB
12013     1: A
12014     2: B
12015    MK: A
12016        XXYZ
12017     0: XXY
12018     1: <unset>
12019     2: <unset>
12020     3: X
12021     4: X
12022     5: Y
12023    MK: B
12024        ** Failers
12025    No match
12026        XAQQ
12027    No match, mark = A
12028        XAQQXZZ
12029    No match, mark = A
12030        AXQQQ
12031    No match, mark = A
12032        AXXQQQ
12033    No match, mark = B
12034    
12035    /-- Perl doesn't give marks for these, though it does if the alternatives are
12036    replaced by single letters. --/
12037    
12038    /(b|q)(*:m)f|a(*:n)w/K
12039        aw
12040     0: aw
12041    MK: n
12042        ** Failers
12043    No match, mark = n
12044        abc
12045    No match, mark = m
12046    
12047    /(q|b)(*:m)f|a(*:n)w/K
12048        aw
12049     0: aw
12050    MK: n
12051        ** Failers
12052    No match, mark = n
12053        abc
12054    No match, mark = m
12055    
12056    /-- After a partial match, the behaviour is as for a failure. --/
12057    
12058    /^a(*:X)bcde/K
12059       abc\P
12060    Partial match, mark=X: abc
12061    
12062    /-- These are here because Perl doesn't return a mark, except for the first --/
12063    
12064    /(?=(*:x))(q|)/K+
12065        abc
12066     0:
12067     0+ abc
12068     1:
12069    MK: x
12070    
12071    /(?=(*:x))((*:y)q|)/K+
12072        abc
12073     0:
12074     0+ abc
12075     1:
12076    MK: x
12077    
12078    /(?=(*:x))(?:(*:y)q|)/K+
12079        abc
12080     0:
12081     0+ abc
12082    MK: x
12083    
12084    /(?=(*:x))(?>(*:y)q|)/K+
12085        abc
12086     0:
12087     0+ abc
12088    MK: x
12089    
12090    /(?=a(*:x))(?!a(*:y)c)/K+
12091        ab
12092     0:
12093     0+ ab
12094    MK: x
12095    
12096    /(?=a(*:x))(?=a(*:y)c|)/K+
12097        ab
12098     0:
12099     0+ ab
12100    MK: x
12101    
12102    /(..)\1/
12103        ab\P
12104    Partial match: ab
12105        aba\P
12106    Partial match: aba
12107        abab\P
12108     0: abab
12109     1: ab
12110    
12111    /(..)\1/i
12112        ab\P
12113    Partial match: ab
12114        abA\P
12115    Partial match: abA
12116        aBAb\P
12117     0: aBAb
12118     1: aB
12119    
12120    /(..)\1{2,}/
12121        ab\P
12122    Partial match: ab
12123        aba\P
12124    Partial match: aba
12125        abab\P
12126    Partial match: abab
12127        ababa\P
12128    Partial match: ababa
12129        ababab\P
12130     0: ababab
12131     1: ab
12132        ababab\P\P
12133    Partial match: ababab
12134        abababa\P
12135     0: ababab
12136     1: ab
12137        abababa\P\P
12138    Partial match: abababa
12139    
12140    /(..)\1{2,}/i
12141        ab\P
12142    Partial match: ab
12143        aBa\P
12144    Partial match: aBa
12145        aBAb\P
12146    Partial match: aBAb
12147        AbaBA\P
12148    Partial match: AbaBA
12149        abABAb\P
12150     0: abABAb
12151     1: ab
12152        aBAbaB\P\P
12153    Partial match: aBAbaB
12154        abABabA\P
12155     0: abABab
12156     1: ab
12157        abaBABa\P\P
12158    Partial match: abaBABa
12159    
12160    /(..)\1{2,}?x/i
12161        ab\P
12162    Partial match: ab
12163        abA\P
12164    Partial match: abA
12165        aBAb\P
12166    Partial match: aBAb
12167        abaBA\P
12168    Partial match: abaBA
12169        abAbaB\P
12170    Partial match: abAbaB
12171        abaBabA\P
12172    Partial match: abaBabA
12173        abAbABaBx\P
12174     0: abAbABaBx
12175     1: ab
12176    
12177    /^(..)\1/
12178        aba\P
12179    Partial match: aba
12180    
12181    /^(..)\1{2,3}x/
12182        aba\P
12183    Partial match: aba
12184        ababa\P
12185    Partial match: ababa
12186        ababa\P\P
12187    Partial match: ababa
12188        abababx
12189     0: abababx
12190     1: ab
12191        ababababx
12192     0: ababababx
12193     1: ab
12194    
12195    /^(..)\1{2,3}?x/
12196        aba\P
12197    Partial match: aba
12198        ababa\P
12199    Partial match: ababa
12200        ababa\P\P
12201    Partial match: ababa
12202        abababx
12203     0: abababx
12204     1: ab
12205        ababababx
12206     0: ababababx
12207     1: ab
12208    
12209    /^(..)(\1{2,3})ab/
12210        abababab
12211     0: abababab
12212     1: ab
12213     2: abab
12214    
12215    /^\R/
12216        \r\P
12217     0: \x0d
12218        \r\P\P
12219    Partial match: \x0d
12220    
12221    /^\R{2,3}x/
12222        \r\P
12223    Partial match: \x0d
12224        \r\P\P
12225    Partial match: \x0d
12226        \r\r\P
12227    Partial match: \x0d\x0d
12228        \r\r\P\P
12229    Partial match: \x0d\x0d
12230        \r\r\r\P
12231    Partial match: \x0d\x0d\x0d
12232        \r\r\r\P\P
12233    Partial match: \x0d\x0d\x0d
12234        \r\rx
12235     0: \x0d\x0dx
12236        \r\r\rx
12237     0: \x0d\x0d\x0dx
12238    
12239    /^\R{2,3}?x/
12240        \r\P
12241    Partial match: \x0d
12242        \r\P\P
12243    Partial match: \x0d
12244        \r\r\P
12245    Partial match: \x0d\x0d
12246        \r\r\P\P
12247    Partial match: \x0d\x0d
12248        \r\r\r\P
12249    Partial match: \x0d\x0d\x0d
12250        \r\r\r\P\P
12251    Partial match: \x0d\x0d\x0d
12252        \r\rx
12253     0: \x0d\x0dx
12254        \r\r\rx
12255     0: \x0d\x0d\x0dx
12256    
12257    /^\R?x/
12258        \r\P
12259    Partial match: \x0d
12260        \r\P\P
12261    Partial match: \x0d
12262        x
12263     0: x
12264        \rx
12265     0: \x0dx
12266    
12267    /^\R+x/
12268        \r\P
12269    Partial match: \x0d
12270        \r\P\P
12271    Partial match: \x0d
12272        \r\n\P
12273    Partial match: \x0d\x0a
12274        \r\n\P\P
12275    Partial match: \x0d\x0a
12276        \rx
12277     0: \x0dx
12278    
12279    /^a$/<CRLF>
12280        a\r\P
12281    Partial match: a\x0d
12282        a\r\P\P
12283    Partial match: a\x0d
12284    
12285    /^a$/m<CRLF>
12286        a\r\P
12287    Partial match: a\x0d
12288        a\r\P\P
12289    Partial match: a\x0d
12290    
12291    /^(a$|a\r)/<CRLF>
12292        a\r\P
12293     0: a\x0d
12294     1: a\x0d
12295        a\r\P\P
12296    Partial match: a\x0d
12297    
12298    /^(a$|a\r)/m<CRLF>
12299        a\r\P
12300     0: a\x0d
12301     1: a\x0d
12302        a\r\P\P
12303    Partial match: a\x0d
12304    
12305    /./<CRLF>
12306        \r\P
12307     0: \x0d
12308        \r\P\P
12309    Partial match: \x0d
12310    
12311    /.{2,3}/<CRLF>
12312        \r\P
12313    Partial match: \x0d
12314        \r\P\P
12315    Partial match: \x0d
12316        \r\r\P
12317     0: \x0d\x0d
12318        \r\r\P\P
12319    Partial match: \x0d\x0d
12320        \r\r\r\P
12321     0: \x0d\x0d\x0d
12322        \r\r\r\P\P
12323    Partial match: \x0d\x0d\x0d
12324    
12325    /.{2,3}?/<CRLF>
12326        \r\P
12327    Partial match: \x0d
12328        \r\P\P
12329    Partial match: \x0d
12330        \r\r\P
12331     0: \x0d\x0d
12332        \r\r\P\P
12333    Partial match: \x0d\x0d
12334        \r\r\r\P
12335     0: \x0d\x0d
12336        \r\r\r\P\P
12337     0: \x0d\x0d
12338    
12339    /-- These two are here because Perl does not match: it seems to allow the
12340    COMMIT to escape from the assertion. --/
12341    
12342    /(?=a(*COMMIT)b|ac)ac|ac/
12343        ac
12344     0: ac
12345    
12346    /(?=a(*COMMIT)b|(ac)) ac | (a)c/x
12347        ac
12348     0: ac
12349     1: <unset>
12350     2: a
12351    
12352  /-- End of testinput2 --/  /-- End of testinput2 --/

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

  ViewVC Help
Powered by ViewVC 1.1.5