/[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 511 by ph10, Mon Mar 29 09:25:38 2010 UTC revision 1388 by ph10, Tue Nov 5 15:24:45 2013 UTC
# Line 2  Line 2 
2      of PCRE's API, error diagnostics, and the compiled code of some patterns.      of PCRE's API, error diagnostics, and the compiled code of some patterns.
3      It also checks the non-Perl syntax the PCRE supports (Python, .NET,      It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4      Oniguruma). Finally, there are some tests where PCRE and Perl differ,      Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5      either because PCRE can't be compatible, or there is potential Perl      either because PCRE can't be compatible, or there is a possible Perl
6      bug. --/      bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
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 103  Failed: missing terminating ] for charac Line 105  Failed: missing terminating ] for charac
105  /(?X)[\B]/  /(?X)[\B]/
106  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
107    
108    /(?X)[\R]/
109    Failed: invalid escape sequence in character class at offset 6
110    
111    /(?X)[\X]/
112    Failed: invalid escape sequence in character class at offset 6
113    
114    /[\B]/BZ
115    ------------------------------------------------------------------
116            Bra
117            B
118            Ket
119            End
120    ------------------------------------------------------------------
121    
122    /[\R]/BZ
123    ------------------------------------------------------------------
124            Bra
125            R
126            Ket
127            End
128    ------------------------------------------------------------------
129    
130    /[\X]/BZ
131    ------------------------------------------------------------------
132            Bra
133            X
134            Ket
135            End
136    ------------------------------------------------------------------
137    
138  /[z-a]/  /[z-a]/
139  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
140    
# Line 199  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 347  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 474  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 523  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 602  Need char = 'h' (caseless) Line 581  Need char = 'h' (caseless)
581  ------------------------------------------------------------------  ------------------------------------------------------------------
582          Bra          Bra
583          CBra 1          CBra 1
584       01 Opt       /i b
      NC b  
585          Ket          Ket
      00 Opt  
586          Ket          Ket
587          End          End
588  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 658  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 683  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 691  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 707  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 724  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 766  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 782  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 801  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 829  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 841  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 1003  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 1121  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 1217  No need char Line 1187  No need char
1187  ------------------------------------------------------------------  ------------------------------------------------------------------
1188          Bra          Bra
1189          Bra          Bra
      04 Opt  
1190          AllAny*          AllAny*
1191          X          X
1192          Alt          Alt
      04 Opt  
1193          ^          ^
1194          B          B
1195          Ket          Ket
      00 Opt  
1196          Ket          Ket
1197          End          End
1198  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1236  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 1243  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 1261  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 1270  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 1285  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 1296  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 1377  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 1416  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 1434  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 1476  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 1632  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 1650  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 1664  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 2690  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 2709  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 2721  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 2734  No need char Line 2680  No need char
2680  ------------------------------------------------------------------  ------------------------------------------------------------------
2681          Bra          Bra
2682          a          a
2683       01 Opt       /i b
      NC b  
2684          Ket          Ket
2685          End          End
2686  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2757  No match Line 2702  No match
2702          Bra          Bra
2703          CBra 1          CBra 1
2704          a          a
2705       01 Opt       /i b
      NC b  
2706          Ket          Ket
      00 Opt  
2707          Ket          Ket
2708          End          End
2709  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2782  No match Line 2725  No match
2725  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2726  ------------------------------------------------------------------  ------------------------------------------------------------------
2727          Bra          Bra
2728       NC abc       /i abc
2729          Ket          Ket
2730          End          End
2731  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2795  Need char = 'c' (caseless) Line 2738  Need char = 'c' (caseless)
2738    (?i)abc/IxDZ    (?i)abc/IxDZ
2739  ------------------------------------------------------------------  ------------------------------------------------------------------
2740          Bra          Bra
2741       NC abc       /i abc
2742          Ket          Ket
2743          End          End
2744  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2835  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 2934  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 2950  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  ------------------------------------------------------------------  ------------------------------------------------------------------
2936          Bra          Bra
2937          Once          Braposzero
2938          Brazero          CBraPos 1
         CBra 1  
2939          x          x
2940          KetRmax          KetRpos
         Ket  
2941          Ket          Ket
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 3145  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 3198  Failed: POSIX collating elements are not Line 3164  Failed: POSIX collating elements are not
3164  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3165    
3166  /\l/I  /\l/I
3167  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3168    
3169  /\L/I  /\L/I
3170  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3171    
3172  /\N{name}/I  /\N{name}/I
3173  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3174    
3175  /\u/I  /\u/I
3176  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3177    
3178  /\U/I  /\U/I
3179  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3180    
3181  /[/I  /[/I
3182  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3224  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 3288  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 3301  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 3357  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 3375  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 3441  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 3560  Need char = 'f' Line 3531  Need char = 'f'
3531    1    ^    ^     f    1    ^    ^     f
3532   0: abcdef   0: abcdef
3533    
3534  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3535    Capturing subpattern count = 0
3536    No options
3537    No first char
3538    Need char = 'f'
3539    Subject length lower bound = 7
3540    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3541        1234abcdef
3542    --->1234abcdef
3543      1 ^              \d
3544      1  ^             \d
3545      1   ^            \d
3546      1    ^           \d
3547      2    ^   ^       d
3548     0: 4abcdef
3549        *** Failers
3550    No match
3551        abcdef
3552    No match
3553    
3554    /(?C1)\dabc(?C2)def/ISS
3555  Capturing subpattern count = 0  Capturing subpattern count = 0
3556  No options  No options
3557  No first char  No first char
# Line 3649  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 3682  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 3796  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 3817  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 3927  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 3964  Need char = '<' Line 3945  Need char = '<'
3945          Bra          Bra
3946          CBra 1          CBra 1
3947          a          a
         Once  
3948          Recurse          Recurse
         Ket  
3949          b          b
3950          Ket          Ket
3951          Ket          Ket
# Line 4187  Need char = 'a' Line 4166  Need char = 'a'
4166          Any          Any
4167          \1          \1
4168          bbb          bbb
         Once  
4169          Recurse          Recurse
         Ket  
4170          d          d
4171          Ket          Ket
4172          End          End
# Line 4210  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 4309  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 4316  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 4323  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 4399  Minimum match() recursion limit = 6 Line 4380  Minimum match() recursion limit = 6
4380   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4381    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4382  Minimum match() limit = 32768  Minimum match() limit = 32768
4383  Minimum match() recursion limit = 42  Minimum match() recursion limit = 29
4384  No match  No match
4385    
4386  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4474  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 4492  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 4561  Need char = ']' Line 4544  Need char = ']'
4544          a          a
4545          CBra 2          CBra 2
4546          b          b
         Once  
4547          Recurse          Recurse
         Ket  
4548          c          c
4549          Ket          Ket
4550          Ket          Ket
# Line 4571  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 4583  No need char Line 4565  No need char
4565          a          a
4566          CBra 2          CBra 2
4567          b          b
         Once  
4568          Recurse          Recurse
         Ket  
4569          c          c
4570          Ket          Ket
4571          KetRmax          KetRmax
# Line 4593  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 4606  No need char Line 4587  No need char
4587          a          a
4588          CBra 2          CBra 2
4589          b          b
         Once  
4590          Recurse          Recurse
         Ket  
4591          c          c
4592          Ket          Ket
4593          Ket          Ket
# Line 4617  No need char Line 4596  No need char
4596          a          a
4597          CBra 2          CBra 2
4598          b          b
         Once  
4599          Recurse          Recurse
         Ket  
4600          c          c
4601          Ket          Ket
4602          Ket          Ket
# Line 4628  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 4635  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 4758  Need char = 'e' Line 4734  Need char = 'e'
4734   +4 ^   ^      e   +4 ^   ^      e
4735  No match  No match
4736    
4737  /a*b/ICDZ  /a*b/ICDZS
4738    ------------------------------------------------------------------
4739            Bra
4740            Callout 255 0 2
4741            a*+
4742            Callout 255 2 1
4743            b
4744            Callout 255 3 0
4745            Ket
4746            End
4747    ------------------------------------------------------------------
4748    Capturing subpattern count = 0
4749    Options:
4750    No first char
4751    Need char = 'b'
4752    Subject length lower bound = 1
4753    Starting byte set: a b
4754      ab
4755    --->ab
4756     +0 ^      a*
4757     +2 ^^     b
4758     +3 ^ ^
4759     0: ab
4760      aaaab
4761    --->aaaab
4762     +0 ^         a*
4763     +2 ^   ^     b
4764     +3 ^    ^
4765     0: aaaab
4766      aaaacb
4767    --->aaaacb
4768     +0 ^          a*
4769     +2 ^   ^      b
4770     +0  ^         a*
4771     +2  ^  ^      b
4772     +0   ^        a*
4773     +2   ^ ^      b
4774     +0    ^       a*
4775     +2    ^^      b
4776     +0      ^     a*
4777     +2      ^     b
4778     +3      ^^
4779     0: b
4780    
4781    /a*b/ICDZSS
4782  ------------------------------------------------------------------  ------------------------------------------------------------------
4783          Bra          Bra
4784          Callout 255 0 2          Callout 255 0 2
# Line 4841  Need char = 'b' Line 4861  Need char = 'b'
4861   +2    ^^      b   +2    ^^      b
4862  No match  No match
4863    
4864  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4865  ------------------------------------------------------------------  ------------------------------------------------------------------
4866          Bra          Bra
4867          Callout 255 0 9          Callout 255 0 9
# Line 4872  Capturing subpattern count = 1 Line 4892  Capturing subpattern count = 1
4892  Options:  Options:
4893  No first char  No first char
4894  Need char = 'x'  Need char = 'x'
4895    Subject length lower bound = 4
4896    Starting byte set: a d
4897    abcx    abcx
4898  --->abcx  --->abcx
4899   +0 ^        (abc|def)   +0 ^        (abc|def)
# Line 4895  Need char = 'x' Line 4917  Need char = 'x'
4917  +10 ^   ^  +10 ^   ^
4918   0: defx   0: defx
4919   1: def   1: def
4920      ** Failers
4921    No match
4922    abcdefzx    abcdefzx
4923  --->abcdefzx  --->abcdefzx
4924   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4904  Need char = 'x' Line 4928  Need char = 'x'
4928   +4 ^  ^         |   +4 ^  ^         |
4929   +9 ^  ^         x   +9 ^  ^         x
4930   +5 ^            d   +5 ^            d
  +0  ^           (abc|def)  
  +1  ^           a  
  +5  ^           d  
  +0   ^          (abc|def)  
  +1   ^          a  
  +5   ^          d  
4931   +0    ^         (abc|def)   +0    ^         (abc|def)
4932   +1    ^         a   +1    ^         a
4933   +5    ^         d   +5    ^         d
# Line 4917  Need char = 'x' Line 4935  Need char = 'x'
4935   +7    ^ ^       f   +7    ^ ^       f
4936   +8    ^  ^      )   +8    ^  ^      )
4937   +9    ^  ^      x   +9    ^  ^      x
  +0     ^        (abc|def)  
  +1     ^        a  
  +5     ^        d  
  +0      ^       (abc|def)  
  +1      ^       a  
  +5      ^       d  
  +0       ^      (abc|def)  
  +1       ^      a  
  +5       ^      d  
  +0        ^     (abc|def)  
  +1        ^     a  
  +5        ^     d  
4938  No match  No match
4939    
4940  /(ab|cd){3,4}/IC  /(abc|def)x/ICDZSS
4941    ------------------------------------------------------------------
4942            Bra
4943            Callout 255 0 9
4944            CBra 1
4945            Callout 255 1 1
4946            a
4947            Callout 255 2 1
4948            b
4949            Callout 255 3 1
4950            c
4951            Callout 255 4 0
4952            Alt
4953            Callout 255 5 1
4954            d
4955            Callout 255 6 1
4956            e
4957            Callout 255 7 1
4958            f
4959            Callout 255 8 0
4960            Ket
4961            Callout 255 9 1
4962            x
4963            Callout 255 10 0
4964            Ket
4965            End
4966    ------------------------------------------------------------------
4967  Capturing subpattern count = 1  Capturing subpattern count = 1
4968  Options:  Options:
4969  No first char  No first char
4970  No need char  Need char = 'x'
4971    ababab    abcx
4972  --->ababab  --->abcx
4973     +0 ^        (abc|def)
4974     +1 ^        a
4975     +2 ^^       b
4976     +3 ^ ^      c
4977     +4 ^  ^     |
4978     +9 ^  ^     x
4979    +10 ^   ^
4980     0: abcx
4981     1: abc
4982      defx
4983    --->defx
4984     +0 ^        (abc|def)
4985     +1 ^        a
4986     +5 ^        d
4987     +6 ^^       e
4988     +7 ^ ^      f
4989     +8 ^  ^     )
4990     +9 ^  ^     x
4991    +10 ^   ^
4992     0: defx
4993     1: def
4994      ** Failers
4995    No match
4996      abcdefzx
4997    --->abcdefzx
4998     +0 ^            (abc|def)
4999     +1 ^            a
5000     +2 ^^           b
5001     +3 ^ ^          c
5002     +4 ^  ^         |
5003     +9 ^  ^         x
5004     +5 ^            d
5005     +0  ^           (abc|def)
5006     +1  ^           a
5007     +5  ^           d
5008     +0   ^          (abc|def)
5009     +1   ^          a
5010     +5   ^          d
5011     +0    ^         (abc|def)
5012     +1    ^         a
5013     +5    ^         d
5014     +6    ^^        e
5015     +7    ^ ^       f
5016     +8    ^  ^      )
5017     +9    ^  ^      x
5018     +0     ^        (abc|def)
5019     +1     ^        a
5020     +5     ^        d
5021     +0      ^       (abc|def)
5022     +1      ^       a
5023     +5      ^       d
5024     +0       ^      (abc|def)
5025     +1       ^      a
5026     +5       ^      d
5027     +0        ^     (abc|def)
5028     +1        ^     a
5029     +5        ^     d
5030    No match
5031    
5032    /(ab|cd){3,4}/IC
5033    Capturing subpattern count = 1
5034    Options:
5035    No first char
5036    No need char
5037      ababab
5038    --->ababab
5039   +0 ^          (ab|cd){3,4}   +0 ^          (ab|cd){3,4}
5040   +1 ^          a   +1 ^          a
5041   +2 ^^         b   +2 ^^         b
# Line 4995  No need char Line 5093  No need char
5093   0: abcdcdcd   0: abcdcdcd
5094   1: cd   1: cd
5095    
5096  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5097    ------------------------------------------------------------------
5098            Bra
5099            Callout 255 0 14
5100            CBra 1
5101            Callout 255 1 4
5102            [ab]
5103            Callout 255 5 1
5104            {
5105            Callout 255 6 1
5106            ,
5107            Callout 255 7 1
5108            4
5109            Callout 255 8 1
5110            }
5111            Callout 255 9 1
5112            c
5113            Callout 255 10 0
5114            Alt
5115            Callout 255 11 1
5116            x
5117            Callout 255 12 1
5118            y
5119            Callout 255 13 0
5120            Ket
5121            Callout 255 14 0
5122            Ket
5123            End
5124    ------------------------------------------------------------------
5125    Capturing subpattern count = 1
5126    Options:
5127    No first char
5128    No need char
5129    Subject length lower bound = 2
5130    Starting byte set: a b x
5131        Note: that { does NOT introduce a quantifier
5132    --->Note: that { does NOT introduce a quantifier
5133     +0         ^                                        ([ab]{,4}c|xy)
5134     +1         ^                                        [ab]
5135     +5         ^^                                       {
5136    +11         ^                                        x
5137     +0                                 ^                ([ab]{,4}c|xy)
5138     +1                                 ^                [ab]
5139     +5                                 ^^               {
5140    +11                                 ^                x
5141     +0                                     ^            ([ab]{,4}c|xy)
5142     +1                                     ^            [ab]
5143     +5                                     ^^           {
5144    +11                                     ^            x
5145    No match
5146    
5147    /([ab]{,4}c|xy)/ICDZSS
5148  ------------------------------------------------------------------  ------------------------------------------------------------------
5149          Bra          Bra
5150          Callout 255 0 14          Callout 255 0 14
# Line 5176  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 5189  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 5202  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 5215  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 5229  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 5282  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 5290  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 5298  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 5447  No match Line 5601  No match
5601      123456\P      123456\P
5602  No match  No match
5603    
5604  /abc/I>testsavedregex  /abc/IS>testsavedregex
5605    Capturing subpattern count = 0
5606    No options
5607    First char = 'a'
5608    Need char = 'c'
5609    Subject length lower bound = 3
5610    No set of starting bytes
5611    Compiled pattern written to testsavedregex
5612    Study data written to testsavedregex
5613    <testsavedregex
5614    Compiled pattern loaded from testsavedregex
5615    Study data loaded from testsavedregex
5616        abc
5617     0: abc
5618        ** Failers
5619    No match
5620        bca
5621    No match
5622    
5623    /abc/ISS>testsavedregex
5624  Capturing subpattern count = 0  Capturing subpattern count = 0
5625  No options  No options
5626  First char = 'a'  First char = 'a'
5627  Need char = 'c'  Need char = 'c'
5628  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5629  <testsavedregex  <testsavedregex
5630  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5631  No study data  No study data
5632      abc      abc
5633   0: abc   0: abc
# Line 5463  No match Line 5636  No match
5636      bca      bca
5637  No match  No match
5638    
5639  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5640    Capturing subpattern count = 0
5641    No options
5642    First char = 'a'
5643    Need char = 'c'
5644    Subject length lower bound = 3
5645    No set of starting bytes
5646    Compiled pattern written to testsavedregex
5647    Study data written to testsavedregex
5648    <testsavedregex
5649    Compiled pattern (byte-inverted) loaded from testsavedregex
5650    Study data loaded from testsavedregex
5651        abc
5652     0: abc
5653        ** Failers
5654    No match
5655        bca
5656    No match
5657    
5658    /abc/IFSS>testsavedregex
5659  Capturing subpattern count = 0  Capturing subpattern count = 0
5660  No options  No options
5661  First char = 'a'  First char = 'a'
5662  Need char = 'c'  Need char = 'c'
5663  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5664  <testsavedregex  <testsavedregex
5665  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5666  No study data  No study data
5667      abc      abc
5668   0: abc   0: abc
# Line 5486  No first char Line 5678  No first char
5678  No need char  No need char
5679  Subject length lower bound = 1  Subject length lower bound = 1
5680  Starting byte set: a b  Starting byte set: a b
5681  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5682  Study data written to testsavedregex  Study data written to testsavedregex
5683  <testsavedregex  <testsavedregex
5684  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5685  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5686      abc      abc
5687   0: a   0: a
# Line 5500  Study data loaded from testsavedregex Line 5692  Study data loaded from testsavedregex
5692      def      def
5693  No match  No match
5694    
5695    /(a|b)/ISS>testsavedregex
5696    Capturing subpattern count = 1
5697    No options
5698    No first char
5699    No need char
5700    Compiled pattern written to testsavedregex
5701    <testsavedregex
5702    Compiled pattern loaded from testsavedregex
5703    No study data
5704        abc
5705     0: a
5706     1: a
5707        ** Failers
5708     0: a
5709     1: a
5710        def
5711    No match
5712    
5713  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5714  Capturing subpattern count = 1  Capturing subpattern count = 1
5715  No options  No options
# Line 5507  No first char Line 5717  No first char
5717  No need char  No need char
5718  Subject length lower bound = 1  Subject length lower bound = 1
5719  Starting byte set: a b  Starting byte set: a b
5720  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5721  Study data written to testsavedregex  Study data written to testsavedregex
5722  <testsavedregex  <testsavedregex
5723  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5724  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5725      abc      abc
5726   0: a   0: a
# Line 5521  Study data loaded from testsavedregex Line 5731  Study data loaded from testsavedregex
5731      def      def
5732  No match  No match
5733    
5734    /(a|b)/ISSF>testsavedregex
5735    Capturing subpattern count = 1
5736    No options
5737    No first char
5738    No need char
5739    Compiled pattern written to testsavedregex
5740    <testsavedregex
5741    Compiled pattern (byte-inverted) loaded from testsavedregex
5742    No study data
5743        abc
5744     0: a
5745     1: a
5746        ** Failers
5747     0: a
5748     1: a
5749        def
5750    No match
5751    
5752  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5753  Capturing subpattern count = 3  Capturing subpattern count = 3
5754  Max back reference = 1  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 5576  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 5830  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 5842  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 5852  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 5862  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 5874  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 5886  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 5934  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 6010  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 6042  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 6210  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 6330  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 6339  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 6386  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
# Line 6644  No match Line 6858  No match
6858  ------------------------------------------------------------------  ------------------------------------------------------------------
6859          Bra          Bra
6860          ^          ^
6861          a*       /i a*
6862       NC A       /i A
6863          \d          \d
6864          Ket          Ket
6865          End          End
# Line 7273  Matched, but too many substrings Line 7487  Matched, but too many substrings
7487  /[^a]+a/BZi  /[^a]+a/BZi
7488  ------------------------------------------------------------------  ------------------------------------------------------------------
7489          Bra          Bra
7490          [^A]++       /i [^a]++
7491       NC a       /i a
7492          Ket          Ket
7493          End          End
7494  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7282  Matched, but too many substrings Line 7496  Matched, but too many substrings
7496  /[^a]+A/BZi  /[^a]+A/BZi
7497  ------------------------------------------------------------------  ------------------------------------------------------------------
7498          Bra          Bra
7499          [^A]++       /i [^a]++
7500       NC A       /i A
7501          Ket          Ket
7502          End          End
7503  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7309  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 7451  No match Line 7665  No match
7665  ------------------------------------------------------------------  ------------------------------------------------------------------
7666          Bra          Bra
7667          ^          ^
7668          [a-z]+          [a-z]++
7669          Ket          Ket
7670          End          End
7671  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7478  No match Line 7692  No match
7692  ------------------------------------------------------------------  ------------------------------------------------------------------
7693          Bra          Bra
7694          ^          ^
         Once  
7695          Recurse          Recurse
         Ket  
7696          [()]          [()]
7697          CBra 1          CBra 1
7698          Ket          Ket
# Line 7494  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 7514  No match Line 7726  No match
7726  ------------------------------------------------------------------  ------------------------------------------------------------------
7727          Bra          Bra
7728          ^          ^
         Once  
7729          Recurse          Recurse
         Ket  
7730          ()          ()
7731          CBra 1          CBra 1
7732          Ket          Ket
# Line 7528  No match Line 7738  No match
7738  ------------------------------------------------------------------  ------------------------------------------------------------------
7739          Bra          Bra
7740          ^          ^
         Once  
7741          Recurse          Recurse
         Ket  
7742          [(\]a]          [(\]a]
7743          CBra 1          CBra 1
7744          Ket          Ket
# Line 7543  No match Line 7751  No match
7751  ------------------------------------------------------------------  ------------------------------------------------------------------
7752          Bra          Bra
7753          ^          ^
         Once  
7754          Recurse          Recurse
         Ket  
7755          CBra 1          CBra 1
7756          Ket          Ket
7757          Ket          Ket
# Line 7560  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 7677  Options: extended Line 7884  Options: extended
7884  First char = 'x'  First char = 'x'
7885  Need char = 'z'  Need char = 'z'
7886    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7887  /(a|)*\d/  /(a|)*\d/
7888    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7889  No match  No match
# Line 7997  No match Line 8201  No match
8201          Alt          Alt
8202          c          c
8203          Ket          Ket
         Once  
8204          Recurse          Recurse
8205          Ket          Ket
         Ket  
8206          End          End
8207  ------------------------------------------------------------------  ------------------------------------------------------------------
8208      abc      abc
# Line 8011  No match Line 8213  No match
8213  ------------------------------------------------------------------  ------------------------------------------------------------------
8214          Bra          Bra
8215          xy          xy
         Once  
8216          Recurse          Recurse
         Ket  
8217          CBra 1          CBra 1
8218          abc          abc
8219          Ket          Ket
# Line 8243  Failed: syntax error in subpattern name Line 8443  Failed: syntax error in subpattern name
8443   3: <unset>   3: <unset>
8444   4: x   4: x
8445    
 /[\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  
 ------------------------------------------------------------------  
   
8446  /\H++X/BZ  /\H++X/BZ
8447  ------------------------------------------------------------------  ------------------------------------------------------------------
8448          Bra          Bra
# Line 8463  No match Line 8603  No match
8603          \d          \d
8604          \v++          \v++
8605          \w          \w
8606          \v+          \v++
8607          \S          \S
8608          \v++          \v++
8609          \V          \V
# Line 8494  No match Line 8634  No match
8634  ------------------------------------------------------------------  ------------------------------------------------------------------
8635    
8636  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8637  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8638   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8639    
8640  /[\E]AAA/  /[\E]AAA/
# Line 8561  No match Line 8701  No match
8701   +6 ^      ^    (*FAIL)   +6 ^      ^    (*FAIL)
8702   +6 ^     ^     (*FAIL)   +6 ^     ^     (*FAIL)
8703   +6 ^    ^      (*FAIL)   +6 ^    ^      (*FAIL)
  +4 ^  ^        c+  
  +2 ^ ^         b?  
  +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+  
  +2  ^^         b?  
  +4  ^^         c+  
8710   +0   ^         a+   +0   ^         a+
8711   +2   ^^        b?   +2   ^^        b?
8712   +4   ^ ^       c+   +4   ^ ^       c+
8713   +6   ^    ^    (*FAIL)   +6   ^    ^    (*FAIL)
8714   +6   ^   ^     (*FAIL)   +6   ^   ^     (*FAIL)
8715   +6   ^  ^      (*FAIL)   +6   ^  ^      (*FAIL)
  +4   ^^        c+  
8716  No match  No match
8717    
8718  /a+b?(*PRUNE)c+(*FAIL)/C  /a+b?(*PRUNE)c+(*FAIL)/C
# Line 8676  Failed: number is too big at offset 19 Line 8807  Failed: number is too big at offset 19
8807  /\g6666666666/  /\g6666666666/
8808  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8809    
8810  /[\g6666666666]/  /[\g6666666666]/BZ
8811  Failed: number is too big at offset 12  ------------------------------------------------------------------
8812            Bra
8813            [6g]
8814            Ket
8815            End
8816    ------------------------------------------------------------------
8817    
8818  /(?1)\c[/  /(?1)\c[/
8819  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8700  No match Line 8836  No match
8836   1: \x0a   1: \x0a
8837    
8838  /a(*CR)b/  /a(*CR)b/
8839  Failed: (*VERB) not recognized at offset 5  Failed: (*VERB) not recognized or malformed at offset 5
8840    
8841  /(*CR)a.b/  /(*CR)a.b/
8842      a\nb      a\nb
# Line 8757  No match Line 8893  No match
8893  No match  No match
8894      a\x85b      a\x85b
8895  No match  No match
8896    
8897    /(*ANY).*/g
8898        abc\r\ndef
8899     0: abc
8900     0:
8901     0: def
8902     0:
8903    
8904    /(*ANYCRLF).*/g
8905        abc\r\ndef
8906     0: abc
8907     0:
8908     0: def
8909     0:
8910    
8911    /(*CRLF).*/g
8912        abc\r\ndef
8913     0: abc
8914     0:
8915     0: def
8916     0:
8917    
8918  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8919  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 8962  Failed: subpattern name expected at offs Line 9119  Failed: subpattern name expected at offs
9119  /\k{}/  /\k{}/
9120  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9121    
9122    /\k/
9123    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9124    
9125    /\kabc/
9126    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9127    
9128  /(?P=)/  /(?P=)/
9129  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9130    
# Line 9134  Starting byte set: x y z Line 9297  Starting byte set: x y z
9297    
9298  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
9299  Capturing subpattern count = 0  Capturing subpattern count = 0
9300    May match empty string
9301  Options:  Options:
9302  No first char  No first char
9303  No need char  No need char
# Line 9146  No need char Line 9310  No need char
9310   +7 ^ ^     b   +7 ^ ^     b
9311   +7 ^^      b   +7 ^^      b
9312   +7 ^       b   +7 ^       b
9313    +11 ^       ^
9314  +12 ^       )  +12 ^       )
9315  +13 ^  +13 ^
9316   0:   0:
# Line 9183  No options Line 9348  No options
9348  First char at start or follows newline  First char at start or follows newline
9349  No need char  No need char
9350    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9351  /xyz/C  /xyz/C
9352    xyz    xyz
9353  --->xyz  --->xyz
# Line 9243  No match Line 9400  No match
9400   +0        ^     x   +0        ^     x
9401   +0         ^    x   +0         ^    x
9402  No match  No match
9403    
9404    /(*NO_START_OPT)xyz/C
9405      abcxyz
9406    --->abcxyz
9407    +15 ^          x
9408    +15  ^         x
9409    +15   ^        x
9410    +15    ^       x
9411    +16    ^^      y
9412    +17    ^ ^     z
9413    +18    ^  ^
9414     0: xyz
9415    
9416    /xyz/CY
9417      abcxyz
9418    --->abcxyz
9419     +0 ^          x
9420     +0  ^         x
9421     +0   ^        x
9422     +0    ^       x
9423     +1    ^^      y
9424     +2    ^ ^     z
9425     +3    ^  ^
9426     0: xyz
9427    
9428  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9429      "ab"      "ab"
# Line 9260  No match Line 9441  No match
9441   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9442   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9443   +8 ^ ^      [a]   +8 ^ ^      [a]
9444    +17 ^ ^      |
9445  +21 ^ ^      "  +21 ^ ^      "
9446  +18 ^ ^      b  +18 ^ ^      b
9447  +19 ^  ^     )  +19 ^  ^     )
9448   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9449   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9450   +8 ^  ^     [a]   +8 ^  ^     [a]
9451    +17 ^  ^     |
9452  +21 ^  ^     "  +21 ^  ^     "
9453  +22 ^   ^    $  +22 ^   ^    $
9454  +23 ^   ^  +23 ^   ^
# Line 9561  Partial match: the cat Line 9744  Partial match: the cat
9744     abc\P\P     abc\P\P
9745   0: abc   0: abc
9746    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9747  /abc\K123/  /abc\K123/
9748      xyzabc123pqr      xyzabc123pqr
9749   0: 123   0: 123
# Line 9581  Partial match: abc12 Line 9756  Partial match: abc12
9756      xyzabc123pqr      xyzabc123pqr
9757   0: 123   0: 123
9758      xyzabc12\P      xyzabc12\P
9759  Partial match: abc12  Partial match at offset 6: abc12
9760      xyzabc12\P\P      xyzabc12\P\P
9761  Partial match: abc12  Partial match at offset 6: abc12
9762    
9763  /\babc\b/  /\babc\b/
9764      +++abc+++      +++abc+++
9765   0: abc   0: abc
9766      +++ab\P      +++ab\P
9767  Partial match: +ab  Partial match at offset 3: +ab
9768      +++ab\P\P      +++ab\P\P
9769  Partial match: +ab  Partial match at offset 3: +ab
9770    
9771  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9772  ------------------------------------------------------------------  ------------------------------------------------------------------
9773          Bra          Bra
         Once  
9774          Recurse          Recurse
         Ket  
         Once  
9775          Recurse          Recurse
         Ket  
9776          Cond          Cond
9777          Cond def          Cond def
9778          CBra 1          CBra 1
# Line 9622  Partial match: +ab Line 9793  Partial match: +ab
9793  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9794  ------------------------------------------------------------------  ------------------------------------------------------------------
9795          Bra          Bra
         Once  
9796          Recurse          Recurse
         Ket  
         Once  
9797          Recurse          Recurse
         Ket  
9798          Cond          Cond
9799          Cond def          Cond def
9800          CBra 1          CBra 1
# Line 9969  Need char = ':' Line 10136  Need char = ':'
10136  Subject length lower bound = 22  Subject length lower bound = 22
10137  No set of starting bytes  No set of starting bytes
10138    
 /  (?: [\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  
   
10139  /<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
10140  Capturing subpattern count = 11  Capturing subpattern count = 11
10141  Options: caseless dotall  Options: caseless dotall
# Line 10184  No set of starting bytes Line 10147  No set of starting bytes
10147  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10148  Capturing subpattern count = 0  Capturing subpattern count = 0
10149  No options  No options
10150  First char at start or follows newline  No first char
10151  Need char = 'o'  Need char = 'o'
10152  Subject length lower bound = 4  Subject length lower bound = 4
10153  No set of starting bytes  No set of starting bytes
# Line 10246  No set of starting bytes Line 10209  No set of starting bytes
10209  Capturing subpattern count = 1  Capturing subpattern count = 1
10210  Named capturing subpatterns:  Named capturing subpatterns:
10211    a   1    a   1
   a   1  
10212  No options  No options
10213  No first char  No first char
10214  No need char  No need char
# Line 10319  No match Line 10281  No match
10281          Ket          Ket
10282          Ket          Ket
10283          Cond          Cond
10284        4 Cond nref          Cond ref <D>2
10285          X          X
10286          Alt          Alt
10287          Y          Y
# Line 10365  No match Line 10327  No match
10327          CBra 4          CBra 4
10328          d          d
10329          Cond          Cond
10330          Cond nrecurse 1          Cond recurse <A>2
10331          $          $
10332          Alt          Alt
         Once  
10333          Recurse          Recurse
10334          Ket          Ket
10335          Ket          Ket
10336          Ket          Ket
         Ket  
10337          End          End
10338  ------------------------------------------------------------------  ------------------------------------------------------------------
10339  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 10429  Partial match: abca Line 10389  Partial match: abca
10389      xxxxabcde\P\P      xxxxabcde\P\P
10390  Partial match: abcde  Partial match: abcde
10391    
10392  /-- This is not in the Perl 5.10 test because Perl seems currently to be broken  /-- This is not in the Perl-compatible test because Perl seems currently to be
10393      and not behaving as specified in that it *does* bumpalong after hitting      broken and not behaving as specified in that it *does* bumpalong after
10394      (*COMMIT). --/      hitting (*COMMIT). --/
10395    
10396  /(?1)(A(*COMMIT)|B)D/  /(?1)(A(*COMMIT)|B)D/
10397      ABD      ABD
# Line 10511  Starting byte set: i Line 10471  Starting byte set: i
10471  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10472  ------------------------------------------------------------------  ------------------------------------------------------------------
10473          Bra          Bra
10474       NC a       /i a
      00 Opt  
10475          b          b
10476          Alt          Alt
      00 Opt  
10477          c          c
10478          Ket          Ket
10479          End          End
# Line 10534  No match Line 10492  No match
10492  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10493  ------------------------------------------------------------------  ------------------------------------------------------------------
10494          Bra          Bra
10495       NC a       /i ab
      05 Opt  
      NC b  
10496          Alt          Alt
10497       05 Opt       /i c
      NC c  
10498          Ket          Ket
10499          End          End
10500  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10547  No match Line 10502  No match
10502  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10503  ------------------------------------------------------------------  ------------------------------------------------------------------
10504          Bra          Bra
10505       NC a       /i a
      04 Opt  
10506          b          b
10507          Alt          Alt
      04 Opt  
10508          c          c
10509          Ket          Ket
10510          End          End
# Line 10598  No match Line 10551  No match
10551  ------------------------------------------------------------------  ------------------------------------------------------------------
10552          Bra          Bra
10553          ^          ^
10554          Once          Braposzero
10555          Brazero          SBraPos
         Once  
10556          Recurse          Recurse
10557          KetRmax          KetRpos
         Ket  
10558          Cond          Cond
10559          Cond def          Cond def
10560          CBra 1          CBra 1
# Line 10634  No match Line 10585  No match
10585          End          End
10586  ------------------------------------------------------------------  ------------------------------------------------------------------
10587    
10588  / -- 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  
10589       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
10590    
 /(?=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  
   
10591  /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
10592      ab      ab
10593   0: ab   0: ab
10594   1: ab   1: ab
10595    
 /----------------------/  
   
10596  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10597  Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
10598    
# Line 10681  Failed: an argument is not allowed for ( Line 10612  Failed: an argument is not allowed for (
10612      ACABX      ACABX
10613  No match  No match
10614    
10615  /--- 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
10616       is a bug in Perl. ---/       is a bug in Perl. ---/
10617    
10618  /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
# Line 10692  No match Line 10623  No match
10623      AC      AC
10624  No match  No match
10625    
10626  /--- 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,
10627       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". ---/  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /--- Check the use of names for success and failure. PCRE doesn't show these  
 names for success, though Perl does, contrary to its spec. ---/  
   
 /^(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)/K  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /(*MARK:A)(*THEN:B)(C|X)/K  
     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  
10628    
 /--- Mark names can be duplicated ---/  
   
 /A(*:A)B|X(*:A)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XY  
 MK: A  
   
10629  /^A(*:A)B|^X(*:A)Y/K  /^A(*:A)B|^X(*:A)Y/K
10630      ** Failers      ** Failers
10631  No match  No match
10632      XAQQ      XAQQ
10633  No match, mark = A  No match, mark = A
10634    
 /--- 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  
   
10635  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10636  optimizations defeat this. So does the PCRE optimization unless we disable it  optimizations defeat this. So does the PCRE optimization unless we disable it
10637  with \Y. ---/  with \Y. ---/
# Line 10850  No match Line 10644  No match
10644      DEFGABC\Y      DEFGABC\Y
10645  No match  No match
10646    
10647  /--- Repeat some tests with added studying. ---/  /^(ab (c+(*THEN)cd) | xyz)/x
10648        abcccd
 /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  
10649  No match  No match
10650    
10651  /^(A(*THEN:A)B|C(*THEN:B)D)/KS  /^(ab (c+(*PRUNE)cd) | xyz)/x
10652      AB      abcccd
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
10653  No match  No match
     CB  
 No match, mark = B  
10654    
10655  /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS  /^(ab (c+(*FAIL)cd) | xyz)/x
10656      AB      abcccd
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
10657  No match  No match
10658      AC  
10659  No match, mark = A  /--- Perl gets some of these wrong ---/
     CB  
 No match, mark = B  
10660    
10661  /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS  /(?>.(*ACCEPT))*?5/
10662      AB      abcde
10663   0: AB   0: a
  1: AB  
     CD  
  0: CD  
  1: CD  
10664    
10665  /A(*PRUNE:A)B/KS  /(.(*ACCEPT))*?5/
10666      ACAB      abcde
10667   0: AB   0: a
10668     1: a
10669    
10670  /(*MARK:A)(*PRUNE:B)(C|X)/KS  /(.(*ACCEPT))5/
10671      C      abcde
10672   0: C   0: a
10673   1: C   1: a
 MK: A  
     D  
 No match  
10674    
10675  /(*MARK:A)(*THEN:B)(C|X)/KS  /(.(*ACCEPT))*5/
10676      C      abcde
10677   0: C   0: a
10678   1: C   1: a
 MK: A  
     D  
 No match  
10679    
10680  /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS  /A\NB./BZ
10681      AAAC  ------------------------------------------------------------------
10682            Bra
10683            A
10684            Any
10685            B
10686            Any
10687            Ket
10688            End
10689    ------------------------------------------------------------------
10690        ACBD
10691     0: ACBD
10692        *** Failers
10693  No match  No match
10694        A\nB
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS  
     AAAC  
10695  No match  No match
10696        ACB\n
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS  
     AAAC  
10697  No match  No match
10698    
10699  /A(*:A)A+(*SKIP)(B|Z) | AC/xKS  /A\NB./sBZ
10700      AAAC  ------------------------------------------------------------------
10701            Bra
10702            A
10703            Any
10704            B
10705            AllAny
10706            Ket
10707            End
10708    ------------------------------------------------------------------
10709        ACBD
10710     0: ACBD
10711        ACB\n
10712     0: ACB\x0a
10713        *** Failers
10714  No match  No match
10715        A\nB
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS  
     AAAC  
10716  No match  No match
10717    
10718  /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS  /A\NB/<crlf>
10719      AAAC      A\nB
10720  No match   0: A\x0aB
10721        A\rB
10722  /A(*:A)B|XX(*:B)Y/KS   0: A\x0dB
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
10723      ** Failers      ** Failers
10724  No match  No match
10725      XAQQ      A\r\nB
10726  No match  No match
10727      XAQQXZZ  
10728    /\R+b/BZ
10729    ------------------------------------------------------------------
10730            Bra
10731            \R++
10732            b
10733            Ket
10734            End
10735    ------------------------------------------------------------------
10736    
10737    /\R+\n/BZ
10738    ------------------------------------------------------------------
10739            Bra
10740            \R+
10741            \x0a
10742            Ket
10743            End
10744    ------------------------------------------------------------------
10745    
10746    /\R+\d/BZ
10747    ------------------------------------------------------------------
10748            Bra
10749            \R++
10750            \d
10751            Ket
10752            End
10753    ------------------------------------------------------------------
10754    
10755    /\d*\R/BZ
10756    ------------------------------------------------------------------
10757            Bra
10758            \d*+
10759            \R
10760            Ket
10761            End
10762    ------------------------------------------------------------------
10763    
10764    /\s*\R/BZ
10765    ------------------------------------------------------------------
10766            Bra
10767            \s*
10768            \R
10769            Ket
10770            End
10771    ------------------------------------------------------------------
10772        \x20\x0a
10773     0:  \x0a
10774        \x20\x0d
10775     0:  \x0d
10776        \x20\x0d\x0a
10777     0:  \x0d\x0a
10778    
10779    /\S*\R/BZ
10780    ------------------------------------------------------------------
10781            Bra
10782            \S*+
10783            \R
10784            Ket
10785            End
10786    ------------------------------------------------------------------
10787        a\x0a
10788     0: a\x0a
10789    
10790    /X\h*\R/BZ
10791    ------------------------------------------------------------------
10792            Bra
10793            X
10794            \h*+
10795            \R
10796            Ket
10797            End
10798    ------------------------------------------------------------------
10799        X\x20\x0a
10800     0: X \x0a
10801    
10802    /X\H*\R/BZ
10803    ------------------------------------------------------------------
10804            Bra
10805            X
10806            \H*
10807            \R
10808            Ket
10809            End
10810    ------------------------------------------------------------------
10811        X\x0d\x0a
10812     0: X\x0d\x0a
10813    
10814    /X\H+\R/BZ
10815    ------------------------------------------------------------------
10816            Bra
10817            X
10818            \H+
10819            \R
10820            Ket
10821            End
10822    ------------------------------------------------------------------
10823        X\x0d\x0a
10824     0: X\x0d\x0a
10825    
10826    /X\H++\R/BZ
10827    ------------------------------------------------------------------
10828            Bra
10829            X
10830            \H++
10831            \R
10832            Ket
10833            End
10834    ------------------------------------------------------------------
10835        X\x0d\x0a
10836  No match  No match
10837      AXQQQ  
10838    /(?<=abc)def/
10839        abc\P\P
10840    Partial match at offset 3: abc
10841    
10842    /abc$/
10843        abc
10844     0: abc
10845        abc\P
10846     0: abc
10847        abc\P\P
10848    Partial match: abc
10849    
10850    /abc$/m
10851        abc
10852     0: abc
10853        abc\n
10854     0: abc
10855        abc\P\P
10856    Partial match: abc
10857        abc\n\P\P
10858     0: abc
10859        abc\P
10860     0: abc
10861        abc\n\P
10862     0: abc
10863    
10864    /abc\z/
10865        abc
10866     0: abc
10867        abc\P
10868     0: abc
10869        abc\P\P
10870    Partial match: abc
10871    
10872    /abc\Z/
10873        abc
10874     0: abc
10875        abc\P
10876     0: abc
10877        abc\P\P
10878    Partial match: abc
10879    
10880    /abc\b/
10881        abc
10882     0: abc
10883        abc\P
10884     0: abc
10885        abc\P\P
10886    Partial match: abc
10887    
10888    /abc\B/
10889        abc
10890  No match  No match
10891      AXXQQQ      abc\P
10892    Partial match: abc
10893        abc\P\P
10894    Partial match: abc
10895    
10896    /.+/
10897        abc\>0
10898     0: abc
10899        abc\>1
10900     0: bc
10901        abc\>2
10902     0: c
10903        abc\>3
10904  No match  No match
10905        abc\>4
10906  /(*COMMIT)ABC/  Error -24 (bad offset value)
10907      ABCDEFG      abc\>-4
10908   0: ABC  Error -24 (bad offset value)
10909      ** Failers  
10910    /^\cģ/
10911    Failed: \c must be followed by an ASCII character at offset 3
10912    
10913    /(?P<abn>(?P=abn)xxx)/BZ
10914    ------------------------------------------------------------------
10915            Bra
10916            Once
10917            CBra 1
10918            \1
10919            xxx
10920            Ket
10921            Ket
10922            Ket
10923            End
10924    ------------------------------------------------------------------
10925    
10926    /(a\1z)/BZ
10927    ------------------------------------------------------------------
10928            Bra
10929            Once
10930            CBra 1
10931            a
10932            \1
10933            z
10934            Ket
10935            Ket
10936            Ket
10937            End
10938    ------------------------------------------------------------------
10939    
10940    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10941    Failed: syntax error in subpattern name (missing terminator) at offset 29
10942    
10943    /(?P<abn>(?P=axn)xxx)/BZ
10944    Failed: reference to non-existent subpattern at offset 15
10945    
10946    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10947    ------------------------------------------------------------------
10948            Bra
10949            CBra 1
10950            \2
10951            xxx
10952            Ket
10953            CBra 2
10954            yy
10955            Ket
10956            Ket
10957            End
10958    ------------------------------------------------------------------
10959    
10960    /-- These tests are here because Perl gets the first one wrong. --/
10961    
10962    /(\R*)(.)/s
10963        \r\n
10964     0: \x0d
10965     1:
10966     2: \x0d
10967        \r\r\n\n\r
10968     0: \x0d\x0d\x0a\x0a\x0d
10969     1: \x0d\x0d\x0a\x0a
10970     2: \x0d
10971        \r\r\n\n\r\n
10972     0: \x0d\x0d\x0a\x0a\x0d
10973     1: \x0d\x0d\x0a\x0a
10974     2: \x0d
10975    
10976    /(\R)*(.)/s
10977        \r\n
10978     0: \x0d
10979     1: <unset>
10980     2: \x0d
10981        \r\r\n\n\r
10982     0: \x0d\x0d\x0a\x0a\x0d
10983     1: \x0a
10984     2: \x0d
10985        \r\r\n\n\r\n
10986     0: \x0d\x0d\x0a\x0a\x0d
10987     1: \x0a
10988     2: \x0d
10989    
10990    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10991        \r\n
10992     0: \x0d
10993     1:
10994     2: \x0d
10995        \r\r\n\n\r
10996     0: \x0d\x0d\x0a\x0a\x0d
10997     1: \x0d\x0d\x0a\x0a
10998     2: \x0d
10999        \r\r\n\n\r\n
11000     0: \x0d\x0d\x0a\x0a\x0d
11001     1: \x0d\x0d\x0a\x0a
11002     2: \x0d
11003    
11004    /-- --/
11005    
11006    /^abc$/BZ
11007    ------------------------------------------------------------------
11008            Bra
11009            ^
11010            abc
11011            $
11012            Ket
11013            End
11014    ------------------------------------------------------------------
11015    
11016    /^abc$/BZm
11017    ------------------------------------------------------------------
11018            Bra
11019         /m ^
11020            abc
11021         /m $
11022            Ket
11023            End
11024    ------------------------------------------------------------------
11025    
11026    /^(a)*+(\w)/S
11027        aaaaX
11028     0: aaaaX
11029     1: a
11030     2: X
11031        ** Failers
11032  No match  No match
11033      DEFGABC\Y      aaaa
11034  No match  No match
11035    
11036  /^(ab (c+(*THEN)cd) | xyz)/x  /^(?:a)*+(\w)/S
11037      abcccd      aaaaX
11038     0: aaaaX
11039     1: X
11040        ** Failers
11041  No match  No match
11042        aaaa
 /^(ab (c+(*PRUNE)cd) | xyz)/x  
     abcccd  
11043  No match  No match
11044    
11045  /^(ab (c+(*FAIL)cd) | xyz)/x  /(a)++1234/SDZ
11046      abcccd  ------------------------------------------------------------------
11047  No match          Bra
11048            CBraPos 1
11049  /--- Perl 5.11 gets some of these wrong ---/          a
11050            KetRpos
11051            1234
11052            Ket
11053            End
11054    ------------------------------------------------------------------
11055    Capturing subpattern count = 1
11056    No options
11057    First char = 'a'
11058    Need char = '4'
11059    Subject length lower bound = 5
11060    No set of starting bytes
11061    
11062  /(?>.(*ACCEPT))*?5/  /([abc])++1234/SI
11063      abcde  Capturing subpattern count = 1
11064   0: a  No options
11065    No first char
11066    Need char = '4'
11067    Subject length lower bound = 5
11068    Starting byte set: a b c
11069    
11070  /(.(*ACCEPT))*?5/  /(?<=(abc)+)X/
11071      abcde  Failed: lookbehind assertion is not fixed length at offset 10
  0: a  
  1: a  
11072    
11073  /(.(*ACCEPT))5/  /(^ab)/I
11074      abcde  Capturing subpattern count = 1
11075   0: a  Options: anchored
11076   1: a  No first char
11077    No need char
11078    
11079  /(.(*ACCEPT))*5/  /(^ab)++/I
11080      abcde  Capturing subpattern count = 1
11081   0: a  Options: anchored
11082   1: a  No first char
11083    No need char
11084    
11085    /(^ab|^)+/I
11086    Capturing subpattern count = 1
11087    May match empty string
11088    Options: anchored
11089    No first char
11090    No need char
11091    
11092    /(^ab|^)++/I
11093    Capturing subpattern count = 1
11094    May match empty string
11095    Options: anchored
11096    No first char
11097    No need char
11098    
11099    /(?:^ab)/I
11100    Capturing subpattern count = 0
11101    Options: anchored
11102    No first char
11103    No need char
11104    
11105    /(?:^ab)++/I
11106    Capturing subpattern count = 0
11107    Options: anchored
11108    No first char
11109    No need char
11110    
11111    /(?:^ab|^)+/I
11112    Capturing subpattern count = 0
11113    May match empty string
11114    Options: anchored
11115    No first char
11116    No need char
11117    
11118    /(?:^ab|^)++/I
11119    Capturing subpattern count = 0
11120    May match empty string
11121    Options: anchored
11122    No first char
11123    No need char
11124    
11125    /(.*ab)/I
11126    Capturing subpattern count = 1
11127    No options
11128    First char at start or follows newline
11129    Need char = 'b'
11130    
11131    /(.*ab)++/I
11132    Capturing subpattern count = 1
11133    No options
11134    First char at start or follows newline
11135    Need char = 'b'
11136    
11137    /(.*ab|.*)+/I
11138    Capturing subpattern count = 1
11139    May match empty string
11140    No options
11141    First char at start or follows newline
11142    No need char
11143    
11144    /(.*ab|.*)++/I
11145    Capturing subpattern count = 1
11146    May match empty string
11147    No options
11148    First char at start or follows newline
11149    No need char
11150    
11151    /(?:.*ab)/I
11152    Capturing subpattern count = 0
11153    No options
11154    First char at start or follows newline
11155    Need char = 'b'
11156    
11157    /(?:.*ab)++/I
11158    Capturing subpattern count = 0
11159    No options
11160    First char at start or follows newline
11161    Need char = 'b'
11162    
11163    /(?:.*ab|.*)+/I
11164    Capturing subpattern count = 0
11165    May match empty string
11166    No options
11167    First char at start or follows newline
11168    No need char
11169    
11170    /(?:.*ab|.*)++/I
11171    Capturing subpattern count = 0
11172    May match empty string
11173    No options
11174    First char at start or follows newline
11175    No need char
11176    
11177    /(?=a)[bcd]/I
11178    Capturing subpattern count = 0
11179    No options
11180    First char = 'a'
11181    No need char
11182    
11183    /((?=a))[bcd]/I
11184    Capturing subpattern count = 1
11185    No options
11186    First char = 'a'
11187    No need char
11188    
11189    /((?=a))+[bcd]/I
11190    Capturing subpattern count = 1
11191    No options
11192    First char = 'a'
11193    No need char
11194    
11195    /((?=a))++[bcd]/I
11196    Capturing subpattern count = 1
11197    No options
11198    First char = 'a'
11199    No need char
11200    
11201    /(?=a+)[bcd]/iI
11202    Capturing subpattern count = 0
11203    Options: caseless
11204    First char = 'a' (caseless)
11205    No need char
11206    
11207    /(?=a+?)[bcd]/iI
11208    Capturing subpattern count = 0
11209    Options: caseless
11210    First char = 'a' (caseless)
11211    No need char
11212    
11213    /(?=a++)[bcd]/iI
11214    Capturing subpattern count = 0
11215    Options: caseless
11216    First char = 'a' (caseless)
11217    No need char
11218    
11219    /(?=a{3})[bcd]/iI
11220    Capturing subpattern count = 0
11221    Options: caseless
11222    First char = 'a' (caseless)
11223    Need char = 'a' (caseless)
11224    
11225    /(abc)\1+/S
11226    
11227    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11228    
11229    /(?1)(?:(b(*ACCEPT))){0}/
11230        b
11231     0: b
11232    
11233    /(?1)(?:(b(*ACCEPT))){0}c/
11234        bc
11235     0: bc
11236        ** Failers
11237    No match
11238        b
11239    No match
11240    
11241    /(?1)(?:((*ACCEPT))){0}c/
11242        c
11243     0: c
11244        c\N
11245     0: c
11246    
11247    /^.*?(?(?=a)a|b(*THEN)c)/
11248        ba
11249    No match
11250    
11251    /^.*?(?(?=a)a|bc)/
11252        ba
11253     0: ba
11254    
11255    /^.*?(?(?=a)a(*THEN)b|c)/
11256        ac
11257    No match
11258    
11259    /^.*?(?(?=a)a(*THEN)b)c/
11260        ac
11261    No match
11262    
11263    /^.*?(a(*THEN)b)c/
11264        aabc
11265    No match
11266    
11267    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11268        aabc
11269     0: aabc
11270    
11271    /^.*?(a(*THEN)b|z)c/
11272        aabc
11273     0: aabc
11274     1: ab
11275    
11276    /^.*?(z|a(*THEN)b)c/
11277        aabc
11278     0: aabc
11279     1: ab
11280    
11281    /-- --/
11282    
11283    /-- These studied versions are here because they are not Perl-compatible; the
11284        studying means the mark is not seen. --/
11285    
11286    /(*MARK:A)(*SKIP:B)(C|X)/KS
11287        C
11288     0: C
11289     1: C
11290    MK: A
11291        D
11292    No match, mark = A
11293    
11294    /(*:A)A+(*SKIP:A)(B|Z)/KS
11295        AAAC
11296    No match, mark = A
11297    
11298    /-- --/
11299    
11300    "(?=a*(*ACCEPT)b)c"
11301        c
11302     0: c
11303        c\N
11304     0: c
11305    
11306    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11307        c
11308     0: c
11309        c\N
11310     0: c
11311    
11312    /(?>(*ACCEPT)b)c/
11313        c
11314     0:
11315        c\N
11316    No match
11317    
11318    /(?:(?>(a)))+a%/++
11319        %aa%
11320     0: aa%
11321     0+
11322     1: a
11323     1+ a%
11324    
11325    /(a)b|ac/++SS
11326        ac\O3
11327     0: ac
11328     0+
11329    
11330    /(a)(b)x|abc/++
11331         abc\O6
11332     0: abc
11333     0+
11334    
11335    /(a)bc|(a)(b)\2/
11336        \O3abc
11337    Matched, but too many substrings
11338     0: abc
11339        \O4abc
11340    Matched, but too many substrings
11341     0: abc
11342    
11343    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11344    Capturing subpattern count = 2
11345    No options
11346    No first char
11347    No need char
11348    Subject length lower bound = 1
11349    No set of starting bytes
11350    
11351    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11352    Capturing subpattern count = 2
11353    No options
11354    No first char
11355    No need char
11356    Subject length lower bound = 3
11357    Starting byte set: a b
11358    
11359    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11360    Capturing subpattern count = 2
11361    No options
11362    No first char
11363    No need char
11364    Subject length lower bound = 4
11365    Starting byte set: a b
11366    
11367    /(abc)(?1)/SI
11368    Capturing subpattern count = 1
11369    No options
11370    First char = 'a'
11371    Need char = 'c'
11372    Subject length lower bound = 6
11373    No set of starting bytes
11374    
11375    /^(?>a)++/
11376        aa\M
11377    Minimum match() limit = 5
11378    Minimum match() recursion limit = 2
11379     0: aa
11380        aaaaaaaaa\M
11381    Minimum match() limit = 12
11382    Minimum match() recursion limit = 2
11383     0: aaaaaaaaa
11384    
11385    /(a)(?1)++/
11386        aa\M
11387    Minimum match() limit = 7
11388    Minimum match() recursion limit = 4
11389     0: aa
11390     1: a
11391        aaaaaaaaa\M
11392    Minimum match() limit = 21
11393    Minimum match() recursion limit = 4
11394     0: aaaaaaaaa
11395     1: a
11396    
11397    /(?:(foo)|(bar)|(baz))X/SS=
11398        bazfooX
11399     0: fooX
11400     1: foo
11401     2: <unset>
11402     3: <unset>
11403        foobazbarX
11404     0: barX
11405     1: <unset>
11406     2: bar
11407     3: <unset>
11408        barfooX
11409     0: fooX
11410     1: foo
11411     2: <unset>
11412     3: <unset>
11413        bazX
11414     0: bazX
11415     1: <unset>
11416     2: <unset>
11417     3: baz
11418        foobarbazX
11419     0: bazX
11420     1: <unset>
11421     2: <unset>
11422     3: baz
11423        bazfooX\O0
11424    Matched, but too many substrings
11425        bazfooX\O2
11426    Matched, but too many substrings
11427     0: fooX
11428        bazfooX\O4
11429    Matched, but too many substrings
11430     0: fooX
11431     1: <unset>
11432        bazfooX\O6
11433    Matched, but too many substrings
11434     0: fooX
11435     1: foo
11436     2: <unset>
11437        bazfooX\O8
11438    Matched, but too many substrings
11439     0: fooX
11440     1: foo
11441     2: <unset>
11442     3: <unset>
11443        bazfooX\O10
11444     0: fooX
11445     1: foo
11446     2: <unset>
11447     3: <unset>
11448    
11449    /(?=abc){3}abc/BZ
11450    ------------------------------------------------------------------
11451            Bra
11452            Assert
11453            abc
11454            Ket
11455            abc
11456            Ket
11457            End
11458    ------------------------------------------------------------------
11459    
11460    /(?=abc)+abc/BZ
11461    ------------------------------------------------------------------
11462            Bra
11463            Assert
11464            abc
11465            Ket
11466            abc
11467            Ket
11468            End
11469    ------------------------------------------------------------------
11470    
11471    /(?=abc)++abc/BZ
11472    ------------------------------------------------------------------
11473            Bra
11474            Assert
11475            abc
11476            Ket
11477            abc
11478            Ket
11479            End
11480    ------------------------------------------------------------------
11481    
11482    /(?=abc){0}xyz/BZ
11483    ------------------------------------------------------------------
11484            Bra
11485            Skip zero
11486            Assert
11487            abc
11488            Ket
11489            xyz
11490            Ket
11491            End
11492    ------------------------------------------------------------------
11493    
11494    /(?=(a))?./BZ
11495    ------------------------------------------------------------------
11496            Bra
11497            Brazero
11498            Assert
11499            CBra 1
11500            a
11501            Ket
11502            Ket
11503            Any
11504            Ket
11505            End
11506    ------------------------------------------------------------------
11507    
11508    /(?=(a))??./BZ
11509    ------------------------------------------------------------------
11510            Bra
11511            Braminzero
11512            Assert
11513            CBra 1
11514            a
11515            Ket
11516            Ket
11517            Any
11518            Ket
11519            End
11520    ------------------------------------------------------------------
11521    
11522    /^(?=(a)){0}b(?1)/BZ
11523    ------------------------------------------------------------------
11524            Bra
11525            ^
11526            Skip zero
11527            Assert
11528            CBra 1
11529            a
11530            Ket
11531            Ket
11532            b
11533            Recurse
11534            Ket
11535            End
11536    ------------------------------------------------------------------
11537    
11538    /(?(DEFINE)(a))?b(?1)/BZ
11539    ------------------------------------------------------------------
11540            Bra
11541            Cond
11542            Cond def
11543            CBra 1
11544            a
11545            Ket
11546            Ket
11547            b
11548            Recurse
11549            Ket
11550            End
11551    ------------------------------------------------------------------
11552    
11553    /^(?=(?1))?[az]([abc])d/BZ
11554    ------------------------------------------------------------------
11555            Bra
11556            ^
11557            Brazero
11558            Assert
11559            Recurse
11560            Ket
11561            [az]
11562            CBra 1
11563            [a-c]
11564            Ket
11565            d
11566            Ket
11567            End
11568    ------------------------------------------------------------------
11569    
11570    /^(?!a){0}\w+/BZ
11571    ------------------------------------------------------------------
11572            Bra
11573            ^
11574            Skip zero
11575            Assert not
11576            a
11577            Ket
11578            \w++
11579            Ket
11580            End
11581    ------------------------------------------------------------------
11582    
11583    /(?<=(abc))?xyz/BZ
11584    ------------------------------------------------------------------
11585            Bra
11586            Brazero
11587            AssertB
11588            Reverse
11589            CBra 1
11590            abc
11591            Ket
11592            Ket
11593            xyz
11594            Ket
11595            End
11596    ------------------------------------------------------------------
11597    
11598    /[:a[:abc]b:]/BZ
11599    ------------------------------------------------------------------
11600            Bra
11601            [:[a-c]
11602            b:]
11603            Ket
11604            End
11605    ------------------------------------------------------------------
11606    
11607    /((?2))((?1))/SS
11608        abc
11609    Error -26 (nested recursion at the same subject position)
11610    
11611    /((?(R2)a+|(?1)b))/SS
11612        aaaabcde
11613    Error -26 (nested recursion at the same subject position)
11614    
11615    /(?(R)a*(?1)|((?R))b)/SS
11616        aaaabcde
11617    Error -26 (nested recursion at the same subject position)
11618    
11619    /(a+|(?R)b)/
11620    Failed: recursive call could loop indefinitely at offset 7
11621    
11622    /^(a(*:A)(d|e(*:B))z|aeq)/C
11623        adz
11624    --->adz
11625     +0 ^       ^
11626     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11627     +2 ^       a
11628     +3 ^^      (*:A)
11629     +8 ^^      (d|e(*:B))
11630    Latest Mark: A
11631     +9 ^^      d
11632    +10 ^ ^     |
11633    +18 ^ ^     z
11634    +19 ^  ^    |
11635    +24 ^  ^
11636     0: adz
11637     1: adz
11638     2: d
11639        aez
11640    --->aez
11641     +0 ^       ^
11642     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11643     +2 ^       a
11644     +3 ^^      (*:A)
11645     +8 ^^      (d|e(*:B))
11646    Latest Mark: A
11647     +9 ^^      d
11648    +11 ^^      e
11649    +12 ^ ^     (*:B)
11650    +17 ^ ^     )
11651    Latest Mark: B
11652    +18 ^ ^     z
11653    +19 ^  ^    |
11654    +24 ^  ^
11655     0: aez
11656     1: aez
11657     2: e
11658        aeqwerty
11659    --->aeqwerty
11660     +0 ^            ^
11661     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11662     +2 ^            a
11663     +3 ^^           (*:A)
11664     +8 ^^           (d|e(*:B))
11665    Latest Mark: A
11666     +9 ^^           d
11667    +11 ^^           e
11668    +12 ^ ^          (*:B)
11669    +17 ^ ^          )
11670    Latest Mark: B
11671    +18 ^ ^          z
11672    +20 ^            a
11673    +21 ^^           e
11674    +22 ^ ^          q
11675    +23 ^  ^         )
11676    +24 ^  ^
11677     0: aeq
11678     1: aeq
11679    
11680    /.(*F)/
11681        \P\Pabc
11682    No match
11683    
11684    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11685    Capturing subpattern count = 0
11686    Max lookbehind = 1
11687    No options
11688    First char = 't'
11689    Need char = 't'
11690    Subject length lower bound = 18
11691    No set of starting bytes
11692    
11693    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11694    Capturing subpattern count = 0
11695    Max lookbehind = 1
11696    No options
11697    No first char
11698    No need char
11699    Subject length lower bound = 8
11700    Starting byte set: < o t u
11701    
11702    /a(*SKIP)c|b(*ACCEPT)|/+S!I
11703    Capturing subpattern count = 0
11704    May match empty string
11705    No options
11706    No first char
11707    No need char
11708    Subject length lower bound = -1
11709    No set of starting bytes
11710        a
11711     0:
11712     0+
11713    
11714    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11715    Capturing subpattern count = 0
11716    No options
11717    No first char
11718    No need char
11719    Subject length lower bound = -1
11720    Starting byte set: a b x
11721        ax
11722     0: x
11723    
11724    'a*(*ACCEPT)b'+
11725        \N\N
11726    No match
11727        abc\N\N
11728     0: a
11729     0+ bc
11730        bbb\N\N
11731     0:
11732     0+ bb
11733    
11734    /(*ACCEPT)a/+I
11735    Capturing subpattern count = 0
11736    No options
11737    No first char
11738    No need char
11739        bax
11740     0:
11741     0+ bax
11742    
11743    /z(*ACCEPT)a/+I
11744    Capturing subpattern count = 0
11745    No options
11746    First char = 'z'
11747    No need char
11748        baxzbx
11749     0: z
11750     0+ bx
11751    
11752    /a(?:.)*?a/ims
11753        \Mabbbbbbbbbbbbbbbbbbbbba
11754    Minimum match() limit = 65
11755    Minimum match() recursion limit = 2
11756     0: abbbbbbbbbbbbbbbbbbbbba
11757    
11758    /a(?:.(*THEN))*?a/ims
11759        \Mabbbbbbbbbbbbbbbbbbbbba
11760    Minimum match() limit = 86
11761    Minimum match() recursion limit = 45
11762     0: abbbbbbbbbbbbbbbbbbbbba
11763    
11764    /a(?:.(*THEN:ABC))*?a/ims
11765        \Mabbbbbbbbbbbbbbbbbbbbba
11766    Minimum match() limit = 86
11767    Minimum match() recursion limit = 45
11768     0: abbbbbbbbbbbbbbbbbbbbba
11769    
11770    /^(?>a+)(?>(z+))\w/BZ
11771    ------------------------------------------------------------------
11772            Bra
11773            ^
11774            Once_NC
11775            a++
11776            Ket
11777            Once
11778            CBra 1
11779            z++
11780            Ket
11781            Ket
11782            \w
11783            Ket
11784            End
11785    ------------------------------------------------------------------
11786        aaaazzzzb
11787     0: aaaazzzzb
11788     1: zzzz
11789        ** Failers
11790    No match
11791        aazz
11792    No match
11793    
11794    /(.)(\1|a(?2))/
11795        bab
11796     0: bab
11797     1: b
11798     2: ab
11799    
11800    /\1|(.)(?R)\1/
11801        cbbbc
11802     0: cbbbc
11803     1: c
11804    
11805    /(.)((?(1)c|a)|a(?2))/
11806        baa
11807    No match
11808    
11809    /(?P<abn>(?P=abn)xxx)/BZ
11810    ------------------------------------------------------------------
11811            Bra
11812            Once
11813            CBra 1
11814            \1
11815            xxx
11816            Ket
11817            Ket
11818            Ket
11819            End