/[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 621 by ph10, Mon Jul 18 10:14:09 2011 UTC revision 1418 by ph10, Fri Dec 27 12:23:25 2013 UTC
# Line 3  Line 3 
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 a possible 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    
11    < forbid 8W
12    
 /-- 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. --/  
   
13  /(a)b|/I  /(a)b|/I
14  Capturing subpattern count = 1  Capturing subpattern count = 1
15    May match empty string
16  No options  No options
17  No first char  No first char
18  No need char  No need char
# Line 229  No options Line 231  No options
231  No first char  No first char
232  No need char  No need char
233  Subject length lower bound = 1  Subject length lower bound = 1
234  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 a b
235    
236  /(ab\2)/  /(ab\2)/
237  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
# Line 377  No need char Line 379  No need char
379   2: <unset>   2: <unset>
380   3: def   3: def
381    
 /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  
   
382  /)/  /)/
383  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
384    
# Line 504  Need char = '=' Line 451  Need char = '='
451    
452  /(?<!bar|cattle)foo/I  /(?<!bar|cattle)foo/I
453  Capturing subpattern count = 0  Capturing subpattern count = 0
454    Max lookbehind = 6
455  No options  No options
456  First char = 'f'  First char = 'f'
457  Need char = 'o'  Need char = 'o'
# Line 553  No need char Line 501  No need char
501    
502  /(?s).*/I  /(?s).*/I
503  Capturing subpattern count = 0  Capturing subpattern count = 0
504    May match empty string
505  Options: anchored dotall  Options: anchored dotall
506  No first char  No first char
507  No need char  No need char
# Line 600  Failed: conditional group contains more Line 549  Failed: conditional group contains more
549  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
550    
551  /(?(1a)/  /(?(1a)/
552  Failed: missing ) at offset 6  Failed: malformed number or name after (?( at offset 4
553    
554  /(?(1a))/  /(?(1a))/
555  Failed: reference to non-existent subpattern at offset 6  Failed: malformed number or name after (?( at offset 4
556    
557  /(?(?i))/  /(?(?i))/
558  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
# Line 686  No match Line 635  No match
635    
636  /\Aabc/Im  /\Aabc/Im
637  Capturing subpattern count = 0  Capturing subpattern count = 0
638    Max lookbehind = 1
639  Options: anchored multiline  Options: anchored multiline
640  No first char  No first char
641  No need char  No need char
# Line 711  No need char Line 661  No need char
661    
662  /(?<=foo)[ab]/IS  /(?<=foo)[ab]/IS
663  Capturing subpattern count = 0  Capturing subpattern count = 0
664    Max lookbehind = 3
665  No options  No options
666  No first char  No first char
667  No need char  No need char
# Line 719  Starting byte set: a b Line 670  Starting byte set: a b
670    
671  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
672  Capturing subpattern count = 1  Capturing subpattern count = 1
673    Max lookbehind = 3
674  No options  No options
675  No first char  No first char
676  Need char = 'a'  Need char = 'a'
# Line 735  Starting byte set: a b Line 687  Starting byte set: a b
687    
688  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
689  Capturing subpattern count = 0  Capturing subpattern count = 0
690    Max lookbehind = 4
691  Contains explicit CR or LF match  Contains explicit CR or LF match
692  Options: multiline  Options: multiline
693  No first char  No first char
# Line 752  No match Line 705  No match
705    
706  /^(?<=foo\n)bar/Im  /^(?<=foo\n)bar/Im
707  Capturing subpattern count = 0  Capturing subpattern count = 0
708    Max lookbehind = 4
709  Contains explicit CR or LF match  Contains explicit CR or LF match
710  Options: multiline  Options: multiline
711  First char at start or follows newline  First char at start or follows newline
# Line 794  Failed: lookbehind assertion is not fixe Line 748  Failed: lookbehind assertion is not fixe
748    
749  /(?<=bullock|donkey)-cart/I  /(?<=bullock|donkey)-cart/I
750  Capturing subpattern count = 0  Capturing subpattern count = 0
751    Max lookbehind = 7
752  No options  No options
753  First char = '-'  First char = '-'
754  Need char = 't'  Need char = 't'
# Line 810  No match Line 765  No match
765    
766  /(?<=ab(?i)x|y|z)/I  /(?<=ab(?i)x|y|z)/I
767  Capturing subpattern count = 0  Capturing subpattern count = 0
768    Max lookbehind = 3
769    May match empty string
770  No options  No options
771  No first char  No first char
772  No need char  No need char
773    
774  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
775  Capturing subpattern count = 2  Capturing subpattern count = 2
776    Max lookbehind = 4
777    May match empty string
778  No options  No options
779  First char at start or follows newline  No first char
780  No need char  No need char
781      alphabetabcd      alphabetabcd
782   0: alphabetabcd   0: alphabetabcd
# Line 829  No need char Line 788  No need char
788    
789  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
790  Capturing subpattern count = 0  Capturing subpattern count = 0
791    Max lookbehind = 4
792  No options  No options
793  First char = 'Z'  First char = 'Z'
794  Need char = 'Z'  Need char = 'Z'
# Line 857  No match Line 817  No match
817    
818  /(?<!(foo)a)bar/I  /(?<!(foo)a)bar/I
819  Capturing subpattern count = 1  Capturing subpattern count = 1
820    Max lookbehind = 4
821  No options  No options
822  First char = 'b'  First char = 'b'
823  Need char = 'r'  Need char = 'r'
# Line 869  No match Line 830  No match
830      fooabar      fooabar
831  No match  No match
832    
 /This one is here because Perl 5.005_02 doesn't fail it/I  
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 't'  
   
 /^(a)?(?(1)a|b)+$/I  
 Capturing subpattern count = 1  
 Options: anchored  
 No first char  
 No need char  
     *** Failers  
 No match  
     a  
 No match  
   
833  /This one is here because Perl behaves differently; see also the following/I  /This one is here because Perl behaves differently; see also the following/I
834  Capturing subpattern count = 0  Capturing subpattern count = 0
835  No options  No options
# Line 1031  Failed: numbers out of order in {} quant Line 976  Failed: numbers out of order in {} quant
976  /abc/\  /abc/\
977  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
978    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
979  /abc/\i  /abc/\i
980  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
981    
# Line 1149  No first char Line 1091  No first char
1091  No need char  No need char
1092      abc\00def\L\C0      abc\00def\L\C0
1093   0: abc\x00def   0: abc\x00def
1094   0C abc (7)   0C abc\x00def (7)
1095   0L abc   0L abc
1096    
1097  /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 1261  No need char Line 1203  No need char
1203    
1204  /\Biss\B/I+  /\Biss\B/I+
1205  Capturing subpattern count = 0  Capturing subpattern count = 0
1206    Max lookbehind = 1
1207  No options  No options
1208  First char = 'i'  First char = 'i'
1209  Need char = 's'  Need char = 's'
# Line 1268  Need char = 's' Line 1211  Need char = 's'
1211   0: iss   0: iss
1212   0+ issippi   0+ issippi
1213    
 /\Biss\B/I+P  
     Mississippi  
  0: iss  
  0+ issippi  
   
1214  /iss/IG+  /iss/IG+
1215  Capturing subpattern count = 0  Capturing subpattern count = 0
1216  No options  No options
# Line 1286  Need char = 's' Line 1224  Need char = 's'
1224    
1225  /\Biss\B/IG+  /\Biss\B/IG+
1226  Capturing subpattern count = 0  Capturing subpattern count = 0
1227    Max lookbehind = 1
1228  No options  No options
1229  First char = 'i'  First char = 'i'
1230  Need char = 's'  Need char = 's'
# Line 1295  Need char = 's' Line 1234  Need char = 's'
1234    
1235  /\Biss\B/Ig+  /\Biss\B/Ig+
1236  Capturing subpattern count = 0  Capturing subpattern count = 0
1237    Max lookbehind = 1
1238  No options  No options
1239  First char = 'i'  First char = 'i'
1240  Need char = 's'  Need char = 's'
# Line 1310  No match Line 1250  No match
1250    
1251  /(?<=[Ms])iss/Ig+  /(?<=[Ms])iss/Ig+
1252  Capturing subpattern count = 0  Capturing subpattern count = 0
1253    Max lookbehind = 1
1254  No options  No options
1255  First char = 'i'  First char = 'i'
1256  Need char = 's'  Need char = 's'
# Line 1321  Need char = 's' Line 1262  Need char = 's'
1262    
1263  /(?<=[Ms])iss/IG+  /(?<=[Ms])iss/IG+
1264  Capturing subpattern count = 0  Capturing subpattern count = 0
1265    Max lookbehind = 1
1266  No options  No options
1267  First char = 'i'  First char = 'i'
1268  Need char = 's'  Need char = 's'
# Line 1402  Capturing subpattern count = 0 Line 1344  Capturing subpattern count = 0
1344  Contains explicit CR or LF match  Contains explicit CR or LF match
1345  Options: multiline  Options: multiline
1346  First char at start or follows newline  First char at start or follows newline
1347  Need char = 10  Need char = \x0a
1348      ab\nab\ncd      ab\nab\ncd
1349   0: ab\x0a   0: ab\x0a
1350   0+ ab\x0acd   0+ ab\x0acd
# Line 1441  Need char = 'c' Line 1383  Need char = 'c'
1383    
1384  /a*/I  /a*/I
1385  Capturing subpattern count = 0  Capturing subpattern count = 0
1386    May match empty string
1387  No options  No options
1388  No first char  No first char
1389  No need char  No need char
# Line 1459  Need char = 'a' Line 1402  Need char = 'a'
1402    
1403  /a{0,3}/I  /a{0,3}/I
1404  Capturing subpattern count = 0  Capturing subpattern count = 0
1405    May match empty string
1406  No options  No options
1407  No first char  No first char
1408  No need char  No need char
# Line 1501  Need char = 'r' Line 1445  Need char = 'r'
1445    
1446  /...(?<=abc)/I  /...(?<=abc)/I
1447  Capturing subpattern count = 0  Capturing subpattern count = 0
1448    Max lookbehind = 3
1449  No options  No options
1450  No first char  No first char
1451  No need char  No need char
# Line 1657  Need char = 'e' Line 1602  Need char = 'e'
1602    
1603  /a?b?/I  /a?b?/I
1604  Capturing subpattern count = 0  Capturing subpattern count = 0
1605    May match empty string
1606  No options  No options
1607  No first char  No first char
1608  No need char  No need char
# Line 1675  No match Line 1621  No match
1621    
1622  /|-/I  /|-/I
1623  Capturing subpattern count = 0  Capturing subpattern count = 0
1624    May match empty string
1625  No options  No options
1626  No first char  No first char
1627  No need char  No need char
# Line 1689  No need char Line 1636  No need char
1636      \Nabc      \Nabc
1637  No match  No match
1638    
 /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  
   
1639  /^.?abcd/IS  /^.?abcd/IS
1640  Capturing subpattern count = 0  Capturing subpattern count = 0
1641  Options: anchored  Options: anchored
# Line 2715  Need char = '-' Line 2635  Need char = '-'
2635          End          End
2636  ------------------------------------------------------------------  ------------------------------------------------------------------
2637  Capturing subpattern count = 0  Capturing subpattern count = 0
2638    May match empty string
2639  Options: extended  Options: extended
2640  No first char  No first char
2641  No need char  No need char
# Line 2734  No need char Line 2655  No need char
2655  /[\s]/DZ  /[\s]/DZ
2656  ------------------------------------------------------------------  ------------------------------------------------------------------
2657          Bra          Bra
2658          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
2659          Ket          Ket
2660          End          End
2661  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2746  No need char Line 2667  No need char
2667  /[\S]/DZ  /[\S]/DZ
2668  ------------------------------------------------------------------  ------------------------------------------------------------------
2669          Bra          Bra
2670          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)          [\x00-\x08\x0e-\x1f!-\xff] (neg)
2671          Ket          Ket
2672          End          End
2673  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2857  Need char = '0' Line 2778  Need char = '0'
2778          End          End
2779  ------------------------------------------------------------------  ------------------------------------------------------------------
2780  Capturing subpattern count = 0  Capturing subpattern count = 0
2781    May match empty string
2782  No options  No options
2783  No first char  No first char
2784  No need char  No need char
# Line 2956  No match Line 2878  No match
2878          End          End
2879  ------------------------------------------------------------------  ------------------------------------------------------------------
2880  Capturing subpattern count = 0  Capturing subpattern count = 0
2881    May match empty string
2882  No options  No options
2883  No first char  No first char
2884  No need char  No need char
# Line 2972  No options Line 2895  No options
2895  First char = 'x'  First char = 'x'
2896  No need char  No need char
2897    
2898  /x{1,3}+/DZ  /x{1,3}+/BZO
2899  ------------------------------------------------------------------  ------------------------------------------------------------------
2900          Bra          Bra
         Once  
2901          x          x
2902          x{0,2}          x{0,2}+
2903          Ket          Ket
2904            End
2905    ------------------------------------------------------------------
2906    
2907    /x{1,3}+/BZOi
2908    ------------------------------------------------------------------
2909            Bra
2910         /i x
2911         /i x{0,2}+
2912            Ket
2913            End
2914    ------------------------------------------------------------------
2915    
2916    /[^x]{1,3}+/BZO
2917    ------------------------------------------------------------------
2918            Bra
2919            [^x]
2920            [^x]{0,2}+
2921            Ket
2922            End
2923    ------------------------------------------------------------------
2924    
2925    /[^x]{1,3}+/BZOi
2926    ------------------------------------------------------------------
2927            Bra
2928         /i [^x]
2929         /i [^x]{0,2}+
2930          Ket          Ket
2931          End          End
2932  ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  
 No options  
 First char = 'x'  
 No need char  
2933    
2934  /(x)*+/DZ  /(x)*+/DZ
2935  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2998  No need char Line 2942  No need char
2942          End          End
2943  ------------------------------------------------------------------  ------------------------------------------------------------------
2944  Capturing subpattern count = 1  Capturing subpattern count = 1
2945    May match empty string
2946  No options  No options
2947  No first char  No first char
2948  No need char  No need char
2949    
2950  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2951  Capturing subpattern count = 1  Capturing subpattern count = 1
2952    May match empty string
2953  Options: anchored  Options: anchored
2954  No first char  No first char
2955  No need char  No need char
# Line 3165  Need char = 'b' Line 3111  Need char = 'b'
3111          [bc]+          [bc]+
3112          Ket          Ket
3113          CBra 5          CBra 5
3114          \w*          \w*+
3115          Ket          Ket
3116          Ket          Ket
3117          Ket          Ket
# Line 3244  Failed: missing terminating ] for charac Line 3190  Failed: missing terminating ] for charac
3190  /[\s]/IDZ  /[\s]/IDZ
3191  ------------------------------------------------------------------  ------------------------------------------------------------------
3192          Bra          Bra
3193          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
3194          Ket          Ket
3195          End          End
3196  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3308  No match Line 3254  No match
3254          End          End
3255  ------------------------------------------------------------------  ------------------------------------------------------------------
3256  Capturing subpattern count = 0  Capturing subpattern count = 0
3257    Max lookbehind = 1
3258  No options  No options
3259  First char = '8'  First char = '8'
3260  Need char = 'X'  Need char = 'X'
# Line 3321  Need char = 'X' Line 3268  Need char = 'X'
3268          End          End
3269  ------------------------------------------------------------------  ------------------------------------------------------------------
3270  Capturing subpattern count = 0  Capturing subpattern count = 0
3271    Max lookbehind = 1
3272  No options  No options
3273  First char = '$'  First char = '$'
3274  Need char = 'X'  Need char = 'X'
# Line 3377  Need char = 'b' Line 3325  Need char = 'b'
3325    
3326  /(?=a).*/I  /(?=a).*/I
3327  Capturing subpattern count = 0  Capturing subpattern count = 0
3328    May match empty string
3329  No options  No options
3330  First char = 'a'  First char = 'a'
3331  No need char  No need char
# Line 3395  Need char = 'z' (caseless) Line 3344  Need char = 'z' (caseless)
3344    
3345  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3346  Capturing subpattern count = 0  Capturing subpattern count = 0
3347    May match empty string
3348  No options  No options
3349  First char = 'a'  First char = 'a'
3350  No need char  No need char
# Line 3461  Need char = 'a' Line 3411  Need char = 'a'
3411    
3412  /(a)*/I  /(a)*/I
3413  Capturing subpattern count = 1  Capturing subpattern count = 1
3414    May match empty string
3415  No options  No options
3416  No first char  No first char
3417  No need char  No need char
# Line 3689  No match Line 3640  No match
3640    
3641  /(?C0)(abc(?C1))*/I  /(?C0)(abc(?C1))*/I
3642  Capturing subpattern count = 1  Capturing subpattern count = 1
3643    May match empty string
3644  No options  No options
3645  No first char  No first char
3646  No need char  No need char
# Line 3722  No need char Line 3674  No need char
3674    
3675  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3676  Capturing subpattern count = 1  Capturing subpattern count = 1
3677    May match empty string
3678  No options  No options
3679  No first char  No first char
3680  No need char  No need char
# Line 3836  Callout 2: last capture = -1 Line 3789  Callout 2: last capture = -1
3789    
3790  /(?<=(abc)(?C))xyz/I  /(?<=(abc)(?C))xyz/I
3791  Capturing subpattern count = 1  Capturing subpattern count = 1
3792    Max lookbehind = 3
3793  No options  No options
3794  First char = 'x'  First char = 'x'
3795  Need char = 'z'  Need char = 'z'
# Line 3857  Need char = 'b' Line 3811  Need char = 'b'
3811  --->abbbbbccc  --->abbbbbccc
3812    1 ^        ^    1 ^        ^
3813  Callout data = 1  Callout data = 1
   1 ^       ^  
 Callout data = 1  
   1 ^      ^  
 Callout data = 1  
   1 ^     ^  
 Callout data = 1  
   1 ^    ^  
 Callout data = 1  
   1 ^   ^  
 Callout data = 1  
   1 ^  ^  
 Callout data = 1  
   1 ^ ^  
 Callout data = 1  
3814  No match  No match
3815    
3816  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
# Line 3967  Failed: recursive call could loop indefi Line 3907  Failed: recursive call could loop indefi
3907    
3908  /^([^()]|\((?1)*\))*$/I  /^([^()]|\((?1)*\))*$/I
3909  Capturing subpattern count = 1  Capturing subpattern count = 1
3910    May match empty string
3911  Options: anchored  Options: anchored
3912  No first char  No first char
3913  No need char  No need char
# Line 4246  Named capturing subpatterns: Line 4187  Named capturing subpatterns:
4187    one     1    one     1
4188    three   3    three   3
4189    two     2    two     2
4190    May match empty string
4191  Options: anchored caseless  Options: anchored caseless
4192  No first char  No first char
4193  No need char  No need char
# Line 4345  Need char = 'z' Line 4287  Need char = 'z'
4287    
4288  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4289  Capturing subpattern count = 31  Capturing subpattern count = 31
4290    May match empty string
4291  Options: anchored dotall  Options: anchored dotall
4292  No first char  No first char
4293  No need char  No need char
# Line 4352  No need char Line 4295  No need char
4295  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4296  Capturing subpattern count = 31  Capturing subpattern count = 31
4297  Max back reference = 31  Max back reference = 31
4298    May match empty string
4299  Options: dotall  Options: dotall
4300  No first char  No first char
4301  No need char  No need char
# Line 4359  No need char Line 4303  No need char
4303  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4304  Capturing subpattern count = 32  Capturing subpattern count = 32
4305  Max back reference = 32  Max back reference = 32
4306    May match empty string
4307  Options: dotall  Options: dotall
4308  No first char  No first char
4309  No need char  No need char
# Line 4430  No first char Line 4375  No first char
4375  Need char = 'z'  Need char = 'z'
4376    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4377  Minimum match() limit = 8  Minimum match() limit = 8
4378  Minimum match() recursion limit = 7  Minimum match() recursion limit = 6
4379   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4380   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4381    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4382  Minimum match() limit = 32768  Minimum match() limit = 32768
4383  Minimum match() recursion limit = 43  Minimum match() recursion limit = 29
4384  No match  No match
4385    
4386  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4510  Capturing subpattern count = 2 Line 4455  Capturing subpattern count = 2
4455  Named capturing subpatterns:  Named capturing subpatterns:
4456    Tes    1    Tes    1
4457    Test   2    Test   2
4458    May match empty string
4459  No options  No options
4460  No first char  No first char
4461  No need char  No need char
# Line 4528  Capturing subpattern count = 2 Line 4474  Capturing subpattern count = 2
4474  Named capturing subpatterns:  Named capturing subpatterns:
4475    Tes    2    Tes    2
4476    Test   1    Test   1
4477    May match empty string
4478  No options  No options
4479  No first char  No first char
4480  No need char  No need char
# Line 4605  Need char = ']' Line 4552  Need char = ']'
4552          End          End
4553  ------------------------------------------------------------------  ------------------------------------------------------------------
4554  Capturing subpattern count = 2  Capturing subpattern count = 2
4555    May match empty string
4556  No options  No options
4557  No first char  No first char
4558  No need char  No need char
# Line 4625  No need char Line 4573  No need char
4573          End          End
4574  ------------------------------------------------------------------  ------------------------------------------------------------------
4575  Capturing subpattern count = 2  Capturing subpattern count = 2
4576    May match empty string
4577  No options  No options
4578  No first char  No first char
4579  No need char  No need char
# Line 4656  No need char Line 4605  No need char
4605          End          End
4606  ------------------------------------------------------------------  ------------------------------------------------------------------
4607  Capturing subpattern count = 2  Capturing subpattern count = 2
4608    May match empty string
4609  No options  No options
4610  No first char  No first char
4611  No need char  No need char
# Line 4663  No need char Line 4613  No need char
4613  /[ab]{1}+/DZ  /[ab]{1}+/DZ
4614  ------------------------------------------------------------------  ------------------------------------------------------------------
4615          Bra          Bra
4616          Once          [ab]{1,1}+
         [ab]{1,1}  
         Ket  
4617          Ket          Ket
4618          End          End
4619  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 5377  No match Line 5325  No match
5325          Callout 255 0 21          Callout 255 0 21
5326          CBra 1          CBra 1
5327          Callout 255 1 9          Callout 255 1 9
5328          [ab]{1,4}          [ab]{1,4}+
5329          Callout 255 10 1          Callout 255 10 1
5330          c          c
5331          Callout 255 11 0          Callout 255 11 0
# Line 5390  No match Line 5338  No match
5338          Ket          Ket
5339          CBra 1          CBra 1
5340          Callout 255 1 9          Callout 255 1 9
5341          [ab]{1,4}          [ab]{1,4}+
5342          Callout 255 10 1          Callout 255 10 1
5343          c          c
5344          Callout 255 11 0          Callout 255 11 0
# Line 5403  No match Line 5351  No match
5351          Ket          Ket
5352          CBra 1          CBra 1
5353          Callout 255 1 9          Callout 255 1 9
5354          [ab]{1,4}          [ab]{1,4}+
5355          Callout 255 10 1          Callout 255 10 1
5356          c          c
5357          Callout 255 11 0          Callout 255 11 0
# Line 5416  No match Line 5364  No match
5364          Ket          Ket
5365          CBra 1          CBra 1
5366          Callout 255 1 9          Callout 255 1 9
5367          [ab]{1,4}          [ab]{1,4}+
5368          Callout 255 10 1          Callout 255 10 1
5369          c          c
5370          Callout 255 11 0          Callout 255 11 0
# Line 5430  No match Line 5378  No match
5378          Braminzero          Braminzero
5379          CBra 1          CBra 1
5380          Callout 255 1 9          Callout 255 1 9
5381          [ab]{1,4}          [ab]{1,4}+
5382          Callout 255 10 1          Callout 255 10 1
5383          c          c
5384          Callout 255 11 0          Callout 255 11 0
# Line 5483  Need char = '3' Line 5431  Need char = '3'
5431    
5432  /\b.*/I  /\b.*/I
5433  Capturing subpattern count = 0  Capturing subpattern count = 0
5434    Max lookbehind = 1
5435    May match empty string
5436  No options  No options
5437  No first char  No first char
5438  No need char  No need char
# Line 5491  No need char Line 5441  No need char
5441    
5442  /\b.*/Is  /\b.*/Is
5443  Capturing subpattern count = 0  Capturing subpattern count = 0
5444    Max lookbehind = 1
5445    May match empty string
5446  Options: dotall  Options: dotall
5447  No first char  No first char
5448  No need char  No need char
# Line 5499  No need char Line 5451  No need char
5451    
5452  /(?!.bcd).*/I  /(?!.bcd).*/I
5453  Capturing subpattern count = 0  Capturing subpattern count = 0
5454    May match empty string
5455  No options  No options
5456  No first char  No first char
5457  No need char  No need char
# Line 5802  Max back reference = 1 Line 5755  Max back reference = 1
5755  Options: multiline dotall  Options: multiline dotall
5756  First char = '<'  First char = '<'
5757  Need char = '>'  Need char = '>'
5758      <!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>
5759   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>
5760   1: seite   1: seite
5761   2: \x0a   2: \x0a
# Line 5851  No match Line 5804  No match
5804      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5805  No match  No match
5806    
 /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  
   
5807  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5808  Capturing subpattern count = 0  Capturing subpattern count = 0
5809  No options  No options
# Line 6105  Matched, but too many substrings Line 6040  Matched, but too many substrings
6040    
6041  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
6042  Capturing subpattern count = 0  Capturing subpattern count = 0
6043    May match empty string
6044  No options  No options
6045  No first char  No first char
6046  No need char  No need char
# Line 6117  No need char Line 6053  No need char
6053    
6054  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6055  Capturing subpattern count = 0  Capturing subpattern count = 0
6056    May match empty string
6057  No options  No options
6058  No first char  No first char
6059  No need char  No need char
# Line 6127  No need char Line 6064  No need char
6064    
6065  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
6066  Capturing subpattern count = 0  Capturing subpattern count = 0
6067    May match empty string
6068  No options  No options
6069  No first char  No first char
6070  No need char  No need char
# Line 6137  No need char Line 6075  No need char
6075    
6076  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
6077  Capturing subpattern count = 0  Capturing subpattern count = 0
6078    May match empty string
6079  No options  No options
6080  No first char  No first char
6081  No need char  No need char
# Line 6149  No need char Line 6088  No need char
6088    
6089  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
6090  Capturing subpattern count = 0  Capturing subpattern count = 0
6091    May match empty string
6092  No options  No options
6093  No first char  No first char
6094  No need char  No need char
# Line 6161  No need char Line 6101  No need char
6101      ((this))      ((this))
6102   0: ((this))   0: ((this))
6103    
 /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  
   
6104  /\x{0000ff}/I  /\x{0000ff}/I
6105  Capturing subpattern count = 0  Capturing subpattern count = 0
6106  No options  No options
6107  First char = 255  First char = \xff
6108  No need char  No need char
6109    
6110  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 6209  no parentheses with name "Z" Line 6138  no parentheses with name "Z"
6138   2: a1   2: a1
6139  copy substring Z failed -7  copy substring Z failed -7
6140    C a1 (2) A    C a1 (2) A
6141    
6142    /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
6143    Capturing subpattern count = 3
6144    Named capturing subpatterns:
6145      a   1
6146      a   3
6147      b   2
6148    May match empty string
6149    Options: dupnames
6150    No first char
6151    No need char
6152    
6153  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
6154  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 6285  no parentheses with name "Z" Line 6225  no parentheses with name "Z"
6225   0: a1   0: a1
6226   1: a1   1: a1
6227   2: a1   2: a1
6228  copy substring Z failed -7  get substring Z failed -7
6229    G a1 (2) A    G a1 (2) A
6230    
6231  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6317  No need char Line 6257  No need char
6257    G a (1) A    G a (1) A
6258      cd\GA      cd\GA
6259   0: cd   0: cd
6260  copy substring A failed -7  get substring A failed -7
6261    
6262  /^(?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
6263  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6419  Need char = 'X' Line 6359  Need char = 'X'
6359   1: X   1: X
6360    
6361  /(?:(?(2y)a|b)(X))+/I  /(?:(?(2y)a|b)(X))+/I
6362  Failed: reference to non-existent subpattern at offset 9  Failed: malformed number or name after (?( at offset 7
6363    
6364  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6365  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 6485  No need char Line 6425  No need char
6425   9:   9:
6426  10: Y  10: Y
6427    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6428  /\s*,\s*/IS  /\s*,\s*/IS
6429  Capturing subpattern count = 0  Capturing subpattern count = 0
6430  No options  No options
6431  No first char  No first char
6432  Need char = ','  Need char = ','
6433  Subject length lower bound = 1  Subject length lower bound = 1
6434  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 ,
6435      \x0b,\x0b      \x0b,\x0b
6436   0: ,   0: \x0b,\x0b
6437      \x0c,\x0d      \x0c,\x0d
6438   0: \x0c,\x0d   0: \x0c,\x0d
6439    
# Line 6605  No match Line 6542  No match
6542  No match  No match
6543    
6544  /^abc/Im<bad>  /^abc/Im<bad>
6545  Unknown newline type at: <bad>  Unknown modifier at: <bad>
6546    
6547    
6548  /abc/I  /abc/I
# Line 6614  No options Line 6551  No options
6551  First char = 'a'  First char = 'a'
6552  Need char = 'c'  Need char = 'c'
6553      xyz\rabc\<bad>      xyz\rabc\<bad>
6554  Unknown newline type at: <bad>  Unknown escape sequence at: <bad>
6555      abc      abc
6556   0: abc   0: abc
6557    
6558  /.*/I<lf>  /.*/I<lf>
6559  Capturing subpattern count = 0  Capturing subpattern count = 0
6560    May match empty string
6561  Options:  Options:
6562  Forced newline sequence: LF  Forced newline sequence: LF
6563  First char at start or follows newline  First char at start or follows newline
# Line 6661  Need char = 'f' Line 6599  Need char = 'f'
6599    
6600  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6601  Capturing subpattern count = 1  Capturing subpattern count = 1
6602    May match empty string
6603  No options  No options
6604  No first char  No first char
6605  No need char  No need char
6606     /* this is a C style comment */\M     /* this is a C style comment */\M
6607  Minimum match() limit = 120  Minimum match() limit = 120
6608  Minimum match() recursion limit = 35  Minimum match() recursion limit = 6
6609   0: /* this is a C style comment */   0: /* this is a C style comment */
6610   1: /* this is a C style comment */   1: /* this is a C style comment */
6611    
# Line 7548  Matched, but too many substrings Line 7487  Matched, but too many substrings
7487  /[^a]+a/BZi  /[^a]+a/BZi
7488  ------------------------------------------------------------------  ------------------------------------------------------------------
7489          Bra          Bra
7490       /i [^A]++       /i [^a]++
7491       /i a       /i a
7492          Ket          Ket
7493          End          End
# Line 7557  Matched, but too many substrings Line 7496  Matched, but too many substrings
7496  /[^a]+A/BZi  /[^a]+A/BZi
7497  ------------------------------------------------------------------  ------------------------------------------------------------------
7498          Bra          Bra
7499       /i [^A]++       /i [^a]++
7500       /i A       /i A
7501          Ket          Ket
7502          End          End
# Line 7584  Matched, but too many substrings Line 7523  Matched, but too many substrings
7523  /a*[^a]/BZ  /a*[^a]/BZ
7524  ------------------------------------------------------------------  ------------------------------------------------------------------
7525          Bra          Bra
7526          a*          a*+
7527          [^a]          [^a]
7528          Ket          Ket
7529          End          End
# Line 7726  No match Line 7665  No match
7665  ------------------------------------------------------------------  ------------------------------------------------------------------
7666          Bra          Bra
7667          ^          ^
7668          [a-z]+          [a-z]++
7669          Ket          Ket
7670          End          End
7671  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7767  No match Line 7706  No match
7706          ^          ^
7707          CBra 1          CBra 1
7708          Cond          Cond
7709        2 Cond nref        2 Cond ref
7710          y          y
7711          Ket          Ket
7712          [()]          [()]
# Line 7827  Named capturing subpatterns: Line 7766  Named capturing subpatterns:
7766    one     1    one     1
7767    three   3    three   3
7768    two     2    two     2
7769    May match empty string
7770  Options: anchored caseless  Options: anchored caseless
7771  No first char  No first char
7772  No need char  No need char
# Line 7926  Failed: reference to non-existent subpat Line 7866  Failed: reference to non-existent subpat
7866   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7867   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7868    
7869  /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  /(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
7870  Failed: reference to non-existent subpattern at offset 29  Failed: reference to non-existent subpattern at offset 29
7871    
 /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  
     abcabc1Xabc2XabcXabcabc  
  0: abcabc1Xabc2XabcX  
  1: abcabc1Xabc2XabcX  
  2: abcabc1Xabc2XabcX  
   
7872  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7873  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7874    
# Line 7944  Options: extended Line 7878  Options: extended
7878  First char = 'x'  First char = 'x'
7879  Need char = 'z'  Need char = 'z'
7880    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7881  /(a|)*\d/  /(a|)*\d/
7882    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7883  No match  No match
# Line 8161  Failed: a numbered reference must not be Line 8092  Failed: a numbered reference must not be
8092  /^(a)\g{3/  /^(a)\g{3/
8093  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8094    
8095  /^(a)\g{4a}/  /^(a)\g{aa}/
8096  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
8097    
8098  /^a.b/<lf>  /^a.b/<lf>
# Line 8506  Failed: syntax error in subpattern name Line 8437  Failed: syntax error in subpattern name
8437   3: <unset>   3: <unset>
8438   4: x   4: x
8439    
 /[\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  
 ------------------------------------------------------------------  
   
8440  /\H++X/BZ  /\H++X/BZ
8441  ------------------------------------------------------------------  ------------------------------------------------------------------
8442          Bra          Bra
# Line 8726  No match Line 8597  No match
8597          \d          \d
8598          \v++          \v++
8599          \w          \w
8600          \v+          \v++
8601          \S          \S
8602          \v++          \v++
8603          \V          \V
# Line 8757  No match Line 8628  No match
8628  ------------------------------------------------------------------  ------------------------------------------------------------------
8629    
8630  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8631  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8632   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8633    
8634  /[\E]AAA/  /[\E]AAA/
# Line 8824  No match Line 8695  No match
8695   +6 ^      ^    (*FAIL)   +6 ^      ^    (*FAIL)
8696   +6 ^     ^     (*FAIL)   +6 ^     ^     (*FAIL)
8697   +6 ^    ^      (*FAIL)   +6 ^    ^      (*FAIL)
  +4 ^  ^        c+  
  +2 ^ ^         b?  
  +4 ^ ^         c+  
  +2 ^^          b?  
  +4 ^^          c+  
8698   +0  ^          a+   +0  ^          a+
8699   +2  ^ ^        b?   +2  ^ ^        b?
8700   +4  ^  ^       c+   +4  ^  ^       c+
8701   +6  ^     ^    (*FAIL)   +6  ^     ^    (*FAIL)
8702   +6  ^    ^     (*FAIL)   +6  ^    ^     (*FAIL)
8703   +6  ^   ^      (*FAIL)   +6  ^   ^      (*FAIL)
  +4  ^ ^        c+  
  +2  ^^         b?  
  +4  ^^         c+  
8704   +0   ^         a+   +0   ^         a+
8705   +2   ^^        b?   +2   ^^        b?
8706   +4   ^ ^       c+   +4   ^ ^       c+
8707   +6   ^    ^    (*FAIL)   +6   ^    ^    (*FAIL)
8708   +6   ^   ^     (*FAIL)   +6   ^   ^     (*FAIL)
8709   +6   ^  ^      (*FAIL)   +6   ^  ^      (*FAIL)
  +4   ^^        c+  
8710  No match  No match
8711    
8712  /a+b?(*PRUNE)c+(*FAIL)/C  /a+b?(*PRUNE)c+(*FAIL)/C
# Line 8939  Failed: number is too big at offset 19 Line 8801  Failed: number is too big at offset 19
8801  /\g6666666666/  /\g6666666666/
8802  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8803    
8804  /[\g6666666666]/  /[\g6666666666]/BZ
8805  Failed: number is too big at offset 12  ------------------------------------------------------------------
8806            Bra
8807            [6g]
8808            Ket
8809            End
8810    ------------------------------------------------------------------
8811    
8812  /(?1)\c[/  /(?1)\c[/
8813  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8963  No match Line 8830  No match
8830   1: \x0a   1: \x0a
8831    
8832  /a(*CR)b/  /a(*CR)b/
8833  Failed: (*VERB) not recognized at offset 5  Failed: (*VERB) not recognized or malformed at offset 5
8834    
8835  /(*CR)a.b/  /(*CR)a.b/
8836      a\nb      a\nb
# Line 9246  Failed: subpattern name expected at offs Line 9113  Failed: subpattern name expected at offs
9113  /\k{}/  /\k{}/
9114  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9115    
9116    /\k/
9117    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9118    
9119    /\kabc/
9120    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9121    
9122  /(?P=)/  /(?P=)/
9123  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9124    
# Line 9402  No match Line 9275  No match
9275      ab      ab
9276  No match  No match
9277    
9278  /a(?!)+b/  /a(?!)b/BZ
9279  Failed: nothing to repeat at offset 5  ------------------------------------------------------------------
9280            Bra
9281            a
9282            *FAIL
9283            b
9284            Ket
9285            End
9286    ------------------------------------------------------------------
9287    
9288    /(?!)?a/BZ
9289    ------------------------------------------------------------------
9290            Bra
9291            Brazero
9292            Assert not
9293            Ket
9294            a
9295            Ket
9296            End
9297    ------------------------------------------------------------------
9298        ab
9299     0: a
9300    
9301  /a(*FAIL)+b/  /a(*FAIL)+b/
9302  Failed: nothing to repeat at offset 8  Failed: nothing to repeat at offset 8
# Line 9418  Starting byte set: x y z Line 9311  Starting byte set: x y z
9311    
9312  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
9313  Capturing subpattern count = 0  Capturing subpattern count = 0
9314    May match empty string
9315  Options:  Options:
9316  No first char  No first char
9317  No need char  No need char
# Line 9430  No need char Line 9324  No need char
9324   +7 ^ ^     b   +7 ^ ^     b
9325   +7 ^^      b   +7 ^^      b
9326   +7 ^       b   +7 ^       b
9327    +11 ^       ^
9328  +12 ^       )  +12 ^       )
9329  +13 ^  +13 ^
9330   0:   0:
# Line 9467  No options Line 9362  No options
9362  First char at start or follows newline  First char at start or follows newline
9363  No need char  No need char
9364    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9365  /xyz/C  /xyz/C
9366    xyz    xyz
9367  --->xyz  --->xyz
# Line 9529  No match Line 9416  No match
9416  No match  No match
9417    
9418  /(*NO_START_OPT)xyz/C  /(*NO_START_OPT)xyz/C
9419    abcxyz    abcxyz
9420  --->abcxyz  --->abcxyz
9421  +15 ^          x  +15 ^          x
9422  +15  ^         x  +15  ^         x
# Line 9539  No match Line 9426  No match
9426  +17    ^ ^     z  +17    ^ ^     z
9427  +18    ^  ^  +18    ^  ^
9428   0: xyz   0: xyz
9429    
9430    /(*NO_AUTO_POSSESS)a+b/BZ
9431    ------------------------------------------------------------------
9432            Bra
9433            a+
9434            b
9435            Ket
9436            End
9437    ------------------------------------------------------------------
9438    
9439  /xyz/CY  /xyz/CY
9440    abcxyz    abcxyz
# Line 9568  No match Line 9464  No match
9464   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9465   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9466   +8 ^ ^      [a]   +8 ^ ^      [a]
9467    +17 ^ ^      |
9468  +21 ^ ^      "  +21 ^ ^      "
9469  +18 ^ ^      b  +18 ^ ^      b
9470  +19 ^  ^     )  +19 ^  ^     )
9471   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9472   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9473   +8 ^  ^     [a]   +8 ^  ^     [a]
9474    +17 ^  ^     |
9475  +21 ^  ^     "  +21 ^  ^     "
9476  +22 ^   ^    $  +22 ^   ^    $
9477  +23 ^   ^  +23 ^   ^
# Line 9869  Partial match: the cat Line 9767  Partial match: the cat
9767     abc\P\P     abc\P\P
9768   0: abc   0: abc
9769    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9770  /abc\K123/  /abc\K123/
9771      xyzabc123pqr      xyzabc123pqr
9772   0: 123   0: 123
# Line 9889  Partial match: abc12 Line 9779  Partial match: abc12
9779      xyzabc123pqr      xyzabc123pqr
9780   0: 123   0: 123
9781      xyzabc12\P      xyzabc12\P
9782  Partial match: abc12  Partial match at offset 6: abc12
9783      xyzabc12\P\P      xyzabc12\P\P
9784  Partial match: abc12  Partial match at offset 6: abc12
9785    
9786  /\babc\b/  /\babc\b/
9787      +++abc+++      +++abc+++
9788   0: abc   0: abc
9789      +++ab\P      +++ab\P
9790  Partial match: +ab  Partial match at offset 3: +ab
9791      +++ab\P\P      +++ab\P\P
9792  Partial match: +ab  Partial match at offset 3: +ab
9793    
9794  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9795  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10269  Need char = ':' Line 10159  Need char = ':'
10159  Subject length lower bound = 22  Subject length lower bound = 22
10160  No set of starting bytes  No set of starting bytes
10161    
 /  (?: [\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  
   
10162  /<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
10163  Capturing subpattern count = 11  Capturing subpattern count = 11
10164  Options: caseless dotall  Options: caseless dotall
# Line 10484  No set of starting bytes Line 10170  No set of starting bytes
10170  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10171  Capturing subpattern count = 0  Capturing subpattern count = 0
10172  No options  No options
10173  First char at start or follows newline  No first char
10174  Need char = 'o'  Need char = 'o'
10175  Subject length lower bound = 4  Subject length lower bound = 4
10176  No set of starting bytes  No set of starting bytes
# Line 10546  No set of starting bytes Line 10232  No set of starting bytes
10232  Capturing subpattern count = 1  Capturing subpattern count = 1
10233  Named capturing subpatterns:  Named capturing subpatterns:
10234    a   1    a   1
   a   1  
10235  No options  No options
10236  No first char  No first char
10237  No need char  No need char
# Line 10619  No match Line 10304  No match
10304          Ket          Ket
10305          Ket          Ket
10306          Cond          Cond
10307        4 Cond nref          Cond ref <D>2
10308          X          X
10309          Alt          Alt
10310          Y          Y
# Line 10665  No match Line 10350  No match
10350          CBra 4          CBra 4
10351          d          d
10352          Cond          Cond
10353          Cond nrecurse 1          Cond recurse <A>2
10354          $          $
10355          Alt          Alt
10356          Recurse          Recurse
# Line 10727  Partial match: abca Line 10412  Partial match: abca
10412      xxxxabcde\P\P      xxxxabcde\P\P
10413  Partial match: abcde  Partial match: abcde
10414    
10415  /-- This is not in the Perl >= 5.10 test because Perl seems currently to be  /-- This is not in the Perl-compatible test because Perl seems currently to be
10416      broken and not behaving as specified in that it *does* bumpalong after      broken and not behaving as specified in that it *does* bumpalong after
10417      hitting (*COMMIT). --/      hitting (*COMMIT). --/
10418    
# Line 10923  No match Line 10608  No match
10608          End          End
10609  ------------------------------------------------------------------  ------------------------------------------------------------------
10610    
10611  / -- The first four of these are not in the Perl >= 5.10 test because Perl  / -- This one is here because Perl gives the match as "b" rather than "ab". I
      documents that the use of \K in assertions is "not well defined". The  
      last is here because Perl gives the match as "b" rather than "ab". I  
10612       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
10613    
 /(?=a\Kb)ab/  
     ab  
  0: b  
   
 /(?!a\Kb)ac/  
     ac  
  0: ac  
   
 /^abc(?<=b\Kc)d/  
     abcd  
  0: cd  
   
 /^abc(?<!b\Kq)d/  
     abcd  
  0: abcd  
   
10614  /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
10615      ab      ab
10616   0: ab   0: ab
10617   1: ab   1: ab
10618    
 /----------------------/  
   
10619  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10620  Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
10621    
# Line 10970  Failed: an argument is not allowed for ( Line 10635  Failed: an argument is not allowed for (
10635      ACABX      ACABX
10636  No match  No match
10637    
10638  /--- These should be different, but in Perl 5.11 are not, which I think  /--- These should be different, but in Perl they are not, which I think
10639       is a bug in Perl. ---/       is a bug in Perl. ---/
10640    
10641  /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
# Line 10981  No match Line 10646  No match
10646      AC      AC
10647  No match  No match
10648    
10649  /--- A whole lot of tests of verbs with arguments are here rather than in test  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10650       11 because Perl doesn't seem to follow its specification entirely  though PCRE does. ---/
      correctly. ---/  
   
 /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is  
      not clear how Perl defines "involved in the failure of the match". ---/  
10651    
10652  /^(A(*THEN:A)B|C(*THEN:B)D)/K  /^A(*:A)B|^X(*:A)Y/K
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
10653      ** Failers      ** Failers
10654  No match  No match
10655      AC      XAQQ
10656  No match  No match, mark = A
     CB  
 No match, mark = B  
10657    
10658  /--- Check the use of names for success and failure. PCRE doesn't show these  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10659  names for success, though Perl does, contrary to its spec. ---/  optimizations defeat this. So does the PCRE optimization unless we disable it
10660    with \Y. ---/
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /--- An empty name does not pass back an empty string. It is the same as if no  
 name were given. ---/  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /--- PRUNE goes to next bumpalong; COMMIT does not. ---/  
   
 /A(*PRUNE:A)B/K  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KSS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /(*MARK:A)(*THEN:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*THEN:B)(C|X)/KSS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- Same --/  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This should fail; the SKIP advances by one, but when we get to AC, the  
      PRUNE kills it. ---/  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This should fail, as a null name is the same as no name ---/  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This fails in PCRE, and I think that is in accordance with Perl's  
      documentation, though in Perl it succeeds. ---/  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK  
     AAAC  
 No match  
   
 /--- Mark names can be duplicated ---/  
   
 /A(*:A)B|X(*:A)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XY  
 MK: A  
   
 /^A(*:A)B|^X(*:A)Y/K  
     ** Failers  
 No match  
     XAQQ  
 No match, mark = A  
   
 /--- A check on what happens after hitting a mark and them bumping along to  
 something that does not even start. Perl reports tags after the failures here,  
 though it does not when the individual letters are made into something  
 more complicated. ---/  
   
 /A(*:A)B|XX(*:B)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
 /--- COMMIT at the start of a pattern should be the same as an anchor. Perl  
 optimizations defeat this. So does the PCRE optimization unless we disable it  
 with \Y. ---/  
10661    
10662  /(*COMMIT)ABC/  /(*COMMIT)ABC/
10663      ABCDEFG      ABCDEFG
# Line 11155  No match Line 10667  No match
10667      DEFGABC\Y      DEFGABC\Y
10668  No match  No match
10669    
 /--- Repeat some tests with added studying. ---/  
   
 /A(*COMMIT)B/+KS  
     ACABX  
 No match  
   
 /A(*THEN)B|A(*THEN)C/KS  
     AC  
  0: AC  
   
 /A(*PRUNE)B|A(*PRUNE)C/KS  
     AC  
 No match  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /A(*PRUNE:A)B/KS  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*THEN:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS  
     AAAC  
 No match  
   
 /A(*:A)B|XX(*:B)Y/KS  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
 /(*COMMIT)ABC/  
     ABCDEFG  
  0: ABC  
     ** Failers  
 No match  
     DEFGABC\Y  
 No match  
   
10670  /^(ab (c+(*THEN)cd) | xyz)/x  /^(ab (c+(*THEN)cd) | xyz)/x
10671      abcccd      abcccd
10672  No match  No match
# Line 11287  No match Line 10679  No match
10679      abcccd      abcccd
10680  No match  No match
10681    
10682  /--- Perl 5.11 gets some of these wrong ---/  /--- Perl gets some of these wrong ---/
10683    
10684  /(?>.(*ACCEPT))*?5/  /(?>.(*ACCEPT))*?5/
10685      abcde      abcde
# Line 11395  No match Line 10787  No match
10787  /\s*\R/BZ  /\s*\R/BZ
10788  ------------------------------------------------------------------  ------------------------------------------------------------------
10789          Bra          Bra
10790          \s*+          \s*
10791            \R
10792            Ket
10793            End
10794    ------------------------------------------------------------------
10795        \x20\x0a
10796     0:  \x0a
10797        \x20\x0d
10798     0:  \x0d
10799        \x20\x0d\x0a
10800     0:  \x0d\x0a
10801    
10802    /\S*\R/BZ
10803    ------------------------------------------------------------------
10804            Bra
10805            \S*+
10806          \R          \R
10807          Ket          Ket
10808          End          End
10809  ------------------------------------------------------------------  ------------------------------------------------------------------
10810        a\x0a
10811     0: a\x0a
10812    
10813  /-- Perl treats this one differently, not failing the second string. I believe  /X\h*\R/BZ
10814      that is a bug in Perl. --/  ------------------------------------------------------------------
10815            Bra
10816            X
10817            \h*+
10818            \R
10819            Ket
10820            End
10821    ------------------------------------------------------------------
10822        X\x20\x0a
10823     0: X \x0a
10824    
10825  /^((abc|abcx)(*THEN)y|abcd)/  /X\H*\R/BZ
10826      abcd  ------------------------------------------------------------------
10827   0: abcd          Bra
10828   1: abcd          X
10829      *** Failers          \H*
10830  No match          \R
10831      abcxy          Ket
10832            End
10833    ------------------------------------------------------------------
10834        X\x0d\x0a
10835     0: X\x0d\x0a
10836    
10837    /X\H+\R/BZ
10838    ------------------------------------------------------------------
10839            Bra
10840            X
10841            \H+
10842            \R
10843            Ket
10844            End
10845    ------------------------------------------------------------------
10846        X\x0d\x0a
10847     0: X\x0d\x0a
10848    
10849    /X\H++\R/BZ
10850    ------------------------------------------------------------------
10851            Bra
10852            X
10853            \H++
10854            \R
10855            Ket
10856            End
10857    ------------------------------------------------------------------
10858        X\x0d\x0a
10859  No match  No match
10860    
10861  /(?<=abc)def/  /(?<=abc)def/
10862      abc\P\P      abc\P\P
10863  Partial match: abc  Partial match at offset 3: abc
10864    
10865  /abc$/  /abc$/
10866      abc      abc
# Line 11662  No need char Line 11107  No need char
11107    
11108  /(^ab|^)+/I  /(^ab|^)+/I
11109  Capturing subpattern count = 1  Capturing subpattern count = 1
11110    May match empty string
11111  Options: anchored  Options: anchored
11112  No first char  No first char
11113  No need char  No need char
11114    
11115  /(^ab|^)++/I  /(^ab|^)++/I
11116  Capturing subpattern count = 1  Capturing subpattern count = 1
11117    May match empty string
11118  Options: anchored  Options: anchored
11119  No first char  No first char
11120  No need char  No need char
# Line 11686  No need char Line 11133  No need char
11133    
11134  /(?:^ab|^)+/I  /(?:^ab|^)+/I
11135  Capturing subpattern count = 0  Capturing subpattern count = 0
11136    May match empty string
11137  Options: anchored  Options: anchored
11138  No first char  No first char
11139  No need char  No need char
11140    
11141  /(?:^ab|^)++/I  /(?:^ab|^)++/I
11142  Capturing subpattern count = 0  Capturing subpattern count = 0
11143    May match empty string
11144  Options: anchored  Options: anchored
11145  No first char  No first char
11146  No need char  No need char
# Line 11710  Need char = 'b' Line 11159  Need char = 'b'
11159    
11160  /(.*ab|.*)+/I  /(.*ab|.*)+/I
11161  Capturing subpattern count = 1  Capturing subpattern count = 1
11162    May match empty string
11163  No options  No options
11164  First char at start or follows newline  First char at start or follows newline
11165  No need char  No need char
11166    
11167  /(.*ab|.*)++/I  /(.*ab|.*)++/I
11168  Capturing subpattern count = 1  Capturing subpattern count = 1
11169    May match empty string
11170  No options  No options
11171  First char at start or follows newline  First char at start or follows newline
11172  No need char  No need char
# Line 11734  Need char = 'b' Line 11185  Need char = 'b'
11185    
11186  /(?:.*ab|.*)+/I  /(?:.*ab|.*)+/I
11187  Capturing subpattern count = 0  Capturing subpattern count = 0
11188    May match empty string
11189  No options  No options
11190  First char at start or follows newline  First char at start or follows newline
11191  No need char  No need char
11192    
11193  /(?:.*ab|.*)++/I  /(?:.*ab|.*)++/I
11194  Capturing subpattern count = 0  Capturing subpattern count = 0
11195    May match empty string
11196  No options  No options
11197  First char at start or follows newline  First char at start or follows newline
11198  No need char  No need char
# Line 11816  No match Line 11269  No match
11269    
11270  /^.*?(?(?=a)a|b(*THEN)c)/  /^.*?(?(?=a)a|b(*THEN)c)/
11271      ba      ba
11272   0: ba  No match
11273    
11274  /^.*?(?(?=a)a|bc)/  /^.*?(?(?=a)a|bc)/
11275      ba      ba
11276   0: ba   0: ba
11277    
11278    /^.*?(?(?=a)a(*THEN)b|c)/
11279        ac
11280    No match
11281    
11282    /^.*?(?(?=a)a(*THEN)b)c/
11283        ac
11284    No match
11285    
11286    /^.*?(a(*THEN)b)c/
11287        aabc
11288    No match
11289    
11290    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11291        aabc
11292     0: aabc
11293    
11294    /^.*?(a(*THEN)b|z)c/
11295        aabc
11296     0: aabc
11297     1: ab
11298    
11299    /^.*?(z|a(*THEN)b)c/
11300        aabc
11301     0: aabc
11302     1: ab
11303    
11304  /-- --/  /-- --/
11305    
11306  /-- These studied versions are here because they are not Perl-compatible; the  /-- These studied versions are here because they are not Perl-compatible; the
# Line 11833  No match Line 11312  No match
11312   1: C   1: C
11313  MK: A  MK: A
11314      D      D
11315  No match  No match, mark = A
11316    
11317  /(*:A)A+(*SKIP:A)(B|Z)/KS  /(*:A)A+(*SKIP:A)(B|Z)/KS
11318      AAAC      AAAC
11319  No match  No match, mark = A
11320    
11321  /-- --/  /-- --/
11322    
# Line 11866  No match Line 11345  No match
11345   1: a   1: a
11346   1+ a%   1+ a%
11347    
11348  /(a)b|ac/++  /(a)b|ac/++SS
11349      ac\O3      ac\O3
 Matched, but too many substrings  
11350   0: ac   0: ac
11351   0+   0+
11352    
11353    /(a)(b)x|abc/++
11354         abc\O6
11355     0: abc
11356     0+
11357    
11358  /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI  /(a)bc|(a)(b)\2/
11359        \O3abc
11360    Matched, but too many substrings
11361     0: abc
11362        \O4abc
11363    Matched, but too many substrings
11364     0: abc
11365    
11366    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11367  Capturing subpattern count = 2  Capturing subpattern count = 2
11368  No options  No options
11369  No first char  No first char
# Line 11907  No set of starting bytes Line 11398  No set of starting bytes
11398  /^(?>a)++/  /^(?>a)++/
11399      aa\M      aa\M
11400  Minimum match() limit = 5  Minimum match() limit = 5
11401  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11402   0: aa   0: aa
11403      aaaaaaaaa\M      aaaaaaaaa\M
11404  Minimum match() limit = 12  Minimum match() limit = 12
11405  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11406   0: aaaaaaaaa   0: aaaaaaaaa
11407    
11408  /(a)(?1)++/  /(a)(?1)++/
11409      aa\M      aa\M
11410  Minimum match() limit = 7  Minimum match() limit = 7
11411  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11412   0: aa   0: aa
11413   1: a   1: a
11414      aaaaaaaaa\M      aaaaaaaaa\M
11415  Minimum match() limit = 21  Minimum match() limit = 21
11416  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11417   0: aaaaaaaaa   0: aaaaaaaaa
11418   1: a   1: a
11419    
11420    /(?:(foo)|(bar)|(baz))X/SS=
11421        bazfooX
11422     0: fooX
11423     1: foo
11424     2: <unset>
11425     3: <unset>
11426        foobazbarX
11427     0: barX
11428     1: <unset>
11429     2: bar
11430     3: <unset>
11431        barfooX
11432     0: fooX
11433     1: foo
11434     2: <unset>
11435     3: <unset>
11436        bazX
11437     0: bazX
11438     1: <unset>
11439     2: <unset>
11440     3: baz
11441        foobarbazX
11442     0: bazX
11443     1: <unset>
11444     2: <unset>
11445     3: baz
11446        bazfooX\O0
11447    Matched, but too many substrings
11448        bazfooX\O2
11449    Matched, but too many substrings
11450     0: fooX
11451        bazfooX\O4
11452    Matched, but too many substrings
11453     0: fooX
11454     1: <unset>
11455        bazfooX\O6
11456    Matched, but too many substrings
11457     0: fooX
11458     1: foo
11459     2: <unset>
11460        bazfooX\O8
11461    Matched, but too many substrings
11462     0: fooX
11463     1: foo
11464     2: <unset>
11465     3: <unset>
11466        bazfooX\O10
11467     0: fooX
11468     1: foo
11469     2: <unset>
11470     3: <unset>
11471    
11472    /(?=abc){3}abc/BZ
11473    ------------------------------------------------------------------
11474            Bra
11475            Assert
11476            abc
11477            Ket
11478            abc
11479            Ket
11480            End
11481    ------------------------------------------------------------------
11482    
11483    /(?=abc)+abc/BZ
11484    ------------------------------------------------------------------
11485            Bra
11486            Assert
11487            abc
11488            Ket
11489            abc
11490            Ket
11491            End
11492    ------------------------------------------------------------------
11493    
11494    /(?=abc)++abc/BZ
11495    ------------------------------------------------------------------
11496            Bra
11497            Assert
11498            abc
11499            Ket
11500            abc
11501            Ket
11502            End
11503    ------------------------------------------------------------------
11504    
11505    /(?=abc){0}xyz/BZ
11506    ------------------------------------------------------------------
11507            Bra
11508            Skip zero
11509            Assert
11510            abc
11511            Ket
11512            xyz
11513            Ket
11514            End
11515    ------------------------------------------------------------------
11516    
11517    /(?=(a))?./BZ
11518    ------------------------------------------------------------------
11519            Bra
11520            Brazero
11521            Assert
11522            CBra 1
11523            a
11524            Ket
11525            Ket
11526            Any
11527            Ket
11528            End
11529    ------------------------------------------------------------------
11530    
11531    /(?=(a))??./BZ
11532    ------------------------------------------------------------------
11533            Bra
11534            Braminzero
11535            Assert
11536            CBra 1
11537            a
11538            Ket
11539            Ket
11540            Any
11541            Ket
11542            End
11543    ------------------------------------------------------------------
11544    
11545    /^(?=(a)){0}b(?1)/BZ
11546    ------------------------------------------------------------------
11547            Bra
11548            ^
11549            Skip zero
11550            Assert
11551            CBra 1
11552            a
11553            Ket
11554            Ket
11555            b
11556            Recurse
11557            Ket
11558            End
11559    ------------------------------------------------------------------
11560    
11561    /(?(DEFINE)(a))?b(?1)/BZ
11562    ------------------------------------------------------------------
11563            Bra
11564            Cond
11565            Cond def
11566            CBra 1
11567            a
11568            Ket
11569            Ket
11570            b
11571            Recurse
11572            Ket
11573            End
11574    ------------------------------------------------------------------
11575    
11576    /^(?=(?1))?[az]([abc])d/BZ
11577    ------------------------------------------------------------------
11578            Bra
11579            ^
11580            Brazero
11581            Assert
11582            Recurse
11583            Ket
11584            [az]
11585            CBra 1
11586            [a-c]
11587            Ket
11588            d
11589            Ket
11590            End
11591    ------------------------------------------------------------------
11592    
11593    /^(?!a){0}\w+/BZ
11594    ------------------------------------------------------------------
11595            Bra
11596            ^
11597            Skip zero
11598            Assert not
11599            a
11600            Ket
11601            \w++
11602            Ket
11603            End
11604    ------------------------------------------------------------------
11605    
11606    /(?<=(abc))?xyz/BZ
11607    ------------------------------------------------------------------
11608            Bra
11609            Brazero
11610            AssertB
11611            Reverse
11612            CBra 1
11613            abc
11614            Ket
11615            Ket
11616            xyz
11617            Ket
11618            End
11619    ------------------------------------------------------------------
11620    
11621    /[:a[:abc]b:]/BZ
11622    ------------------------------------------------------------------
11623            Bra
11624            [:[a-c]
11625            b:]
11626            Ket
11627            End
11628    ------------------------------------------------------------------
11629    
11630    /((?2))((?1))/SS
11631        abc
11632    Error -26 (nested recursion at the same subject position)
11633    
11634    /((?(R2)a+|(?1)b))/SS
11635        aaaabcde
11636    Error -26 (nested recursion at the same subject position)
11637    
11638    /(?(R)a*(?1)|((?R))b)/SS
11639        aaaabcde
11640    Error -26 (nested recursion at the same subject position)
11641    
11642    /(a+|(?R)b)/
11643    Failed: recursive call could loop indefinitely at offset 7
11644    
11645    /^(a(*:A)(d|e(*:B))z|aeq)/C
11646        adz
11647    --->adz
11648     +0 ^       ^
11649     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11650     +2 ^       a
11651     +3 ^^      (*:A)
11652     +8 ^^      (d|e(*:B))
11653    Latest Mark: A
11654     +9 ^^      d
11655    +10 ^ ^     |
11656    +18 ^ ^     z
11657    +19 ^  ^    |
11658    +24 ^  ^
11659     0: adz
11660     1: adz
11661     2: d
11662        aez
11663    --->aez
11664     +0 ^       ^
11665     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11666     +2 ^       a
11667     +3 ^^      (*:A)
11668     +8 ^^      (d|e(*:B))
11669    Latest Mark: A
11670     +9 ^^      d
11671    +11 ^^      e
11672    +12 ^ ^     (*:B)
11673    +17 ^ ^     )
11674    Latest Mark: B
11675    +18 ^ ^     z
11676    +19 ^  ^    |
11677    +24 ^  ^
11678     0: aez
11679     1: aez
11680     2: e
11681        aeqwerty
11682    --->aeqwerty
11683     +0 ^            ^
11684     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11685     +2 ^            a
11686     +3 ^^           (*:A)
11687     +8 ^^           (d|e(*:B))
11688    Latest Mark: A
11689     +9 ^^           d
11690    +11 ^^           e
11691    +12 ^ ^          (*:B)
11692    +17 ^ ^          )
11693    Latest Mark: B
11694    +18 ^ ^          z
11695    +20 ^            a
11696    +21 ^^           e
11697    +22 ^ ^          q
11698    +23 ^  ^         )
11699    +24 ^  ^
11700     0: aeq
11701     1: aeq
11702    
11703    /.(*F)/
11704        \P\Pabc
11705    No match
11706    
11707    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11708    Capturing subpattern count = 0
11709    Max lookbehind = 1
11710    No options
11711    First char = 't'
11712    Need char = 't'
11713    Subject length lower bound = 18
11714    No set of starting bytes
11715    
11716    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11717    Capturing subpattern count = 0
11718    Max lookbehind = 1
11719    No options
11720    No first char
11721    No need char
11722    Subject length lower bound = 8
11723    Starting byte set: < o t u
11724    
11725    /a(*SKIP)c|b(*ACCEPT)|/+S!I
11726    Capturing subpattern count = 0
11727    May match empty string
11728    No options
11729    No first char
11730    No need char
11731    Subject length lower bound = -1
11732    No set of starting bytes
11733        a
11734     0:
11735     0+
11736    
11737    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11738    Capturing subpattern count = 0
11739    No options
11740    No first char
11741    No need char
11742    Subject length lower bound = -1
11743    Starting byte set: a b x
11744        ax
11745     0: x
11746    
11747    'a*(*ACCEPT)b'+
11748        \N\N
11749    No match
11750        abc\N\N
11751     0: a
11752     0+ bc
11753        bbb\N\N
11754     0:
11755     0+ bb
11756    
11757    /(*ACCEPT)a/+I
11758    Capturing subpattern count = 0
11759    No options
11760    No first char
11761    No need char
11762        bax
11763     0:
11764     0+ bax
11765    
11766    /z(*ACCEPT)a/+I
11767    Capturing subpattern count = 0
11768    No options
11769    First char = 'z'
11770    No need char
11771        baxzbx
11772     0: z
11773     0+ bx
11774    
11775    /a(?:.)*?a/ims
11776        \Mabbbbbbbbbbbbbbbbbbbbba
11777    Minimum match() limit = 65
11778    Minimum match() recursion limit = 2
11779     0: abbbbbbbbbbbbbbbbbbbbba
11780    
11781    /a(?:.(*THEN))*?a/ims
11782        \Mabbbbbbbbbbbbbbbbbbbbba
11783    Minimum match() limit = 86
11784    Minimum match() recursion limit = 45
11785     0: abbbbbbbbbbbbbbbbbbbbba
11786    
11787    /a(?:.(*THEN:ABC))*?a/ims
11788        \Mabbbbbbbbbbbbbbbbbbbbba
11789    Minimum match() limit = 86
11790    Minimum match() recursion limit = 45
11791     0: abbbbbbbbbbbbbbbbbbbbba
11792    
11793    /^(?>a+)(?>(z+))\w/BZ
11794    ------------------------------------------------------------------
11795            Bra
11796            ^
11797            Once_NC
11798            a++
11799            Ket
11800            Once
11801            CBra 1
11802            z++
11803            Ket
11804            Ket
11805            \w
11806            Ket
11807            End
11808    ------------------------------------------------------------------
11809        aaaazzzzb
11810     0: aaaazzzzb
11811     1: zzzz
11812        ** Failers
11813    No match
11814        aazz
11815    No match
11816    
11817    /(.)(\1|a(?2))/
11818        bab
11819     0: bab
11820     1: b
11821     2: ab
11822    
11823    /\1|(.)(?R)\1/
11824        cbbbc
11825     0: cbbbc
11826     1: c
11827    
11828    /(.)((?(1)c|a)|a(?2))/
11829        baa
11830    No match
11831    
11832    /(?P<abn>(?P=abn)xxx)/BZ
11833    ------------------------------------------------------------------
11834            Bra
11835            Once
11836            CBra 1
11837            \1
11838            xxx
11839            Ket
11840            Ket
11841            Ket
11842            End
11843    ------------------------------------------------------------------
11844    
11845    /(a\1z)/BZ
11846    ------------------------------------------------------------------
11847            Bra
11848            Once
11849            CBra 1
11850            a
11851            \1
11852            z
11853            Ket
11854            Ket
11855            Ket
11856            End
11857    ------------------------------------------------------------------
11858    
11859    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11860         \Maabbccddee
11861    Minimum match() limit = 7
11862    Minimum match() recursion limit = 2
11863     0: aabbccddee
11864    
11865    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11866         \Maabbccddee
11867    Minimum match() limit = 17
11868    Minimum match() recursion limit = 16
11869     0: aabbccddee
11870     1: aa
11871     2: bb
11872     3: cc
11873     4: dd
11874     5: ee
11875    
11876    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11877         \Maabbccddee
11878    Minimum match() limit = 13
11879    Minimum match() recursion limit = 10
11880     0: aabbccddee
11881     1: aa
11882     2: cc
11883     3: ee
11884    
11885    /^a\x41z/<JS>
11886        aAz
11887     0: aAz
11888        *** Failers
11889    No match
11890        ax41z
11891    No match
11892    
11893    /^a[m\x41]z/<JS>
11894        aAz
11895     0: aAz
11896    
11897    /^a\x1z/<JS>
11898        ax1z
11899     0: ax1z
11900    
11901    /^a\u0041z/<JS>
11902        aAz
11903     0: aAz
11904        *** Failers
11905    No match
11906        au0041z
11907    No match
11908    
11909    /^a[m\u0041]z/<JS>
11910        aAz
11911     0: aAz
11912    
11913    /^a\u041z/<JS>
11914        au041z
11915     0: au041z
11916        *** Failers
11917    No match
11918        aAz
11919    No match
11920    
11921    /^a\U0041z/<JS>
11922        aU0041z
11923     0: aU0041z
11924        *** Failers
11925    No match
11926        aAz
11927    No match
11928    
11929    /(?(?=c)c|d)++Y/BZ
11930    ------------------------------------------------------------------
11931            Bra
11932            BraPos
11933            Cond
11934            Assert
11935            c
11936            Ket
11937            c
11938            Alt
11939            d
11940            Ket
11941            KetRpos
11942            Y
11943            Ket
11944            End
11945    ------------------------------------------------------------------
11946    
11947    /(?(?=c)c|d)*+Y/BZ
11948    ------------------------------------------------------------------
11949            Bra
11950            Braposzero
11951            BraPos
11952            Cond
11953            Assert
11954            c
11955            Ket
11956            c
11957            Alt
11958            d
11959            Ket
11960            KetRpos
11961            Y
11962            Ket
11963            End
11964    ------------------------------------------------------------------
11965    
11966    /a[\NB]c/
11967    Failed: \N is not supported in a class at offset 3
11968    
11969    /a[B-\Nc]/
11970    Failed: invalid range in character class at offset 5
11971    
11972    /a[B\Nc]/
11973    Failed: \N is not supported in a class at offset 4
11974    
11975    /(a)(?2){0,1999}?(b)/
11976    
11977    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11978    
11979    /--- This test, with something more complicated than individual letters, causes
11980    different behaviour in Perl. Perhaps it disables some optimization; no tag is
11981    passed back for the failures, whereas in PCRE there is a tag. ---/
11982    
11983    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11984        AABC
11985     0: AB
11986     1: A
11987     2: B
11988    MK: A
11989        XXYZ
11990     0: XXY
11991     1: <unset>
11992     2: <unset>
11993     3: X
11994     4: X
11995     5: Y
11996    MK: B
11997        ** Failers
11998    No match
11999        XAQQ
12000    No match, mark = A
12001        XAQQXZZ
12002    No match, mark = A
12003        AXQQQ
12004    No match, mark = A
12005        AXXQQQ
12006    No match, mark = B
12007    
12008    /-- Perl doesn't give marks for these, though it does if the alternatives are
12009    replaced by single letters. --/
12010    
12011    /(b|q)(*:m)f|a(*:n)w/K
12012        aw
12013     0: aw
12014    MK: n
12015        ** Failers
12016    No match, mark = n
12017        abc
12018    No match, mark = m
12019    
12020    /(q|b)(*:m)f|a(*:n)w/K
12021        aw
12022     0: aw
12023    MK: n
12024        ** Failers
12025    No match, mark = n
12026        abc
12027    No match, mark = m
12028    
12029    /-- After a partial match, the behaviour is as for a failure. --/
12030    
12031    /^a(*:X)bcde/K
12032       abc\P
12033    Partial match, mark=X: abc
12034    
12035    /-- These are here because Perl doesn't return a mark, except for the first --/
12036    
12037    /(?=(*:x))(q|)/K+
12038        abc
12039     0:
12040     0+ abc
12041     1:
12042    MK: x
12043    
12044    /(?=(*:x))((*:y)q|)/K+
12045        abc
12046     0:
12047     0+ abc
12048     1:
12049    MK: x
12050    
12051    /(?=(*:x))(?:(*:y)q|)/K+
12052        abc
12053     0:
12054     0+ abc
12055    MK: x
12056    
12057    /(?=(*:x))(?>(*:y)q|)/K+
12058        abc
12059     0:
12060     0+ abc
12061    MK: x
12062    
12063    /(?=a(*:x))(?!a(*:y)c)/K+
12064        ab
12065     0:
12066     0+ ab
12067    MK: x
12068    
12069    /(?=a(*:x))(?=a(*:y)c|)/K+
12070        ab
12071     0:
12072     0+ ab
12073    MK: x
12074    
12075    /(..)\1/
12076        ab\P
12077    Partial match: ab
12078        aba\P
12079    Partial match: aba
12080        abab\P
12081     0: abab
12082     1: ab
12083    
12084    /(..)\1/i
12085        ab\P
12086    Partial match: ab
12087        abA\P
12088    Partial match: abA
12089        aBAb\P
12090     0: aBAb
12091     1: aB
12092    
12093    /(..)\1{2,}/
12094        ab\P
12095    Partial match: ab
12096        aba\P
12097    Partial match: aba
12098        abab\P
12099    Partial match: abab
12100        ababa\P
12101    Partial match: ababa
12102        ababab\P
12103     0: ababab
12104     1: ab
12105        ababab\P\P
12106    Partial match: ababab
12107        abababa\P
12108     0: ababab
12109     1: ab
12110        abababa\P\P
12111    Partial match: abababa
12112    
12113    /(..)\1{2,}/i
12114        ab\P
12115    Partial match: ab
12116        aBa\P
12117    Partial match: aBa
12118        aBAb\P
12119    Partial match: aBAb
12120        AbaBA\P
12121    Partial match: AbaBA
12122        abABAb\P
12123     0: abABAb
12124     1: ab
12125        aBAbaB\P\P
12126    Partial match: aBAbaB
12127        abABabA\P
12128     0: abABab
12129     1: ab
12130        abaBABa\P\P
12131    Partial match: abaBABa
12132    
12133    /(..)\1{2,}?x/i
12134        ab\P
12135    Partial match: ab
12136        abA\P
12137    Partial match: abA
12138        aBAb\P
12139    Partial match: aBAb
12140        abaBA\P
12141    Partial match: abaBA
12142        abAbaB\P
12143    Partial match: abAbaB
12144        abaBabA\P
12145    Partial match: abaBabA
12146        abAbABaBx\P
12147     0: abAbABaBx
12148     1: ab
12149    
12150    /^(..)\1/
12151        aba\P
12152    Partial match: aba
12153    
12154    /^(..)\1{2,3}x/
12155        aba\P
12156    Partial match: aba
12157        ababa\P
12158    Partial match: ababa
12159        ababa\P\P
12160    Partial match: ababa
12161        abababx
12162     0: abababx
12163     1: ab
12164        ababababx
12165     0: ababababx
12166     1: ab
12167    
12168    /^(..)\1{2,3}?x/
12169        aba\P
12170    Partial match: aba
12171        ababa\P
12172    Partial match: ababa
12173        ababa\P\P
12174    Partial match: ababa
12175        abababx
12176     0: abababx
12177     1: ab
12178        ababababx
12179     0: ababababx
12180     1: ab
12181    
12182    /^(..)(\1{2,3})ab/
12183        abababab
12184     0: abababab
12185     1: ab
12186     2: abab
12187    
12188    /^\R/
12189        \r\P
12190     0: \x0d
12191        \r\P\P
12192    Partial match: \x0d
12193    
12194    /^\R{2,3}x/
12195        \r\P
12196    Partial match: \x0d
12197        \r\P\P
12198    Partial match: \x0d
12199        \r\r\P
12200    Partial match: \x0d\x0d
12201        \r\r\P\P
12202    Partial match: \x0d\x0d
12203        \r\r\r\P
12204    Partial match: \x0d\x0d\x0d
12205        \r\r\r\P\P
12206    Partial match: \x0d\x0d\x0d
12207        \r\rx
12208     0: \x0d\x0dx
12209        \r\r\rx
12210     0: \x0d\x0d\x0dx
12211    
12212    /^\R{2,3}?x/
12213        \r\P
12214    Partial match: \x0d
12215        \r\P\P
12216    Partial match: \x0d
12217        \r\r\P
12218    Partial match: \x0d\x0d
12219        \r\r\P\P
12220    Partial match: \x0d\x0d
12221        \r\r\r\P
12222    Partial match: \x0d\x0d\x0d
12223        \r\r\r\P\P
12224    Partial match: \x0d\x0d\x0d
12225        \r\rx
12226     0: \x0d\x0dx
12227        \r\r\rx
12228     0: \x0d\x0d\x0dx
12229    
12230    /^\R?x/
12231        \r\P
12232    Partial match: \x0d
12233        \r\P\P
12234    Partial match: \x0d
12235        x
12236     0: x
12237        \rx
12238     0: \x0dx
12239    
12240    /^\R+x/
12241        \r\P
12242    Partial match: \x0d
12243        \r\P\P
12244    Partial match: \x0d
12245        \r\n\P
12246    Partial match: \x0d\x0a
12247        \r\n\P\P
12248    Partial match: \x0d\x0a
12249        \rx
12250     0: \x0dx
12251    
12252    /^a$/<CRLF>
12253        a\r\P
12254    Partial match: a\x0d
12255        a\r\P\P
12256    Partial match: a\x0d
12257    
12258    /^a$/m<CRLF>
12259        a\r\P
12260    Partial match: a\x0d
12261        a\r\P\P
12262    Partial match: a\x0d
12263    
12264    /^(a$|a\r)/<CRLF>
12265        a\r\P
12266     0: a\x0d
12267     1: a\x0d
12268        a\r\P\P
12269    Partial match: a\x0d
12270    
12271    /^(a$|a\r)/m<CRLF>
12272        a\r\P
12273     0: a\x0d
12274     1: a\x0d
12275        a\r\P\P
12276    Partial match: a\x0d
12277    
12278    /./<CRLF>
12279        \r\P
12280     0: \x0d
12281        \r\P\P
12282    Partial match: \x0d
12283    
12284    /.{2,3}/<CRLF>
12285        \r\P
12286    Partial match: \x0d
12287        \r\P\P
12288    Partial match: \x0d
12289        \r\r\P
12290     0: \x0d\x0d
12291        \r\r\P\P
12292    Partial match: \x0d\x0d
12293        \r\r\r\P
12294     0: \x0d\x0d\x0d
12295        \r\r\r\P\P
12296    Partial match: \x0d\x0d\x0d
12297    
12298    /.{2,3}?/<CRLF>
12299        \r\P
12300    Partial match: \x0d
12301        \r\P\P
12302    Partial match: \x0d
12303        \r\r\P
12304     0: \x0d\x0d
12305        \r\r\P\P
12306    Partial match: \x0d\x0d
12307        \r\r\r\P
12308     0: \x0d\x0d
12309        \r\r\r\P\P
12310     0: \x0d\x0d
12311    
12312    "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12313        ABCDGHI\O03
12314    Matched, but too many substrings
12315     0: ABCD
12316    
12317    /-- These are all run as real matches in test 1; here we are just checking the
12318    settings of the anchored and startline bits. --/
12319    
12320    /(?>.*?a)(?<=ba)/I
12321    Capturing subpattern count = 0
12322    Max lookbehind = 2
12323    No options
12324    No first char
12325    Need char = 'a'
12326    
12327    /(?:.*?a)(?<=ba)/I
12328    Capturing subpattern count = 0
12329    Max lookbehind = 2
12330    No options
12331    First char at start or follows newline
12332    Need char = 'a'
12333    
12334    /.*?a(*PRUNE)b/I
12335    Capturing subpattern count = 0
12336    No options
12337    No first char
12338    Need char = 'b'
12339    
12340    /.*?a(*PRUNE)b/sI
12341    Capturing subpattern count = 0
12342    Options: dotall
12343    No first char
12344    Need char = 'b'
12345    
12346    /^a(*PRUNE)b/sI
12347    Capturing subpattern count = 0
12348    Options: anchored dotall
12349    No first char
12350    No need char
12351    
12352    /.*?a(*SKIP)b/I
12353    Capturing subpattern count = 0
12354    No options
12355    No first char
12356    Need char = 'b'
12357    
12358    /(?>.*?a)b/sI
12359    Capturing subpattern count = 0
12360    Options: dotall
12361    No first char
12362    Need char = 'b'
12363    
12364    /(?>.*?a)b/I
12365    Capturing subpattern count = 0
12366    No options
12367    No first char
12368    Need char = 'b'
12369    
12370    /(?>^a)b/sI
12371    Capturing subpattern count = 0
12372    Options: anchored dotall
12373    No first char
12374    No need char
12375    
12376    /(?>.*?)(?<=(abcd)|(wxyz))/I
12377    Capturing subpattern count = 2
12378    Max lookbehind = 4
12379    May match empty string
12380    No options
12381    No first char
12382    No need char
12383    
12384    /(?>.*)(?<=(abcd)|(wxyz))/I
12385    Capturing subpattern count = 2
12386    Max lookbehind = 4
12387    May match empty string
12388    No options
12389    No first char
12390    No need char
12391    
12392    "(?>.*)foo"I
12393    Capturing subpattern count = 0
12394    No options
12395    No first char
12396    Need char = 'o'
12397    
12398    "(?>.*?)foo"I
12399    Capturing subpattern count = 0
12400    No options
12401    No first char
12402    Need char = 'o'
12403    
12404    /(?>^abc)/mI
12405    Capturing subpattern count = 0
12406    Options: multiline
12407    First char at start or follows newline
12408    Need char = 'c'
12409    
12410    /(?>.*abc)/mI
12411    Capturing subpattern count = 0
12412    Options: multiline
12413    No first char
12414    Need char = 'c'
12415    
12416    /(?:.*abc)/mI
12417    Capturing subpattern count = 0
12418    Options: multiline
12419    First char at start or follows newline
12420    Need char = 'c'
12421    
12422    /-- Check PCRE_STUDY_EXTRA_NEEDED --/
12423    
12424    /.?/S-I
12425    Capturing subpattern count = 0
12426    May match empty string
12427    No options
12428    No first char
12429    No need char
12430    Study returned NULL
12431    
12432    /.?/S!I
12433    Capturing subpattern count = 0
12434    May match empty string
12435    No options
12436    No first char
12437    No need char
12438    Subject length lower bound = -1
12439    No set of starting bytes
12440    
12441    /(?:(a)+(?C1)bb|aa(?C2)b)/
12442        aab\C+
12443    Callout 1: last capture = 1
12444     0: <unset>
12445     1: a
12446    --->aab
12447        ^ ^     b
12448    Callout 1: last capture = 1
12449     0: <unset>
12450     1: a
12451    --->aab
12452        ^^      b
12453    Callout 2: last capture = -1
12454     0: <unset>
12455    --->aab
12456        ^ ^     b
12457     0: aab
12458    
12459    /(?:(a)++(?C1)bb|aa(?C2)b)/
12460        aab\C+
12461    Callout 1: last capture = 1
12462     0: <unset>
12463     1: a
12464    --->aab
12465        ^ ^     b
12466    Callout 2: last capture = -1
12467     0: <unset>
12468    --->aab
12469        ^ ^     b
12470     0: aab
12471    
12472    /(?:(?>(a))(?C1)bb|aa(?C2)b)/
12473        aab\C+
12474    Callout 1: last capture = 1
12475     0: <unset>
12476     1: a
12477    --->aab
12478        ^^      b
12479    Callout 2: last capture = -1
12480     0: <unset>
12481    --->aab
12482        ^ ^     b
12483     0: aab
12484    
12485    /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
12486        aab\C+
12487    Callout 1: last capture = -1
12488     0: <unset>
12489    --->aab
12490        ^^      x
12491    Callout 1: last capture = -1
12492     0: <unset>
12493    --->aab
12494         ^^     x
12495    Callout 2: last capture = -1
12496     0: <unset>
12497    --->aab
12498         ^ ^    )
12499     0: ab
12500    
12501    /(?1)(?C1)((a)(?C2)){0}/
12502        aab\C+
12503    Callout 2: last capture = 2
12504     0: <unset>
12505     1: <unset>
12506     2: a
12507    --->aab
12508        ^^      )
12509    Callout 1: last capture = -1
12510     0: <unset>
12511    --->aab
12512        ^^      ((a)(?C2)){0}
12513     0: a
12514    
12515    /(?:(a)+(?C1)bb|aa(?C2)b)++/
12516        aab\C+
12517    Callout 1: last capture = 1
12518     0: <unset>
12519     1: a
12520    --->aab
12521        ^ ^     b
12522    Callout 1: last capture = 1
12523     0: <unset>
12524     1: a
12525    --->aab
12526        ^^      b
12527    Callout 2: last capture = -1
12528     0: <unset>
12529    --->aab
12530        ^ ^     b
12531     0: aab
12532        aab\C+\O2
12533    Callout 1: last capture = 1
12534     0: <unset>
12535    --->aab
12536        ^ ^     b
12537    Callout 1: last capture = 1
12538     0: <unset>
12539    --->aab
12540        ^^      b
12541    Callout 2: last capture = -1
12542     0: <unset>
12543    --->aab
12544        ^ ^     b
12545     0: aab
12546    
12547    /(ab)x|ab/
12548        ab\O3
12549     0: ab
12550        ab\O2
12551     0: ab
12552    
12553    /(ab)/
12554        ab\O3
12555    Matched, but too many substrings
12556     0: ab
12557        ab\O2
12558    Matched, but too many substrings
12559     0: ab
12560    
12561    /(?<=123)(*MARK:xx)abc/K
12562        xxxx123a\P\P
12563    Partial match at offset 7, mark=xx: 123a
12564        xxxx123a\P
12565    Partial match at offset 7, mark=xx: 123a
12566    
12567    /123\Kabc/
12568        xxxx123a\P\P
12569    Partial match: 123a
12570        xxxx123a\P
12571    Partial match: 123a
12572    
12573    /^(?(?=a)aa|bb)/C
12574        bb
12575    --->bb
12576     +0 ^      ^
12577     +1 ^      (?(?=a)aa|bb)
12578     +3 ^      (?=a)
12579     +6 ^      a
12580    +11 ^      b
12581    +12 ^^     b
12582    +13 ^ ^    )
12583    +14 ^ ^
12584     0: bb
12585    
12586    /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
12587        bb
12588    --->bb
12589      1 ^      ^
12590      2 ^      (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
12591     99 ^      (?=(?C3)a(?C4))
12592      3 ^      a
12593      8 ^      b
12594      9 ^^     b
12595     10 ^ ^    )
12596     11 ^ ^
12597     0: bb
12598    
12599    /-- Perl seems to have a bug with this one --/
12600    
12601    /aaaaa(*COMMIT)(*PRUNE)b|a+c/
12602        aaaaaac
12603     0: aaaac
12604    
12605    /-- Here are some that Perl treats differently because of the way it handles
12606    backtracking verbs. --/
12607    
12608     /(?!a(*COMMIT)b)ac|ad/
12609         ac
12610     0: ac
12611         ad
12612     0: ad
12613    
12614    /^(?!a(*THEN)b|ac)../
12615         ac
12616    No match
12617         ad
12618     0: ad
12619    
12620    /^(?=a(*THEN)b|ac)/
12621        ac
12622     0:
12623    
12624    /\A.*?(?:a|b(*THEN)c)/
12625        ba
12626     0: ba
12627    
12628    /\A.*?(?:a|b(*THEN)c)++/
12629        ba
12630     0: ba
12631    
12632    /\A.*?(?:a|b(*THEN)c|d)/
12633        ba
12634     0: ba
12635    
12636    /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
12637        aac
12638     0: aac
12639    
12640    /\A.*?(a|b(*THEN)c)/
12641        ba
12642     0: ba
12643     1: a
12644    
12645    /^(A(*THEN)B|A(*THEN)D)/
12646        AD
12647     0: AD
12648     1: AD
12649    
12650    /(?!b(*THEN)a)bn|bnn/
12651        bnn
12652     0: bn
12653    
12654    /(?(?=b(*SKIP)a)bn|bnn)/
12655        bnn
12656    No match
12657    
12658    /(?=b(*THEN)a|)bn|bnn/
12659        bnn
12660     0: bn
12661    
12662    /-------------------------/
12663    
12664    /(*LIMIT_MATCH=12bc)abc/
12665    Failed: (*VERB) not recognized or malformed at offset 7
12666    
12667    /(*LIMIT_MATCH=4294967290)abc/
12668    Failed: (*VERB) not recognized or malformed at offset 7
12669    
12670    /(*LIMIT_RECURSION=4294967280)abc/I
12671    Capturing subpattern count = 0
12672    Recursion limit = 4294967280
12673    No options
12674    First char = 'a'
12675    Need char = 'c'
12676    
12677    /(a+)*zz/
12678        aaaaaaaaaaaaaz
12679    No match
12680        aaaaaaaaaaaaaz\q3000
12681    Error -8 (match limit exceeded)
12682    
12683    /(a+)*zz/S-
12684        aaaaaaaaaaaaaz\Q10
12685    Error -21 (recursion limit exceeded)
12686    
12687    /(*LIMIT_MATCH=3000)(a+)*zz/I
12688    Capturing subpattern count = 1
12689    Match limit = 3000
12690    No options
12691    No first char
12692    Need char = 'z'
12693        aaaaaaaaaaaaaz
12694    Error -8 (match limit exceeded)
12695        aaaaaaaaaaaaaz\q60000
12696    Error -8 (match limit exceeded)
12697    
12698    /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
12699    Capturing subpattern count = 1
12700    Match limit = 3000
12701    No options
12702    No first char
12703    Need char = 'z'
12704        aaaaaaaaaaaaaz
12705    Error -8 (match limit exceeded)
12706    
12707    /(*LIMIT_MATCH=60000)(a+)*zz/I
12708    Capturing subpattern count = 1
12709    Match limit = 60000
12710    No options
12711    No first char
12712    Need char = 'z'
12713        aaaaaaaaaaaaaz
12714    No match
12715        aaaaaaaaaaaaaz\q3000
12716    Error -8 (match limit exceeded)
12717    
12718    /(*LIMIT_RECURSION=10)(a+)*zz/IS-
12719    Capturing subpattern count = 1
12720    Recursion limit = 10
12721    No options
12722    No first char
12723    Need char = 'z'
12724    Subject length lower bound = 2
12725    Starting byte set: a z
12726        aaaaaaaaaaaaaz
12727    Error -21 (recursion limit exceeded)
12728        aaaaaaaaaaaaaz\Q1000
12729    Error -21 (recursion limit exceeded)
12730    
12731    /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12732    Capturing subpattern count = 1
12733    Recursion limit = 10
12734    No options
12735    No first char
12736    Need char = 'z'
12737    Subject length lower bound = 2
12738    Starting byte set: a z
12739        aaaaaaaaaaaaaz
12740    Error -21 (recursion limit exceeded)
12741    
12742    /(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12743    Capturing subpattern count = 1
12744    Recursion limit = 1000
12745    No options
12746    No first char
12747    Need char = 'z'
12748    Subject length lower bound = 2
12749    Starting byte set: a z
12750        aaaaaaaaaaaaaz
12751    No match
12752        aaaaaaaaaaaaaz\Q10
12753    Error -21 (recursion limit exceeded)
12754    
12755    /-- This test causes a segfault with Perl 5.18.0 --/
12756    
12757    /^(?=(a)){0}b(?1)/
12758        backgammon
12759     0: ba
12760    
12761    /(?|(?<n>f)|(?<n>b))/JI
12762    Capturing subpattern count = 1
12763    Named capturing subpatterns:
12764      n   1
12765    Options: dupnames
12766    No first char
12767    No need char
12768    
12769    /(?<a>abc)(?<a>z)\k<a>()/JDZS
12770    ------------------------------------------------------------------
12771            Bra
12772            CBra 1
12773            abc
12774            Ket
12775            CBra 2
12776            z
12777            Ket
12778            \k<a>2
12779            CBra 3
12780            Ket
12781            Ket
12782            End
12783    ------------------------------------------------------------------
12784    Capturing subpattern count = 3
12785    Max back reference = 2
12786    Named capturing subpatterns:
12787      a   1
12788      a   2
12789    Options: dupnames
12790    First char = 'a'
12791    Need char = 'z'
12792    Subject length lower bound = 5
12793    No set of starting bytes
12794    
12795    /a*[bcd]/BZ
12796    ------------------------------------------------------------------
12797            Bra
12798            a*+
12799            [b-d]
12800            Ket
12801            End
12802    ------------------------------------------------------------------
12803    
12804    /[bcd]*a/BZ
12805    ------------------------------------------------------------------
12806            Bra
12807            [b-d]*+
12808            a
12809            Ket
12810            End
12811    ------------------------------------------------------------------
12812    
12813    /-- A complete set of tests for auto-possessification of character types --/
12814    
12815    /\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\C \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/BZx
12816    ------------------------------------------------------------------
12817            Bra
12818            \D+
12819            \D
12820            \D++
12821            \d
12822            \D+
12823            \S
12824            \D+
12825            \s
12826            \D+
12827            \W
12828            \D+
12829            \w
12830            \D+
12831            Any
12832            \D+
12833            AllAny
12834            \D+
12835            \R
12836            \D+
12837            \H
12838            \D+
12839            \h
12840            \D+
12841            \V
12842            \D+
12843            \v
12844            \D+
12845            \Z
12846            \D++
12847            \z
12848            \D+
12849            $
12850            Ket
12851            End
12852    ------------------------------------------------------------------
12853    
12854    /\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\C \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/BZx
12855    ------------------------------------------------------------------
12856            Bra
12857            \d++
12858            \D
12859            \d+
12860            \d
12861            \d+
12862            \S
12863            \d++
12864            \s
12865            \d++
12866            \W
12867            \d+
12868            \w
12869            \d+
12870            Any
12871            \d+
12872            AllAny
12873            \d++
12874            \R
12875            \d+
12876            \H
12877            \d++
12878            \h
12879            \d+
12880            \V
12881            \d++
12882            \v
12883            \d++
12884            \Z
12885            \d++
12886            \z
12887            \d++
12888            $
12889            Ket
12890            End
12891    ------------------------------------------------------------------
12892    
12893    /\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\C \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/BZx
12894    ------------------------------------------------------------------
12895            Bra
12896            \S+
12897            \D
12898            \S+
12899            \d
12900            \S+
12901            \S
12902            \S++
12903            \s
12904            \S+
12905            \W
12906            \S+
12907            \w
12908            \S+
12909            Any
12910            \S+
12911            AllAny
12912            \S++
12913            \R
12914            \S+
12915            \H
12916            \S++
12917            \h
12918            \S+
12919            \V
12920            \S++
12921            \v
12922            \S++
12923            \Z
12924            \S++
12925            \z
12926            \S++
12927            $
12928            Ket
12929            End
12930    ------------------------------------------------------------------
12931    
12932    /\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\C \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/BZx
12933    ------------------------------------------------------------------
12934            Bra
12935            \s+
12936            \D
12937            \s++
12938            \d
12939            \s++
12940            \S
12941            \s+
12942            \s
12943            \s+
12944            \W
12945            \s++
12946            \w
12947            \s+
12948            Any
12949            \s+
12950            AllAny
12951            \s+
12952            \R
12953            \s+
12954            \H
12955            \s+
12956            \h
12957            \s+
12958            \V
12959            \s+
12960            \v
12961            \s+
12962            \Z
12963            \s++
12964            \z
12965            \s+
12966            $
12967            Ket
12968            End
12969    ------------------------------------------------------------------
12970    
12971    /\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\C \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/BZx
12972    ------------------------------------------------------------------
12973            Bra
12974            \W+
12975            \D
12976            \W++
12977            \d
12978            \W+
12979            \S
12980            \W+
12981            \s
12982            \W+
12983            \W
12984            \W++
12985            \w
12986            \W+
12987            Any
12988            \W+
12989            AllAny
12990            \W+
12991            \R
12992            \W+
12993            \H
12994            \W+
12995            \h
12996            \W+
12997            \V
12998            \W+
12999            \v
13000            \W+
13001            \Z
13002            \W++
13003            \z
13004            \W+
13005            $
13006            Ket
13007            End
13008    ------------------------------------------------------------------
13009    
13010    /\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\C \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/BZx
13011    ------------------------------------------------------------------
13012            Bra
13013            \w+
13014            \D
13015            \w+
13016            \d
13017            \w+
13018            \S
13019            \w++
13020            \s
13021            \w++
13022            \W
13023            \w+
13024            \w
13025            \w+
13026            Any
13027            \w+
13028            AllAny
13029            \w++
13030            \R
13031            \w+
13032            \H
13033            \w++
13034            \h
13035            \w+
13036            \V
13037            \w++
13038            \v
13039            \w++
13040            \Z
13041            \w++
13042            \z
13043            \w++
13044            $
13045            Ket
13046            End
13047    ------------------------------------------------------------------
13048    
13049    /\C+\D \C+\d \C+\S \C+\s \C+\W \C+\w \C+. \C+\C \C+\R \C+\H \C+\h \C+\V \C+\v \C+\Z \C+\z \C+$/BZx
13050    ------------------------------------------------------------------
13051            Bra
13052            AllAny+
13053            \D
13054            AllAny+
13055            \d
13056            AllAny+
13057            \S
13058            AllAny+
13059            \s
13060            AllAny+
13061            \W
13062            AllAny+
13063            \w
13064            AllAny+
13065            Any
13066            AllAny+
13067            AllAny
13068            AllAny+
13069            \R
13070            AllAny+
13071            \H
13072            AllAny+
13073            \h
13074            AllAny+
13075            \V
13076            AllAny+
13077            \v
13078            AllAny+
13079            \Z
13080            AllAny++
13081            \z
13082            AllAny+
13083            $
13084            Ket
13085            End
13086    ------------------------------------------------------------------
13087    
13088    /\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\C \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/BZx
13089    ------------------------------------------------------------------
13090            Bra
13091            \R+
13092            \D
13093            \R++
13094            \d
13095            \R+
13096            \S
13097            \R++
13098            \s
13099            \R+
13100            \W
13101            \R++
13102            \w
13103            \R++
13104            Any
13105            \R+
13106            AllAny
13107            \R+
13108            \R
13109            \R+
13110            \H
13111            \R++
13112            \h
13113            \R+
13114            \V
13115            \R+
13116            \v
13117            \R+
13118            \Z
13119            \R++
13120            \z
13121            \R+
13122            $
13123            Ket
13124            End
13125    ------------------------------------------------------------------
13126    
13127    /\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\C \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/BZx
13128    ------------------------------------------------------------------
13129            Bra
13130            \H+
13131            \D
13132            \H+
13133            \d
13134            \H+
13135            \S
13136            \H+
13137            \s
13138            \H+
13139            \W
13140            \H+
13141            \w
13142            \H+
13143            Any
13144            \H+
13145            AllAny
13146            \H+
13147            \R
13148            \H+
13149            \H
13150            \H++
13151            \h
13152            \H+
13153            \V