/[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 1348 by ph10, Fri Jul 5 10:38:37 2013 UTC
# Line 2  Line 2 
2      of PCRE's API, error diagnostics, and the compiled code of some patterns.      of PCRE's API, error diagnostics, and the compiled code of some patterns.
3      It also checks the non-Perl syntax the PCRE supports (Python, .NET,      It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4      Oniguruma). Finally, there are some tests where PCRE and Perl differ,      Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5      either because PCRE can't be compatible, or there is potential Perl      either because PCRE can't be compatible, or there is a possible Perl
6      bug. --/      bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
 /-- Originally, the Perl 5.10 things were in here too, but now I have separated  
     many (most?) of them out into test 11. However, there may still be some  
     that were overlooked. --/  
   
11  /(a)b|/I  /(a)b|/I
12  Capturing subpattern count = 1  Capturing subpattern count = 1
13    May match empty string
14  No options  No options
15  No first char  No first char
16  No need char  No need char
# Line 103  Failed: missing terminating ] for charac Line 103  Failed: missing terminating ] for charac
103  /(?X)[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
105    
106    /(?X)[\R]/
107    Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\X]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /[\B]/BZ
113    ------------------------------------------------------------------
114            Bra
115            B
116            Ket
117            End
118    ------------------------------------------------------------------
119    
120    /[\R]/BZ
121    ------------------------------------------------------------------
122            Bra
123            R
124            Ket
125            End
126    ------------------------------------------------------------------
127    
128    /[\X]/BZ
129    ------------------------------------------------------------------
130            Bra
131            X
132            Ket
133            End
134    ------------------------------------------------------------------
135    
136  /[z-a]/  /[z-a]/
137  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
138    
# Line 347  No need char Line 377  No need char
377   2: <unset>   2: <unset>
378   3: def   3: def
379    
 /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  
   
380  /)/  /)/
381  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
382    
# Line 474  Need char = '=' Line 449  Need char = '='
449    
450  /(?<!bar|cattle)foo/I  /(?<!bar|cattle)foo/I
451  Capturing subpattern count = 0  Capturing subpattern count = 0
452    Max lookbehind = 6
453  No options  No options
454  First char = 'f'  First char = 'f'
455  Need char = 'o'  Need char = 'o'
# Line 523  No need char Line 499  No need char
499    
500  /(?s).*/I  /(?s).*/I
501  Capturing subpattern count = 0  Capturing subpattern count = 0
502    May match empty string
503  Options: anchored dotall  Options: anchored dotall
504  No first char  No first char
505  No need char  No need char
# Line 602  Need char = 'h' (caseless) Line 579  Need char = 'h' (caseless)
579  ------------------------------------------------------------------  ------------------------------------------------------------------
580          Bra          Bra
581          CBra 1          CBra 1
582       01 Opt       /i b
      NC b  
583          Ket          Ket
      00 Opt  
584          Ket          Ket
585          End          End
586  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 658  No match Line 633  No match
633    
634  /\Aabc/Im  /\Aabc/Im
635  Capturing subpattern count = 0  Capturing subpattern count = 0
636    Max lookbehind = 1
637  Options: anchored multiline  Options: anchored multiline
638  No first char  No first char
639  No need char  No need char
# Line 683  No need char Line 659  No need char
659    
660  /(?<=foo)[ab]/IS  /(?<=foo)[ab]/IS
661  Capturing subpattern count = 0  Capturing subpattern count = 0
662    Max lookbehind = 3
663  No options  No options
664  No first char  No first char
665  No need char  No need char
# Line 691  Starting byte set: a b Line 668  Starting byte set: a b
668    
669  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
670  Capturing subpattern count = 1  Capturing subpattern count = 1
671    Max lookbehind = 3
672  No options  No options
673  No first char  No first char
674  Need char = 'a'  Need char = 'a'
# Line 707  Starting byte set: a b Line 685  Starting byte set: a b
685    
686  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
687  Capturing subpattern count = 0  Capturing subpattern count = 0
688    Max lookbehind = 4
689  Contains explicit CR or LF match  Contains explicit CR or LF match
690  Options: multiline  Options: multiline
691  No first char  No first char
# Line 724  No match Line 703  No match
703    
704  /^(?<=foo\n)bar/Im  /^(?<=foo\n)bar/Im
705  Capturing subpattern count = 0  Capturing subpattern count = 0
706    Max lookbehind = 4
707  Contains explicit CR or LF match  Contains explicit CR or LF match
708  Options: multiline  Options: multiline
709  First char at start or follows newline  First char at start or follows newline
# Line 766  Failed: lookbehind assertion is not fixe Line 746  Failed: lookbehind assertion is not fixe
746    
747  /(?<=bullock|donkey)-cart/I  /(?<=bullock|donkey)-cart/I
748  Capturing subpattern count = 0  Capturing subpattern count = 0
749    Max lookbehind = 7
750  No options  No options
751  First char = '-'  First char = '-'
752  Need char = 't'  Need char = 't'
# Line 782  No match Line 763  No match
763    
764  /(?<=ab(?i)x|y|z)/I  /(?<=ab(?i)x|y|z)/I
765  Capturing subpattern count = 0  Capturing subpattern count = 0
766    Max lookbehind = 3
767    May match empty string
768  No options  No options
769  No first char  No first char
770  No need char  No need char
771    
772  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
773  Capturing subpattern count = 2  Capturing subpattern count = 2
774    Max lookbehind = 4
775    May match empty string
776  No options  No options
777  First char at start or follows newline  No first char
778  No need char  No need char
779      alphabetabcd      alphabetabcd
780   0: alphabetabcd   0: alphabetabcd
# Line 801  No need char Line 786  No need char
786    
787  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
788  Capturing subpattern count = 0  Capturing subpattern count = 0
789    Max lookbehind = 4
790  No options  No options
791  First char = 'Z'  First char = 'Z'
792  Need char = 'Z'  Need char = 'Z'
# Line 829  No match Line 815  No match
815    
816  /(?<!(foo)a)bar/I  /(?<!(foo)a)bar/I
817  Capturing subpattern count = 1  Capturing subpattern count = 1
818    Max lookbehind = 4
819  No options  No options
820  First char = 'b'  First char = 'b'
821  Need char = 'r'  Need char = 'r'
# Line 841  No match Line 828  No match
828      fooabar      fooabar
829  No match  No match
830    
 /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  
   
831  /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
832  Capturing subpattern count = 0  Capturing subpattern count = 0
833  No options  No options
# Line 1003  Failed: numbers out of order in {} quant Line 974  Failed: numbers out of order in {} quant
974  /abc/\  /abc/\
975  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
976    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
977  /abc/\i  /abc/\i
978  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
979    
# Line 1121  No first char Line 1089  No first char
1089  No need char  No need char
1090      abc\00def\L\C0      abc\00def\L\C0
1091   0: abc\x00def   0: abc\x00def
1092   0C abc (7)   0C abc\x00def (7)
1093   0L abc   0L abc
1094    
1095  /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 1185  No need char
1185  ------------------------------------------------------------------  ------------------------------------------------------------------
1186          Bra          Bra
1187          Bra          Bra
      04 Opt  
1188          AllAny*          AllAny*
1189          X          X
1190          Alt          Alt
      04 Opt  
1191          ^          ^
1192          B          B
1193          Ket          Ket
      00 Opt  
1194          Ket          Ket
1195          End          End
1196  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1236  No need char Line 1201  No need char
1201    
1202  /\Biss\B/I+  /\Biss\B/I+
1203  Capturing subpattern count = 0  Capturing subpattern count = 0
1204    Max lookbehind = 1
1205  No options  No options
1206  First char = 'i'  First char = 'i'
1207  Need char = 's'  Need char = 's'
# Line 1243  Need char = 's' Line 1209  Need char = 's'
1209   0: iss   0: iss
1210   0+ issippi   0+ issippi
1211    
 /\Biss\B/I+P  
     Mississippi  
  0: iss  
  0+ issippi  
   
1212  /iss/IG+  /iss/IG+
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  No options  No options
# Line 1261  Need char = 's' Line 1222  Need char = 's'
1222    
1223  /\Biss\B/IG+  /\Biss\B/IG+
1224  Capturing subpattern count = 0  Capturing subpattern count = 0
1225    Max lookbehind = 1
1226  No options  No options
1227  First char = 'i'  First char = 'i'
1228  Need char = 's'  Need char = 's'
# Line 1270  Need char = 's' Line 1232  Need char = 's'
1232    
1233  /\Biss\B/Ig+  /\Biss\B/Ig+
1234  Capturing subpattern count = 0  Capturing subpattern count = 0
1235    Max lookbehind = 1
1236  No options  No options
1237  First char = 'i'  First char = 'i'
1238  Need char = 's'  Need char = 's'
# Line 1285  No match Line 1248  No match
1248    
1249  /(?<=[Ms])iss/Ig+  /(?<=[Ms])iss/Ig+
1250  Capturing subpattern count = 0  Capturing subpattern count = 0
1251    Max lookbehind = 1
1252  No options  No options
1253  First char = 'i'  First char = 'i'
1254  Need char = 's'  Need char = 's'
# Line 1296  Need char = 's' Line 1260  Need char = 's'
1260    
1261  /(?<=[Ms])iss/IG+  /(?<=[Ms])iss/IG+
1262  Capturing subpattern count = 0  Capturing subpattern count = 0
1263    Max lookbehind = 1
1264  No options  No options
1265  First char = 'i'  First char = 'i'
1266  Need char = 's'  Need char = 's'
# Line 1377  Capturing subpattern count = 0 Line 1342  Capturing subpattern count = 0
1342  Contains explicit CR or LF match  Contains explicit CR or LF match
1343  Options: multiline  Options: multiline
1344  First char at start or follows newline  First char at start or follows newline
1345  Need char = 10  Need char = \x0a
1346      ab\nab\ncd      ab\nab\ncd
1347   0: ab\x0a   0: ab\x0a
1348   0+ ab\x0acd   0+ ab\x0acd
# Line 1416  Need char = 'c' Line 1381  Need char = 'c'
1381    
1382  /a*/I  /a*/I
1383  Capturing subpattern count = 0  Capturing subpattern count = 0
1384    May match empty string
1385  No options  No options
1386  No first char  No first char
1387  No need char  No need char
# Line 1434  Need char = 'a' Line 1400  Need char = 'a'
1400    
1401  /a{0,3}/I  /a{0,3}/I
1402  Capturing subpattern count = 0  Capturing subpattern count = 0
1403    May match empty string
1404  No options  No options
1405  No first char  No first char
1406  No need char  No need char
# Line 1476  Need char = 'r' Line 1443  Need char = 'r'
1443    
1444  /...(?<=abc)/I  /...(?<=abc)/I
1445  Capturing subpattern count = 0  Capturing subpattern count = 0
1446    Max lookbehind = 3
1447  No options  No options
1448  No first char  No first char
1449  No need char  No need char
# Line 1632  Need char = 'e' Line 1600  Need char = 'e'
1600    
1601  /a?b?/I  /a?b?/I
1602  Capturing subpattern count = 0  Capturing subpattern count = 0
1603    May match empty string
1604  No options  No options
1605  No first char  No first char
1606  No need char  No need char
# Line 1650  No match Line 1619  No match
1619    
1620  /|-/I  /|-/I
1621  Capturing subpattern count = 0  Capturing subpattern count = 0
1622    May match empty string
1623  No options  No options
1624  No first char  No first char
1625  No need char  No need char
# Line 1664  No need char Line 1634  No need char
1634      \Nabc      \Nabc
1635  No match  No match
1636    
 /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  
   
1637  /^.?abcd/IS  /^.?abcd/IS
1638  Capturing subpattern count = 0  Capturing subpattern count = 0
1639  Options: anchored  Options: anchored
# Line 2690  Need char = '-' Line 2633  Need char = '-'
2633          End          End
2634  ------------------------------------------------------------------  ------------------------------------------------------------------
2635  Capturing subpattern count = 0  Capturing subpattern count = 0
2636    May match empty string
2637  Options: extended  Options: extended
2638  No first char  No first char
2639  No need char  No need char
# Line 2734  No need char Line 2678  No need char
2678  ------------------------------------------------------------------  ------------------------------------------------------------------
2679          Bra          Bra
2680          a          a
2681       01 Opt       /i b
      NC b  
2682          Ket          Ket
2683          End          End
2684  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2757  No match Line 2700  No match
2700          Bra          Bra
2701          CBra 1          CBra 1
2702          a          a
2703       01 Opt       /i b
      NC b  
2704          Ket          Ket
      00 Opt  
2705          Ket          Ket
2706          End          End
2707  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2782  No match Line 2723  No match
2723  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2724  ------------------------------------------------------------------  ------------------------------------------------------------------
2725          Bra          Bra
2726       NC abc       /i abc
2727          Ket          Ket
2728          End          End
2729  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2795  Need char = 'c' (caseless) Line 2736  Need char = 'c' (caseless)
2736    (?i)abc/IxDZ    (?i)abc/IxDZ
2737  ------------------------------------------------------------------  ------------------------------------------------------------------
2738          Bra          Bra
2739       NC abc       /i abc
2740          Ket          Ket
2741          End          End
2742  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2835  Need char = '0' Line 2776  Need char = '0'
2776          End          End
2777  ------------------------------------------------------------------  ------------------------------------------------------------------
2778  Capturing subpattern count = 0  Capturing subpattern count = 0
2779    May match empty string
2780  No options  No options
2781  No first char  No first char
2782  No need char  No need char
# Line 2934  No match Line 2876  No match
2876          End          End
2877  ------------------------------------------------------------------  ------------------------------------------------------------------
2878  Capturing subpattern count = 0  Capturing subpattern count = 0
2879    May match empty string
2880  No options  No options
2881  No first char  No first char
2882  No need char  No need char
# Line 2968  No need char Line 2911  No need char
2911  /(x)*+/DZ  /(x)*+/DZ
2912  ------------------------------------------------------------------  ------------------------------------------------------------------
2913          Bra          Bra
2914          Once          Braposzero
2915          Brazero          CBraPos 1
         CBra 1  
2916          x          x
2917          KetRmax          KetRpos
         Ket  
2918          Ket          Ket
2919          End          End
2920  ------------------------------------------------------------------  ------------------------------------------------------------------
2921  Capturing subpattern count = 1  Capturing subpattern count = 1
2922    May match empty string
2923  No options  No options
2924  No first char  No first char
2925  No need char  No need char
2926    
2927  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2928  Capturing subpattern count = 1  Capturing subpattern count = 1
2929    May match empty string
2930  Options: anchored  Options: anchored
2931  No first char  No first char
2932  No need char  No need char
# Line 3198  Failed: POSIX collating elements are not Line 3141  Failed: POSIX collating elements are not
3141  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
3142    
3143  /\l/I  /\l/I
3144  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
3145    
3146  /\L/I  /\L/I
3147  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
3148    
3149  /\N{name}/I  /\N{name}/I
3150  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
3151    
3152  /\u/I  /\u/I
3153  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
3154    
3155  /\U/I  /\U/I
3156  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
3157    
3158  /[/I  /[/I
3159  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3288  No match Line 3231  No match
3231          End          End
3232  ------------------------------------------------------------------  ------------------------------------------------------------------
3233  Capturing subpattern count = 0  Capturing subpattern count = 0
3234    Max lookbehind = 1
3235  No options  No options
3236  First char = '8'  First char = '8'
3237  Need char = 'X'  Need char = 'X'
# Line 3301  Need char = 'X' Line 3245  Need char = 'X'
3245          End          End
3246  ------------------------------------------------------------------  ------------------------------------------------------------------
3247  Capturing subpattern count = 0  Capturing subpattern count = 0
3248    Max lookbehind = 1
3249  No options  No options
3250  First char = '$'  First char = '$'
3251  Need char = 'X'  Need char = 'X'
# Line 3357  Need char = 'b' Line 3302  Need char = 'b'
3302    
3303  /(?=a).*/I  /(?=a).*/I
3304  Capturing subpattern count = 0  Capturing subpattern count = 0
3305    May match empty string
3306  No options  No options
3307  First char = 'a'  First char = 'a'
3308  No need char  No need char
# Line 3375  Need char = 'z' (caseless) Line 3321  Need char = 'z' (caseless)
3321    
3322  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3323  Capturing subpattern count = 0  Capturing subpattern count = 0
3324    May match empty string
3325  No options  No options
3326  First char = 'a'  First char = 'a'
3327  No need char  No need char
# Line 3441  Need char = 'a' Line 3388  Need char = 'a'
3388    
3389  /(a)*/I  /(a)*/I
3390  Capturing subpattern count = 1  Capturing subpattern count = 1
3391    May match empty string
3392  No options  No options
3393  No first char  No first char
3394  No need char  No need char
# Line 3560  Need char = 'f' Line 3508  Need char = 'f'
3508    1    ^    ^     f    1    ^    ^     f
3509   0: abcdef   0: abcdef
3510    
3511  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3512    Capturing subpattern count = 0
3513    No options
3514    No first char
3515    Need char = 'f'
3516    Subject length lower bound = 7
3517    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3518        1234abcdef
3519    --->1234abcdef
3520      1 ^              \d
3521      1  ^             \d
3522      1   ^            \d
3523      1    ^           \d
3524      2    ^   ^       d
3525     0: 4abcdef
3526        *** Failers
3527    No match
3528        abcdef
3529    No match
3530    
3531    /(?C1)\dabc(?C2)def/ISS
3532  Capturing subpattern count = 0  Capturing subpattern count = 0
3533  No options  No options
3534  No first char  No first char
# Line 3649  No match Line 3617  No match
3617    
3618  /(?C0)(abc(?C1))*/I  /(?C0)(abc(?C1))*/I
3619  Capturing subpattern count = 1  Capturing subpattern count = 1
3620    May match empty string
3621  No options  No options
3622  No first char  No first char
3623  No need char  No need char
# Line 3682  No need char Line 3651  No need char
3651    
3652  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3653  Capturing subpattern count = 1  Capturing subpattern count = 1
3654    May match empty string
3655  No options  No options
3656  No first char  No first char
3657  No need char  No need char
# Line 3796  Callout 2: last capture = -1 Line 3766  Callout 2: last capture = -1
3766    
3767  /(?<=(abc)(?C))xyz/I  /(?<=(abc)(?C))xyz/I
3768  Capturing subpattern count = 1  Capturing subpattern count = 1
3769    Max lookbehind = 3
3770  No options  No options
3771  First char = 'x'  First char = 'x'
3772  Need char = 'z'  Need char = 'z'
# Line 3927  Failed: recursive call could loop indefi Line 3898  Failed: recursive call could loop indefi
3898    
3899  /^([^()]|\((?1)*\))*$/I  /^([^()]|\((?1)*\))*$/I
3900  Capturing subpattern count = 1  Capturing subpattern count = 1
3901    May match empty string
3902  Options: anchored  Options: anchored
3903  No first char  No first char
3904  No need char  No need char
# Line 3964  Need char = '<' Line 3936  Need char = '<'
3936          Bra          Bra
3937          CBra 1          CBra 1
3938          a          a
         Once  
3939          Recurse          Recurse
         Ket  
3940          b          b
3941          Ket          Ket
3942          Ket          Ket
# Line 4187  Need char = 'a' Line 4157  Need char = 'a'
4157          Any          Any
4158          \1          \1
4159          bbb          bbb
         Once  
4160          Recurse          Recurse
         Ket  
4161          d          d
4162          Ket          Ket
4163          End          End
# Line 4210  Named capturing subpatterns: Line 4178  Named capturing subpatterns:
4178    one     1    one     1
4179    three   3    three   3
4180    two     2    two     2
4181    May match empty string
4182  Options: anchored caseless  Options: anchored caseless
4183  No first char  No first char
4184  No need char  No need char
# Line 4309  Need char = 'z' Line 4278  Need char = 'z'
4278    
4279  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4280  Capturing subpattern count = 31  Capturing subpattern count = 31
4281    May match empty string
4282  Options: anchored dotall  Options: anchored dotall
4283  No first char  No first char
4284  No need char  No need char
# Line 4316  No need char Line 4286  No need char
4286  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4287  Capturing subpattern count = 31  Capturing subpattern count = 31
4288  Max back reference = 31  Max back reference = 31
4289    May match empty string
4290  Options: dotall  Options: dotall
4291  No first char  No first char
4292  No need char  No need char
# Line 4323  No need char Line 4294  No need char
4294  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4295  Capturing subpattern count = 32  Capturing subpattern count = 32
4296  Max back reference = 32  Max back reference = 32
4297    May match empty string
4298  Options: dotall  Options: dotall
4299  No first char  No first char
4300  No need char  No need char
# Line 4399  Minimum match() recursion limit = 6 Line 4371  Minimum match() recursion limit = 6
4371   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4372    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4373  Minimum match() limit = 32768  Minimum match() limit = 32768
4374  Minimum match() recursion limit = 42  Minimum match() recursion limit = 29
4375  No match  No match
4376    
4377  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4474  Capturing subpattern count = 2 Line 4446  Capturing subpattern count = 2
4446  Named capturing subpatterns:  Named capturing subpatterns:
4447    Tes    1    Tes    1
4448    Test   2    Test   2
4449    May match empty string
4450  No options  No options
4451  No first char  No first char
4452  No need char  No need char
# Line 4492  Capturing subpattern count = 2 Line 4465  Capturing subpattern count = 2
4465  Named capturing subpatterns:  Named capturing subpatterns:
4466    Tes    2    Tes    2
4467    Test   1    Test   1
4468    May match empty string
4469  No options  No options
4470  No first char  No first char
4471  No need char  No need char
# Line 4561  Need char = ']' Line 4535  Need char = ']'
4535          a          a
4536          CBra 2          CBra 2
4537          b          b
         Once  
4538          Recurse          Recurse
         Ket  
4539          c          c
4540          Ket          Ket
4541          Ket          Ket
# Line 4571  Need char = ']' Line 4543  Need char = ']'
4543          End          End
4544  ------------------------------------------------------------------  ------------------------------------------------------------------
4545  Capturing subpattern count = 2  Capturing subpattern count = 2
4546    May match empty string
4547  No options  No options
4548  No first char  No first char
4549  No need char  No need char
# Line 4583  No need char Line 4556  No need char
4556          a          a
4557          CBra 2          CBra 2
4558          b          b
         Once  
4559          Recurse          Recurse
         Ket  
4560          c          c
4561          Ket          Ket
4562          KetRmax          KetRmax
# Line 4593  No need char Line 4564  No need char
4564          End          End
4565  ------------------------------------------------------------------  ------------------------------------------------------------------
4566  Capturing subpattern count = 2  Capturing subpattern count = 2
4567    May match empty string
4568  No options  No options
4569  No first char  No first char
4570  No need char  No need char
# Line 4606  No need char Line 4578  No need char
4578          a          a
4579          CBra 2          CBra 2
4580          b          b
         Once  
4581          Recurse          Recurse
         Ket  
4582          c          c
4583          Ket          Ket
4584          Ket          Ket
# Line 4617  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 4628  No need char Line 4596  No need char
4596          End          End
4597  ------------------------------------------------------------------  ------------------------------------------------------------------
4598  Capturing subpattern count = 2  Capturing subpattern count = 2
4599    May match empty string
4600  No options  No options
4601  No first char  No first char
4602  No need char  No need char
# Line 4758  Need char = 'e' Line 4727  Need char = 'e'
4727   +4 ^   ^      e   +4 ^   ^      e
4728  No match  No match
4729    
4730  /a*b/ICDZ  /a*b/ICDZS
4731    ------------------------------------------------------------------
4732            Bra
4733            Callout 255 0 2
4734            a*+
4735            Callout 255 2 1
4736            b
4737            Callout 255 3 0
4738            Ket
4739            End
4740    ------------------------------------------------------------------
4741    Capturing subpattern count = 0
4742    Options:
4743    No first char
4744    Need char = 'b'
4745    Subject length lower bound = 1
4746    Starting byte set: a b
4747      ab
4748    --->ab
4749     +0 ^      a*
4750     +2 ^^     b
4751     +3 ^ ^
4752     0: ab
4753      aaaab
4754    --->aaaab
4755     +0 ^         a*
4756     +2 ^   ^     b
4757     +3 ^    ^
4758     0: aaaab
4759      aaaacb
4760    --->aaaacb
4761     +0 ^          a*
4762     +2 ^   ^      b
4763     +0  ^         a*
4764     +2  ^  ^      b
4765     +0   ^        a*
4766     +2   ^ ^      b
4767     +0    ^       a*
4768     +2    ^^      b
4769     +0      ^     a*
4770     +2      ^     b
4771     +3      ^^
4772     0: b
4773    
4774    /a*b/ICDZSS
4775  ------------------------------------------------------------------  ------------------------------------------------------------------
4776          Bra          Bra
4777          Callout 255 0 2          Callout 255 0 2
# Line 4841  Need char = 'b' Line 4854  Need char = 'b'
4854   +2    ^^      b   +2    ^^      b
4855  No match  No match
4856    
4857  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4858    ------------------------------------------------------------------
4859            Bra
4860            Callout 255 0 9
4861            CBra 1
4862            Callout 255 1 1
4863            a
4864            Callout 255 2 1
4865            b
4866            Callout 255 3 1
4867            c
4868            Callout 255 4 0
4869            Alt
4870            Callout 255 5 1
4871            d
4872            Callout 255 6 1
4873            e
4874            Callout 255 7 1
4875            f
4876            Callout 255 8 0
4877            Ket
4878            Callout 255 9 1
4879            x
4880            Callout 255 10 0
4881            Ket
4882            End
4883    ------------------------------------------------------------------
4884    Capturing subpattern count = 1
4885    Options:
4886    No first char
4887    Need char = 'x'
4888    Subject length lower bound = 4
4889    Starting byte set: a d
4890      abcx
4891    --->abcx
4892     +0 ^        (abc|def)
4893     +1 ^        a
4894     +2 ^^       b
4895     +3 ^ ^      c
4896     +4 ^  ^     |
4897     +9 ^  ^     x
4898    +10 ^   ^
4899     0: abcx
4900     1: abc
4901      defx
4902    --->defx
4903     +0 ^        (abc|def)
4904     +1 ^        a
4905     +5 ^        d
4906     +6 ^^       e
4907     +7 ^ ^      f
4908     +8 ^  ^     )
4909     +9 ^  ^     x
4910    +10 ^   ^
4911     0: defx
4912     1: def
4913      ** Failers
4914    No match
4915      abcdefzx
4916    --->abcdefzx
4917     +0 ^            (abc|def)
4918     +1 ^            a
4919     +2 ^^           b
4920     +3 ^ ^          c
4921     +4 ^  ^         |
4922     +9 ^  ^         x
4923     +5 ^            d
4924     +0    ^         (abc|def)
4925     +1    ^         a
4926     +5    ^         d
4927     +6    ^^        e
4928     +7    ^ ^       f
4929     +8    ^  ^      )
4930     +9    ^  ^      x
4931    No match
4932    
4933    /(abc|def)x/ICDZSS
4934  ------------------------------------------------------------------  ------------------------------------------------------------------
4935          Bra          Bra
4936          Callout 255 0 9          Callout 255 0 9
# Line 4895  Need char = 'x' Line 4984  Need char = 'x'
4984  +10 ^   ^  +10 ^   ^
4985   0: defx   0: defx
4986   1: def   1: def
4987      ** Failers
4988    No match
4989    abcdefzx    abcdefzx
4990  --->abcdefzx  --->abcdefzx
4991   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4995  No need char Line 5086  No need char
5086   0: abcdcdcd   0: abcdcdcd
5087   1: cd   1: cd
5088    
5089  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5090  ------------------------------------------------------------------  ------------------------------------------------------------------
5091          Bra          Bra
5092          Callout 255 0 14          Callout 255 0 14
# Line 5028  Capturing subpattern count = 1 Line 5119  Capturing subpattern count = 1
5119  Options:  Options:
5120  No first char  No first char
5121  No need char  No need char
5122    Subject length lower bound = 2
5123    Starting byte set: a b x
5124      Note: that { does NOT introduce a quantifier      Note: that { does NOT introduce a quantifier
5125  --->Note: that { does NOT introduce a quantifier  --->Note: that { does NOT introduce a quantifier
5126   +0 ^                                                ([ab]{,4}c|xy)   +0         ^                                        ([ab]{,4}c|xy)
5127   +1 ^                                                [ab]   +1         ^                                        [ab]
5128  +11 ^                                                x   +5         ^^                                       {
5129   +0  ^                                               ([ab]{,4}c|xy)  +11         ^                                        x
5130   +1  ^                                               [ab]   +0                                 ^                ([ab]{,4}c|xy)
5131  +11  ^                                               x   +1                                 ^                [ab]
5132   +0   ^                                              ([ab]{,4}c|xy)   +5                                 ^^               {
5133   +1   ^                                              [ab]  +11                                 ^                x
5134  +11   ^                                              x   +0                                     ^            ([ab]{,4}c|xy)
5135   +0    ^                                             ([ab]{,4}c|xy)   +1                                     ^            [ab]
5136   +1    ^                                             [ab]   +5                                     ^^           {
5137  +11    ^                                             x  +11                                     ^            x
5138   +0     ^                                            ([ab]{,4}c|xy)  No match
5139   +1     ^                                            [ab]  
5140  +11     ^                                            x  /([ab]{,4}c|xy)/ICDZSS
5141   +0      ^                                           ([ab]{,4}c|xy)  ------------------------------------------------------------------
5142   +1      ^                                           [ab]          Bra
5143            Callout 255 0 14
5144            CBra 1
5145            Callout 255 1 4
5146            [ab]
5147            Callout 255 5 1
5148            {
5149            Callout 255 6 1
5150            ,
5151            Callout 255 7 1
5152            4
5153            Callout 255 8 1
5154            }
5155            Callout 255 9 1
5156            c
5157            Callout 255 10 0
5158            Alt
5159            Callout 255 11 1
5160            x
5161            Callout 255 12 1
5162            y
5163            Callout 255 13 0
5164            Ket
5165            Callout 255 14 0
5166            Ket
5167            End
5168    ------------------------------------------------------------------
5169    Capturing subpattern count = 1
5170    Options:
5171    No first char
5172    No need char
5173        Note: that { does NOT introduce a quantifier
5174    --->Note: that { does NOT introduce a quantifier
5175     +0 ^                                                ([ab]{,4}c|xy)
5176     +1 ^                                                [ab]
5177    +11 ^                                                x
5178     +0  ^                                               ([ab]{,4}c|xy)
5179     +1  ^                                               [ab]
5180    +11  ^                                               x
5181     +0   ^                                              ([ab]{,4}c|xy)
5182     +1   ^                                              [ab]
5183    +11   ^                                              x
5184     +0    ^                                             ([ab]{,4}c|xy)
5185     +1    ^                                             [ab]
5186    +11    ^                                             x
5187     +0     ^                                            ([ab]{,4}c|xy)
5188     +1     ^                                            [ab]
5189    +11     ^                                            x
5190     +0      ^                                           ([ab]{,4}c|xy)
5191     +1      ^                                           [ab]
5192  +11      ^                                           x  +11      ^                                           x
5193   +0       ^                                          ([ab]{,4}c|xy)   +0       ^                                          ([ab]{,4}c|xy)
5194   +1       ^                                          [ab]   +1       ^                                          [ab]
# Line 5282  Need char = '3' Line 5424  Need char = '3'
5424    
5425  /\b.*/I  /\b.*/I
5426  Capturing subpattern count = 0  Capturing subpattern count = 0
5427    Max lookbehind = 1
5428    May match empty string
5429  No options  No options
5430  No first char  No first char
5431  No need char  No need char
# Line 5290  No need char Line 5434  No need char
5434    
5435  /\b.*/Is  /\b.*/Is
5436  Capturing subpattern count = 0  Capturing subpattern count = 0
5437    Max lookbehind = 1
5438    May match empty string
5439  Options: dotall  Options: dotall
5440  No first char  No first char
5441  No need char  No need char
# Line 5298  No need char Line 5444  No need char
5444    
5445  /(?!.bcd).*/I  /(?!.bcd).*/I
5446  Capturing subpattern count = 0  Capturing subpattern count = 0
5447    May match empty string
5448  No options  No options
5449  No first char  No first char
5450  No need char  No need char
# Line 5447  No match Line 5594  No match
5594      123456\P      123456\P
5595  No match  No match
5596    
5597  /abc/I>testsavedregex  /abc/IS>testsavedregex
5598    Capturing subpattern count = 0
5599    No options
5600    First char = 'a'
5601    Need char = 'c'
5602    Subject length lower bound = 3
5603    No set of starting bytes
5604    Compiled pattern written to testsavedregex
5605    Study data written to testsavedregex
5606    <testsavedregex
5607    Compiled pattern loaded from testsavedregex
5608    Study data loaded from testsavedregex
5609        abc
5610     0: abc
5611        ** Failers
5612    No match
5613        bca
5614    No match
5615    
5616    /abc/ISS>testsavedregex
5617  Capturing subpattern count = 0  Capturing subpattern count = 0
5618  No options  No options
5619  First char = 'a'  First char = 'a'
5620  Need char = 'c'  Need char = 'c'
5621  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5622  <testsavedregex  <testsavedregex
5623  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5624  No study data  No study data
5625      abc      abc
5626   0: abc   0: abc
# Line 5463  No match Line 5629  No match
5629      bca      bca
5630  No match  No match
5631    
5632  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5633    Capturing subpattern count = 0
5634    No options
5635    First char = 'a'
5636    Need char = 'c'
5637    Subject length lower bound = 3
5638    No set of starting bytes
5639    Compiled pattern written to testsavedregex
5640    Study data written to testsavedregex
5641    <testsavedregex
5642    Compiled pattern (byte-inverted) loaded from testsavedregex
5643    Study data loaded from testsavedregex
5644        abc
5645     0: abc
5646        ** Failers
5647    No match
5648        bca
5649    No match
5650    
5651    /abc/IFSS>testsavedregex
5652  Capturing subpattern count = 0  Capturing subpattern count = 0
5653  No options  No options
5654  First char = 'a'  First char = 'a'
5655  Need char = 'c'  Need char = 'c'
5656  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5657  <testsavedregex  <testsavedregex
5658  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5659  No study data  No study data
5660      abc      abc
5661   0: abc   0: abc
# Line 5486  No first char Line 5671  No first char
5671  No need char  No need char
5672  Subject length lower bound = 1  Subject length lower bound = 1
5673  Starting byte set: a b  Starting byte set: a b
5674  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5675  Study data written to testsavedregex  Study data written to testsavedregex
5676  <testsavedregex  <testsavedregex
5677  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5678  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5679      abc      abc
5680   0: a   0: a
# Line 5500  Study data loaded from testsavedregex Line 5685  Study data loaded from testsavedregex
5685      def      def
5686  No match  No match
5687    
5688    /(a|b)/ISS>testsavedregex
5689    Capturing subpattern count = 1
5690    No options
5691    No first char
5692    No need char
5693    Compiled pattern written to testsavedregex
5694    <testsavedregex
5695    Compiled pattern loaded from testsavedregex
5696    No study data
5697        abc
5698     0: a
5699     1: a
5700        ** Failers
5701     0: a
5702     1: a
5703        def
5704    No match
5705    
5706  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5707  Capturing subpattern count = 1  Capturing subpattern count = 1
5708  No options  No options
# Line 5507  No first char Line 5710  No first char
5710  No need char  No need char
5711  Subject length lower bound = 1  Subject length lower bound = 1
5712  Starting byte set: a b  Starting byte set: a b
5713  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5714  Study data written to testsavedregex  Study data written to testsavedregex
5715  <testsavedregex  <testsavedregex
5716  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5717  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5718      abc      abc
5719   0: a   0: a
# Line 5521  Study data loaded from testsavedregex Line 5724  Study data loaded from testsavedregex
5724      def      def
5725  No match  No match
5726    
5727    /(a|b)/ISSF>testsavedregex
5728    Capturing subpattern count = 1
5729    No options
5730    No first char
5731    No need char
5732    Compiled pattern written to testsavedregex
5733    <testsavedregex
5734    Compiled pattern (byte-inverted) loaded from testsavedregex
5735    No study data
5736        abc
5737     0: a
5738     1: a
5739        ** Failers
5740     0: a
5741     1: a
5742        def
5743    No match
5744    
5745  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5746  Capturing subpattern count = 3  Capturing subpattern count = 3
5747  Max back reference = 1  Max back reference = 1
5748  Options: multiline dotall  Options: multiline dotall
5749  First char = '<'  First char = '<'
5750  Need char = '>'  Need char = '>'
5751      <!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>
5752   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>
5753   1: seite   1: seite
5754   2: \x0a   2: \x0a
# Line 5576  No match Line 5797  No match
5797      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5798  No match  No match
5799    
 /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  
   
5800  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5801  Capturing subpattern count = 0  Capturing subpattern count = 0
5802  No options  No options
# Line 5830  Matched, but too many substrings Line 6033  Matched, but too many substrings
6033    
6034  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
6035  Capturing subpattern count = 0  Capturing subpattern count = 0
6036    May match empty string
6037  No options  No options
6038  No first char  No first char
6039  No need char  No need char
# Line 5842  No need char Line 6046  No need char
6046    
6047  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6048  Capturing subpattern count = 0  Capturing subpattern count = 0
6049    May match empty string
6050  No options  No options
6051  No first char  No first char
6052  No need char  No need char
# Line 5852  No need char Line 6057  No need char
6057    
6058  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
6059  Capturing subpattern count = 0  Capturing subpattern count = 0
6060    May match empty string
6061  No options  No options
6062  No first char  No first char
6063  No need char  No need char
# Line 5862  No need char Line 6068  No need char
6068    
6069  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
6070  Capturing subpattern count = 0  Capturing subpattern count = 0
6071    May match empty string
6072  No options  No options
6073  No first char  No first char
6074  No need char  No need char
# Line 5874  No need char Line 6081  No need char
6081    
6082  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
6083  Capturing subpattern count = 0  Capturing subpattern count = 0
6084    May match empty string
6085  No options  No options
6086  No first char  No first char
6087  No need char  No need char
# Line 5886  No need char Line 6094  No need char
6094      ((this))      ((this))
6095   0: ((this))   0: ((this))
6096    
 /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  
   
6097  /\x{0000ff}/I  /\x{0000ff}/I
6098  Capturing subpattern count = 0  Capturing subpattern count = 0
6099  No options  No options
6100  First char = 255  First char = \xff
6101  No need char  No need char
6102    
6103  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 6010  no parentheses with name "Z" Line 6207  no parentheses with name "Z"
6207   0: a1   0: a1
6208   1: a1   1: a1
6209   2: a1   2: a1
6210  copy substring Z failed -7  get substring Z failed -7
6211    G a1 (2) A    G a1 (2) A
6212    
6213  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6042  No need char Line 6239  No need char
6239    G a (1) A    G a (1) A
6240      cd\GA      cd\GA
6241   0: cd   0: cd
6242  copy substring A failed -7  get substring A failed -7
6243    
6244  /^(?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
6245  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6210  No need char Line 6407  No need char
6407   9:   9:
6408  10: Y  10: Y
6409    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6410  /\s*,\s*/IS  /\s*,\s*/IS
6411  Capturing subpattern count = 0  Capturing subpattern count = 0
6412  No options  No options
# Line 6345  Unknown newline type at: <bad> Line 6539  Unknown newline type at: <bad>
6539    
6540  /.*/I<lf>  /.*/I<lf>
6541  Capturing subpattern count = 0  Capturing subpattern count = 0
6542    May match empty string
6543  Options:  Options:
6544  Forced newline sequence: LF  Forced newline sequence: LF
6545  First char at start or follows newline  First char at start or follows newline
# Line 6386  Need char = 'f' Line 6581  Need char = 'f'
6581    
6582  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6583  Capturing subpattern count = 1  Capturing subpattern count = 1
6584    May match empty string
6585  No options  No options
6586  No first char  No first char
6587  No need char  No need char
# Line 6644  No match Line 6840  No match
6840  ------------------------------------------------------------------  ------------------------------------------------------------------
6841          Bra          Bra
6842          ^          ^
6843          a*       /i a*
6844       NC A       /i A
6845          \d          \d
6846          Ket          Ket
6847          End          End
# Line 7273  Matched, but too many substrings Line 7469  Matched, but too many substrings
7469  /[^a]+a/BZi  /[^a]+a/BZi
7470  ------------------------------------------------------------------  ------------------------------------------------------------------
7471          Bra          Bra
7472          [^A]++       /i [^a]++
7473       NC a       /i a
7474          Ket          Ket
7475          End          End
7476  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7282  Matched, but too many substrings Line 7478  Matched, but too many substrings
7478  /[^a]+A/BZi  /[^a]+A/BZi
7479  ------------------------------------------------------------------  ------------------------------------------------------------------
7480          Bra          Bra
7481          [^A]++       /i [^a]++
7482       NC A       /i A
7483          Ket          Ket
7484          End          End
7485  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7478  No match Line 7674  No match
7674  ------------------------------------------------------------------  ------------------------------------------------------------------
7675          Bra          Bra
7676          ^          ^
         Once  
7677          Recurse          Recurse
         Ket  
7678          [()]          [()]
7679          CBra 1          CBra 1
7680          Ket          Ket
# Line 7514  No match Line 7708  No match
7708  ------------------------------------------------------------------  ------------------------------------------------------------------
7709          Bra          Bra
7710          ^          ^
         Once  
7711          Recurse          Recurse
         Ket  
7712          ()          ()
7713          CBra 1          CBra 1
7714          Ket          Ket
# Line 7528  No match Line 7720  No match
7720  ------------------------------------------------------------------  ------------------------------------------------------------------
7721          Bra          Bra
7722          ^          ^
         Once  
7723          Recurse          Recurse
         Ket  
7724          [(\]a]          [(\]a]
7725          CBra 1          CBra 1
7726          Ket          Ket
# Line 7543  No match Line 7733  No match
7733  ------------------------------------------------------------------  ------------------------------------------------------------------
7734          Bra          Bra
7735          ^          ^
         Once  
7736          Recurse          Recurse
         Ket  
7737          CBra 1          CBra 1
7738          Ket          Ket
7739          Ket          Ket
# Line 7560  Named capturing subpatterns: Line 7748  Named capturing subpatterns:
7748    one     1    one     1
7749    three   3    three   3
7750    two     2    two     2
7751    May match empty string
7752  Options: anchored caseless  Options: anchored caseless
7753  No first char  No first char
7754  No need char  No need char
# Line 7677  Options: extended Line 7866  Options: extended
7866  First char = 'x'  First char = 'x'
7867  Need char = 'z'  Need char = 'z'
7868    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7869  /(a|)*\d/  /(a|)*\d/
7870    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7871  No match  No match
# Line 7997  No match Line 8183  No match
8183          Alt          Alt
8184          c          c
8185          Ket          Ket
         Once  
8186          Recurse          Recurse
8187          Ket          Ket
         Ket  
8188          End          End
8189  ------------------------------------------------------------------  ------------------------------------------------------------------
8190      abc      abc
# Line 8011  No match Line 8195  No match
8195  ------------------------------------------------------------------  ------------------------------------------------------------------
8196          Bra          Bra
8197          xy          xy
         Once  
8198          Recurse          Recurse
         Ket  
8199          CBra 1          CBra 1
8200          abc          abc
8201          Ket          Ket
# Line 8243  Failed: syntax error in subpattern name Line 8425  Failed: syntax error in subpattern name
8425   3: <unset>   3: <unset>
8426   4: x   4: x
8427    
 /[\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  
 ------------------------------------------------------------------  
   
8428  /\H++X/BZ  /\H++X/BZ
8429  ------------------------------------------------------------------  ------------------------------------------------------------------
8430          Bra          Bra
# Line 8494  No match Line 8616  No match
8616  ------------------------------------------------------------------  ------------------------------------------------------------------
8617    
8618  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8619  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8620   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8621    
8622  /[\E]AAA/  /[\E]AAA/
# Line 8676  Failed: number is too big at offset 19 Line 8798  Failed: number is too big at offset 19
8798  /\g6666666666/  /\g6666666666/
8799  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8800    
8801  /[\g6666666666]/  /[\g6666666666]/BZ
8802  Failed: number is too big at offset 12  ------------------------------------------------------------------
8803            Bra
8804            [6g]
8805            Ket
8806            End
8807    ------------------------------------------------------------------
8808    
8809  /(?1)\c[/  /(?1)\c[/
8810  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8700  No match Line 8827  No match
8827   1: \x0a   1: \x0a
8828    
8829  /a(*CR)b/  /a(*CR)b/
8830  Failed: (*VERB) not recognized at offset 5  Failed: (*VERB) not recognized or malformed at offset 5
8831    
8832  /(*CR)a.b/  /(*CR)a.b/
8833      a\nb      a\nb
# Line 8757  No match Line 8884  No match
8884  No match  No match
8885      a\x85b      a\x85b
8886  No match  No match
8887    
8888    /(*ANY).*/g
8889        abc\r\ndef
8890     0: abc
8891     0:
8892     0: def
8893     0:
8894    
8895    /(*ANYCRLF).*/g
8896        abc\r\ndef
8897     0: abc
8898     0:
8899     0: def
8900     0:
8901    
8902    /(*CRLF).*/g
8903        abc\r\ndef
8904     0: abc
8905     0:
8906     0: def
8907     0:
8908    
8909  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8910  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 8962  Failed: subpattern name expected at offs Line 9110  Failed: subpattern name expected at offs
9110  /\k{}/  /\k{}/
9111  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9112    
9113    /\k/
9114    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9115    
9116    /\kabc/
9117    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9118    
9119  /(?P=)/  /(?P=)/
9120  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9121    
# Line 9134  Starting byte set: x y z Line 9288  Starting byte set: x y z
9288    
9289  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
9290  Capturing subpattern count = 0  Capturing subpattern count = 0
9291    May match empty string
9292  Options:  Options:
9293  No first char  No first char
9294  No need char  No need char
# Line 9146  No need char Line 9301  No need char
9301   +7 ^ ^     b   +7 ^ ^     b
9302   +7 ^^      b   +7 ^^      b
9303   +7 ^       b   +7 ^       b
9304    +11 ^       ^
9305  +12 ^       )  +12 ^       )
9306  +13 ^  +13 ^
9307   0:   0:
# Line 9183  No options Line 9339  No options
9339  First char at start or follows newline  First char at start or follows newline
9340  No need char  No need char
9341    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9342  /xyz/C  /xyz/C
9343    xyz    xyz
9344  --->xyz  --->xyz
# Line 9243  No match Line 9391  No match
9391   +0        ^     x   +0        ^     x
9392   +0         ^    x   +0         ^    x
9393  No match  No match
9394    
9395    /(*NO_START_OPT)xyz/C
9396      abcxyz
9397    --->abcxyz
9398    +15 ^          x
9399    +15  ^         x
9400    +15   ^        x
9401    +15    ^       x
9402    +16    ^^      y
9403    +17    ^ ^     z
9404    +18    ^  ^
9405     0: xyz
9406    
9407    /xyz/CY
9408      abcxyz
9409    --->abcxyz
9410     +0 ^          x
9411     +0  ^         x
9412     +0   ^        x
9413     +0    ^       x
9414     +1    ^^      y
9415     +2    ^ ^     z
9416     +3    ^  ^
9417     0: xyz
9418    
9419  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9420      "ab"      "ab"
# Line 9260  No match Line 9432  No match
9432   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9433   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9434   +8 ^ ^      [a]   +8 ^ ^      [a]
9435    +17 ^ ^      |
9436  +21 ^ ^      "  +21 ^ ^      "
9437  +18 ^ ^      b  +18 ^ ^      b
9438  +19 ^  ^     )  +19 ^  ^     )
9439   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9440   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9441   +8 ^  ^     [a]   +8 ^  ^     [a]
9442    +17 ^  ^     |
9443  +21 ^  ^     "  +21 ^  ^     "
9444  +22 ^   ^    $  +22 ^   ^    $
9445  +23 ^   ^  +23 ^   ^
# Line 9561  Partial match: the cat Line 9735  Partial match: the cat
9735     abc\P\P     abc\P\P
9736   0: abc   0: abc
9737    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9738  /abc\K123/  /abc\K123/
9739      xyzabc123pqr      xyzabc123pqr
9740   0: 123   0: 123
# Line 9581  Partial match: abc12 Line 9747  Partial match: abc12
9747      xyzabc123pqr      xyzabc123pqr
9748   0: 123   0: 123
9749      xyzabc12\P      xyzabc12\P
9750  Partial match: abc12  Partial match at offset 6: abc12
9751      xyzabc12\P\P      xyzabc12\P\P
9752  Partial match: abc12  Partial match at offset 6: abc12
9753    
9754  /\babc\b/  /\babc\b/
9755      +++abc+++      +++abc+++
9756   0: abc   0: abc
9757      +++ab\P      +++ab\P
9758  Partial match: +ab  Partial match at offset 3: +ab
9759      +++ab\P\P      +++ab\P\P
9760  Partial match: +ab  Partial match at offset 3: +ab
9761    
9762  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9763  ------------------------------------------------------------------  ------------------------------------------------------------------
9764          Bra          Bra
         Once  
9765          Recurse          Recurse
         Ket  
         Once  
9766          Recurse          Recurse
         Ket  
9767          Cond          Cond
9768          Cond def          Cond def
9769          CBra 1          CBra 1
# Line 9622  Partial match: +ab Line 9784  Partial match: +ab
9784  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9785  ------------------------------------------------------------------  ------------------------------------------------------------------
9786          Bra          Bra
         Once  
9787          Recurse          Recurse
         Ket  
         Once  
9788          Recurse          Recurse
         Ket  
9789          Cond          Cond
9790          Cond def          Cond def
9791          CBra 1          CBra 1
# Line 9969  Need char = ':' Line 10127  Need char = ':'
10127  Subject length lower bound = 22  Subject length lower bound = 22
10128  No set of starting bytes  No set of starting bytes
10129    
 /  (?: [\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  
   
10130  /<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
10131  Capturing subpattern count = 11  Capturing subpattern count = 11
10132  Options: caseless dotall  Options: caseless dotall
# Line 10184  No set of starting bytes Line 10138  No set of starting bytes
10138  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10139  Capturing subpattern count = 0  Capturing subpattern count = 0
10140  No options  No options
10141  First char at start or follows newline  No first char
10142  Need char = 'o'  Need char = 'o'
10143  Subject length lower bound = 4  Subject length lower bound = 4
10144  No set of starting bytes  No set of starting bytes
# Line 10368  No match Line 10322  No match
10322          Cond nrecurse 1          Cond nrecurse 1
10323          $          $
10324          Alt          Alt
         Once  
10325          Recurse          Recurse
10326          Ket          Ket
10327          Ket          Ket
10328          Ket          Ket
         Ket  
10329          End          End
10330  ------------------------------------------------------------------  ------------------------------------------------------------------
10331  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 10429  Partial match: abca Line 10381  Partial match: abca
10381      xxxxabcde\P\P      xxxxabcde\P\P
10382  Partial match: abcde  Partial match: abcde
10383    
10384  /-- 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
10385      and not behaving as specified in that it *does* bumpalong after hitting      broken and not behaving as specified in that it *does* bumpalong after
10386      (*COMMIT). --/      hitting (*COMMIT). --/
10387    
10388  /(?1)(A(*COMMIT)|B)D/  /(?1)(A(*COMMIT)|B)D/
10389      ABD      ABD
# Line 10511  Starting byte set: i Line 10463  Starting byte set: i
10463  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10464  ------------------------------------------------------------------  ------------------------------------------------------------------
10465          Bra          Bra
10466       NC a       /i a
      00 Opt  
10467          b          b
10468          Alt          Alt
      00 Opt  
10469          c          c
10470          Ket          Ket
10471          End          End
# Line 10534  No match Line 10484  No match
10484  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10485  ------------------------------------------------------------------  ------------------------------------------------------------------
10486          Bra          Bra
10487       NC a       /i ab
      05 Opt  
      NC b  
10488          Alt          Alt
10489       05 Opt       /i c
      NC c  
10490          Ket          Ket
10491          End          End
10492  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10547  No match Line 10494  No match
10494  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10495  ------------------------------------------------------------------  ------------------------------------------------------------------
10496          Bra          Bra
10497       NC a       /i a
      04 Opt  
10498          b          b
10499          Alt          Alt
      04 Opt  
10500          c          c
10501          Ket          Ket
10502          End          End
# Line 10598  No match Line 10543  No match
10543  ------------------------------------------------------------------  ------------------------------------------------------------------
10544          Bra          Bra
10545          ^          ^
10546          Once          Braposzero
10547          Brazero          SBraPos
         Once  
10548          Recurse          Recurse
10549          KetRmax          KetRpos
         Ket  
10550          Cond          Cond
10551          Cond def          Cond def
10552          CBra 1          CBra 1
# Line 10634  No match Line 10577  No match
10577          End          End
10578  ------------------------------------------------------------------  ------------------------------------------------------------------
10579    
10580  / -- 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  
10581       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
10582    
 /(?=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  
   
10583  /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
10584      ab      ab
10585   0: ab   0: ab
10586   1: ab   1: ab
10587    
 /----------------------/  
   
10588  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10589  Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
10590    
# Line 10681  Failed: an argument is not allowed for ( Line 10604  Failed: an argument is not allowed for (
10604      ACABX      ACABX
10605  No match  No match
10606    
10607  /--- 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
10608       is a bug in Perl. ---/       is a bug in Perl. ---/
10609    
10610  /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
# Line 10692  No match Line 10615  No match
10615      AC      AC
10616  No match  No match
10617    
10618  /--- 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,
10619       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  
   
 /--- Mark names can be duplicated ---/  
10620    
 /A(*:A)B|X(*:A)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XY  
 MK: A  
   
10621  /^A(*:A)B|^X(*:A)Y/K  /^A(*:A)B|^X(*:A)Y/K
10622      ** Failers      ** Failers
10623  No match  No match
10624      XAQQ      XAQQ
10625  No match, mark = A  No match, mark = A
10626    
 /--- 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  
   
10627  /--- 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
10628  optimizations defeat this. So does the PCRE optimization unless we disable it  optimizations defeat this. So does the PCRE optimization unless we disable it
10629  with \Y. ---/  with \Y. ---/
# Line 10850  No match Line 10636  No match
10636      DEFGABC\Y      DEFGABC\Y
10637  No match  No match
10638    
 /--- Repeat some tests with added studying. ---/  
   
 /A(*COMMIT)B/+KS  
     ACABX  
 No match  
   
 /A(*THEN)B|A(*THEN)C/KS  
     AC  
  0: AC  
   
 /A(*PRUNE)B|A(*PRUNE)C/KS  
     AC  
 No match  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /A(*PRUNE:A)B/KS  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*THEN:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS  
     AAAC  
 No match  
   
 /A(*:A)B|XX(*:B)Y/KS  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
 /(*COMMIT)ABC/  
     ABCDEFG  
  0: ABC  
     ** Failers  
 No match  
     DEFGABC\Y  
 No match  
   
10639  /^(ab (c+(*THEN)cd) | xyz)/x  /^(ab (c+(*THEN)cd) | xyz)/x
10640      abcccd      abcccd
10641  No match  No match
# Line 10982  No match Line 10648  No match
10648      abcccd      abcccd
10649  No match  No match
10650    
10651  /--- Perl 5.11 gets some of these wrong ---/  /--- Perl gets some of these wrong ---/
10652    
10653  /(?>.(*ACCEPT))*?5/  /(?>.(*ACCEPT))*?5/
10654      abcde      abcde
# Line 11003  No match Line 10669  No match
10669   0: a   0: a
10670   1: a   1: a
10671    
10672    /A\NB./BZ
10673    ------------------------------------------------------------------
10674            Bra
10675            A
10676            Any
10677            B
10678            Any
10679            Ket
10680            End
10681    ------------------------------------------------------------------
10682        ACBD
10683     0: ACBD
10684        *** Failers
10685    No match
10686        A\nB
10687    No match
10688        ACB\n
10689    No match
10690    
10691    /A\NB./sBZ
10692    ------------------------------------------------------------------
10693            Bra
10694            A
10695            Any
10696            B
10697            AllAny
10698            Ket
10699            End
10700    ------------------------------------------------------------------
10701        ACBD
10702     0: ACBD
10703        ACB\n
10704     0: ACB\x0a
10705        *** Failers
10706    No match
10707        A\nB
10708    No match
10709    
10710    /A\NB/<crlf>
10711        A\nB
10712     0: A\x0aB
10713        A\rB
10714     0: A\x0dB
10715        ** Failers
10716    No match
10717        A\r\nB
10718    No match
10719    
10720    /\R+b/BZ
10721    ------------------------------------------------------------------
10722            Bra
10723            \R++
10724            b
10725            Ket
10726            End
10727    ------------------------------------------------------------------
10728    
10729    /\R+\n/BZ
10730    ------------------------------------------------------------------
10731            Bra
10732            \R+
10733            \x0a
10734            Ket
10735            End
10736    ------------------------------------------------------------------
10737    
10738    /\R+\d/BZ
10739    ------------------------------------------------------------------
10740            Bra
10741            \R++
10742            \d
10743            Ket
10744            End
10745    ------------------------------------------------------------------
10746    
10747    /\d*\R/BZ
10748    ------------------------------------------------------------------
10749            Bra
10750            \d*+
10751            \R
10752            Ket
10753            End
10754    ------------------------------------------------------------------
10755    
10756    /\s*\R/BZ
10757    ------------------------------------------------------------------
10758            Bra
10759            \s*
10760            \R
10761            Ket
10762            End
10763    ------------------------------------------------------------------
10764        \x20\x0a
10765     0:  \x0a
10766        \x20\x0d
10767     0:  \x0d
10768        \x20\x0d\x0a
10769     0:  \x0d\x0a
10770    
10771    /\S*\R/BZ
10772    ------------------------------------------------------------------
10773            Bra
10774            \S*+
10775            \R
10776            Ket
10777            End
10778    ------------------------------------------------------------------
10779        a\x0a
10780     0: a\x0a
10781    
10782    /X\h*\R/BZ
10783    ------------------------------------------------------------------
10784            Bra
10785            X
10786            \h*+
10787            \R
10788            Ket
10789            End
10790    ------------------------------------------------------------------
10791        X\x20\x0a
10792     0: X \x0a
10793    
10794    /X\H*\R/BZ
10795    ------------------------------------------------------------------
10796            Bra
10797            X
10798            \H*
10799            \R
10800            Ket
10801            End
10802    ------------------------------------------------------------------
10803        X\x0d\x0a
10804     0: X\x0d\x0a
10805    
10806    /X\H+\R/BZ
10807    ------------------------------------------------------------------
10808            Bra
10809            X
10810            \H+
10811            \R
10812            Ket
10813            End
10814    ------------------------------------------------------------------
10815        X\x0d\x0a
10816     0: X\x0d\x0a
10817    
10818    /X\H++\R/BZ
10819    ------------------------------------------------------------------
10820            Bra
10821            X
10822            \H++
10823            \R
10824            Ket
10825            End
10826    ------------------------------------------------------------------
10827        X\x0d\x0a
10828    No match
10829    
10830    /(?<=abc)def/
10831        abc\P\P
10832    Partial match at offset 3: abc
10833    
10834    /abc$/
10835        abc
10836     0: abc
10837        abc\P
10838     0: abc
10839        abc\P\P
10840    Partial match: abc
10841    
10842    /abc$/m
10843        abc
10844     0: abc
10845        abc\n
10846     0: abc
10847        abc\P\P
10848    Partial match: abc
10849        abc\n\P\P
10850     0: abc
10851        abc\P
10852     0: abc
10853        abc\n\P
10854     0: abc
10855    
10856    /abc\z/
10857        abc
10858     0: abc
10859        abc\P
10860     0: abc
10861        abc\P\P
10862    Partial match: 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\b/
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    No match
10883        abc\P
10884    Partial match: abc
10885        abc\P\P
10886    Partial match: abc
10887    
10888    /.+/
10889        abc\>0
10890     0: abc
10891        abc\>1
10892     0: bc
10893        abc\>2
10894     0: c
10895        abc\>3
10896    No match
10897        abc\>4
10898    Error -24 (bad offset value)
10899        abc\>-4
10900    Error -24 (bad offset value)
10901    
10902    /^\cģ/
10903    Failed: \c must be followed by an ASCII character at offset 3
10904    
10905    /(?P<abn>(?P=abn)xxx)/BZ
10906    ------------------------------------------------------------------
10907            Bra
10908            Once
10909            CBra 1
10910            \1
10911            xxx
10912            Ket
10913            Ket
10914            Ket
10915            End
10916    ------------------------------------------------------------------
10917    
10918    /(a\1z)/BZ
10919    ------------------------------------------------------------------
10920            Bra
10921            Once
10922            CBra 1
10923            a
10924            \1
10925            z
10926            Ket
10927            Ket
10928            Ket
10929            End
10930    ------------------------------------------------------------------
10931    
10932    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10933    Failed: syntax error in subpattern name (missing terminator) at offset 29
10934    
10935    /(?P<abn>(?P=axn)xxx)/BZ
10936    Failed: reference to non-existent subpattern at offset 15
10937    
10938    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10939    ------------------------------------------------------------------
10940            Bra
10941            CBra 1
10942            \2
10943            xxx
10944            Ket
10945            CBra 2
10946            yy
10947            Ket
10948            Ket
10949            End
10950    ------------------------------------------------------------------
10951    
10952    /-- These tests are here because Perl gets the first one wrong. --/
10953    
10954    /(\R*)(.)/s
10955        \r\n
10956     0: \x0d
10957     1:
10958     2: \x0d
10959        \r\r\n\n\r
10960     0: \x0d\x0d\x0a\x0a\x0d
10961     1: \x0d\x0d\x0a\x0a
10962     2: \x0d
10963        \r\r\n\n\r\n
10964     0: \x0d\x0d\x0a\x0a\x0d
10965     1: \x0d\x0d\x0a\x0a
10966     2: \x0d
10967    
10968    /(\R)*(.)/s
10969        \r\n
10970     0: \x0d
10971     1: <unset>
10972     2: \x0d
10973        \r\r\n\n\r
10974     0: \x0d\x0d\x0a\x0a\x0d
10975     1: \x0a
10976     2: \x0d
10977        \r\r\n\n\r\n
10978     0: \x0d\x0d\x0a\x0a\x0d
10979     1: \x0a
10980     2: \x0d
10981    
10982    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10983        \r\n
10984     0: \x0d
10985     1:
10986     2: \x0d
10987        \r\r\n\n\r
10988     0: \x0d\x0d\x0a\x0a\x0d
10989     1: \x0d\x0d\x0a\x0a
10990     2: \x0d
10991        \r\r\n\n\r\n
10992     0: \x0d\x0d\x0a\x0a\x0d
10993     1: \x0d\x0d\x0a\x0a
10994     2: \x0d
10995    
10996    /-- --/
10997    
10998    /^abc$/BZ
10999    ------------------------------------------------------------------
11000            Bra
11001            ^
11002            abc
11003            $
11004            Ket
11005            End
11006    ------------------------------------------------------------------
11007    
11008    /^abc$/BZm
11009    ------------------------------------------------------------------
11010            Bra
11011         /m ^
11012            abc
11013         /m $
11014            Ket
11015            End
11016    ------------------------------------------------------------------
11017    
11018    /^(a)*+(\w)/S
11019        aaaaX
11020     0: aaaaX
11021     1: a
11022     2: X
11023        ** Failers
11024    No match
11025        aaaa
11026    No match
11027    
11028    /^(?:a)*+(\w)/S
11029        aaaaX
11030     0: aaaaX
11031     1: X
11032        ** Failers
11033    No match
11034        aaaa
11035    No match
11036    
11037    /(a)++1234/SDZ
11038    ------------------------------------------------------------------
11039            Bra
11040            CBraPos 1
11041            a
11042            KetRpos
11043            1234
11044            Ket
11045            End
11046    ------------------------------------------------------------------
11047    Capturing subpattern count = 1
11048    No options
11049    First char = 'a'
11050    Need char = '4'
11051    Subject length lower bound = 5
11052    No set of starting bytes
11053    
11054    /([abc])++1234/SI
11055    Capturing subpattern count = 1
11056    No options
11057    No first char
11058    Need char = '4'
11059    Subject length lower bound = 5
11060    Starting byte set: a b c
11061    
11062    /(?<=(abc)+)X/
11063    Failed: lookbehind assertion is not fixed length at offset 10
11064    
11065    /(^ab)/I
11066    Capturing subpattern count = 1
11067    Options: anchored
11068    No first char
11069    No need char
11070    
11071    /(^ab)++/I
11072    Capturing subpattern count = 1
11073    Options: anchored
11074    No first char
11075    No need char
11076    
11077    /(^ab|^)+/I
11078    Capturing subpattern count = 1
11079    May match empty string
11080    Options: anchored
11081    No first char
11082    No need char
11083    
11084    /(^ab|^)++/I
11085    Capturing subpattern count = 1
11086    May match empty string
11087    Options: anchored
11088    No first char
11089    No need char
11090    
11091    /(?:^ab)/I
11092    Capturing subpattern count = 0
11093    Options: anchored
11094    No first char
11095    No need char
11096    
11097    /(?:^ab)++/I
11098    Capturing subpattern count = 0
11099    Options: anchored
11100    No first char
11101    No need char
11102    
11103    /(?:^ab|^)+/I
11104    Capturing subpattern count = 0
11105    May match empty string
11106    Options: anchored
11107    No first char
11108    No need char
11109    
11110    /(?:^ab|^)++/I
11111    Capturing subpattern count = 0
11112    May match empty string
11113    Options: anchored
11114    No first char
11115    No need char
11116    
11117    /(.*ab)/I
11118    Capturing subpattern count = 1
11119    No options
11120    First char at start or follows newline
11121    Need char = 'b'
11122    
11123    /(.*ab)++/I
11124    Capturing subpattern count = 1
11125    No options
11126    First char at start or follows newline
11127    Need char = 'b'
11128    
11129    /(.*ab|.*)+/I
11130    Capturing subpattern count = 1
11131    May match empty string
11132    No options
11133    First char at start or follows newline
11134    No need char
11135    
11136    /(.*ab|.*)++/I
11137    Capturing subpattern count = 1
11138    May match empty string
11139    No options
11140    First char at start or follows newline
11141    No need char
11142    
11143    /(?:.*ab)/I
11144    Capturing subpattern count = 0
11145    No options
11146    First char at start or follows newline
11147    Need char = 'b'
11148    
11149    /(?:.*ab)++/I
11150    Capturing subpattern count = 0
11151    No options
11152    First char at start or follows newline
11153    Need char = 'b'
11154    
11155    /(?:.*ab|.*)+/I
11156    Capturing subpattern count = 0
11157    May match empty string
11158    No options
11159    First char at start or follows newline
11160    No need char
11161    
11162    /(?:.*ab|.*)++/I
11163    Capturing subpattern count = 0
11164    May match empty string
11165    No options
11166    First char at start or follows newline
11167    No need char
11168    
11169    /(?=a)[bcd]/I
11170    Capturing subpattern count = 0
11171    No options
11172    First char = 'a'
11173    No need char
11174    
11175    /((?=a))[bcd]/I
11176    Capturing subpattern count = 1
11177    No options
11178    First char = 'a'
11179    No need char
11180    
11181    /((?=a))+[bcd]/I
11182    Capturing subpattern count = 1
11183    No options
11184    First char = 'a'
11185    No need char
11186    
11187    /((?=a))++[bcd]/I
11188    Capturing subpattern count = 1
11189    No options
11190    First char = 'a'
11191    No need char
11192    
11193    /(?=a+)[bcd]/iI
11194    Capturing subpattern count = 0
11195    Options: caseless
11196    First char = 'a' (caseless)
11197    No need char
11198    
11199    /(?=a+?)[bcd]/iI
11200    Capturing subpattern count = 0
11201    Options: caseless
11202    First char = 'a' (caseless)
11203    No need char
11204    
11205    /(?=a++)[bcd]/iI
11206    Capturing subpattern count = 0
11207    Options: caseless
11208    First char = 'a' (caseless)
11209    No need char
11210    
11211    /(?=a{3})[bcd]/iI
11212    Capturing subpattern count = 0
11213    Options: caseless
11214    First char = 'a' (caseless)
11215    Need char = 'a' (caseless)
11216    
11217    /(abc)\1+/S
11218    
11219    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11220    
11221    /(?1)(?:(b(*ACCEPT))){0}/
11222        b
11223     0: b
11224    
11225    /(?1)(?:(b(*ACCEPT))){0}c/
11226        bc
11227     0: bc
11228        ** Failers
11229    No match
11230        b
11231    No match
11232    
11233    /(?1)(?:((*ACCEPT))){0}c/
11234        c
11235     0: c
11236        c\N
11237     0: c
11238    
11239    /^.*?(?(?=a)a|b(*THEN)c)/
11240        ba
11241    No match
11242    
11243    /^.*?(?(?=a)a|bc)/
11244        ba
11245     0: ba
11246    
11247    /^.*?(?(?=a)a(*THEN)b|c)/
11248        ac
11249    No match
11250    
11251    /^.*?(?(?=a)a(*THEN)b)c/
11252        ac
11253    No match
11254    
11255    /^.*?(a(*THEN)b)c/
11256        aabc
11257    No match
11258    
11259    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11260        aabc
11261     0: aabc
11262    
11263    /^.*?(a(*THEN)b|z)c/
11264        aabc
11265     0: aabc
11266     1: ab
11267    
11268    /^.*?(z|a(*THEN)b)c/
11269        aabc
11270     0: aabc
11271     1: ab
11272    
11273    /-- --/
11274    
11275    /-- These studied versions are here because they are not Perl-compatible; the
11276        studying means the mark is not seen. --/
11277    
11278    /(*MARK:A)(*SKIP:B)(C|X)/KS
11279        C
11280     0: C
11281     1: C
11282    MK: A
11283        D
11284    No match, mark = A
11285    
11286    /(*:A)A+(*SKIP:A)(B|Z)/KS
11287        AAAC
11288    No match, mark = A
11289    
11290    /-- --/
11291    
11292    "(?=a*(*ACCEPT)b)c"
11293        c
11294     0: c
11295        c\N
11296     0: c
11297    
11298    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11299        c
11300     0: c
11301        c\N
11302     0: c
11303    
11304    /(?>(*ACCEPT)b)c/
11305        c
11306     0:
11307        c\N
11308    No match
11309    
11310    /(?:(?>(a)))+a%/++
11311        %aa%
11312     0: aa%
11313     0+
11314     1: a
11315     1+ a%
11316    
11317    /(a)b|ac/++SS
11318        ac\O3
11319     0: ac
11320     0+
11321    
11322    /(a)(b)x|abc/++
11323         abc\O6
11324     0: abc
11325     0+
11326    
11327    /(a)bc|(a)(b)\2/
11328        \O3abc
11329    Matched, but too many substrings
11330     0: abc
11331        \O4abc
11332    Matched, but too many substrings
11333     0: abc
11334    
11335    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11336    Capturing subpattern count = 2
11337    No options
11338    No first char
11339    No need char
11340    Subject length lower bound = 1
11341    No set of starting bytes
11342    
11343    /(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 = 3
11349    Starting byte set: a b
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 = 4
11357    Starting byte set: a b
11358    
11359    /(abc)(?1)/SI
11360    Capturing subpattern count = 1
11361    No options
11362    First char = 'a'
11363    Need char = 'c'
11364    Subject length lower bound = 6
11365    No set of starting bytes
11366    
11367    /^(?>a)++/
11368        aa\M
11369    Minimum match() limit = 5
11370    Minimum match() recursion limit = 2
11371     0: aa
11372        aaaaaaaaa\M
11373    Minimum match() limit = 12
11374    Minimum match() recursion limit = 2
11375     0: aaaaaaaaa
11376    
11377    /(a)(?1)++/
11378        aa\M
11379    Minimum match() limit = 7
11380    Minimum match() recursion limit = 4
11381     0: aa
11382     1: a
11383        aaaaaaaaa\M
11384    Minimum match() limit = 21
11385    Minimum match() recursion limit = 4
11386     0: aaaaaaaaa
11387     1: a
11388    
11389    /(?:(foo)|(bar)|(baz))X/SS=
11390        bazfooX
11391     0: fooX
11392     1: foo
11393     2: <unset>
11394     3: <unset>
11395        foobazbarX
11396     0: barX
11397     1: <unset>
11398     2: bar
11399     3: <unset>
11400        barfooX
11401     0: fooX
11402     1: foo
11403     2: <unset>
11404     3: <unset>
11405        bazX
11406     0: bazX
11407     1: <unset>
11408     2: <unset>
11409     3: baz
11410        foobarbazX
11411     0: bazX
11412     1: <unset>
11413     2: <unset>
11414     3: baz
11415        bazfooX\O0
11416    Matched, but too many substrings
11417        bazfooX\O2
11418    Matched, but too many substrings
11419     0: fooX
11420        bazfooX\O4
11421    Matched, but too many substrings
11422     0: fooX
11423     1: <unset>
11424        bazfooX\O6
11425    Matched, but too many substrings
11426     0: fooX
11427     1: foo
11428     2: <unset>
11429        bazfooX\O8
11430    Matched, but too many substrings
11431     0: fooX
11432     1: foo
11433     2: <unset>
11434     3: <unset>
11435        bazfooX\O10
11436     0: fooX
11437     1: foo
11438     2: <unset>
11439     3: <unset>
11440    
11441    /(?=abc){3}abc/BZ
11442    ------------------------------------------------------------------
11443            Bra
11444            Assert
11445            abc
11446            Ket
11447            abc
11448            Ket
11449            End
11450    ------------------------------------------------------------------
11451    
11452    /(?=abc)+abc/BZ
11453    ------------------------------------------------------------------
11454            Bra
11455            Assert
11456            abc
11457            Ket
11458            abc
11459            Ket
11460            End
11461    ------------------------------------------------------------------
11462    
11463    /(?=abc)++abc/BZ
11464    ------------------------------------------------------------------
11465            Bra
11466            Assert
11467            abc
11468            Ket
11469            abc
11470            Ket
11471            End
11472    ------------------------------------------------------------------
11473    
11474    /(?=abc){0}xyz/BZ
11475    ------------------------------------------------------------------
11476            Bra
11477            Skip zero
11478            Assert
11479            abc
11480            Ket
11481            xyz
11482            Ket
11483            End
11484    ------------------------------------------------------------------
11485    
11486    /(?=(a))?./BZ
11487    ------------------------------------------------------------------
11488            Bra
11489            Brazero
11490            Assert
11491            CBra 1
11492            a
11493            Ket
11494            Ket
11495            Any
11496            Ket
11497            End
11498    ------------------------------------------------------------------
11499    
11500    /(?=(a))??./BZ
11501    ------------------------------------------------------------------
11502            Bra
11503            Braminzero
11504            Assert
11505            CBra 1
11506            a
11507            Ket
11508            Ket
11509            Any
11510            Ket
11511            End
11512    ------------------------------------------------------------------
11513    
11514    /^(?=(a)){0}b(?1)/BZ
11515    ------------------------------------------------------------------
11516            Bra
11517            ^
11518            Skip zero
11519            Assert
11520            CBra 1
11521            a
11522            Ket
11523            Ket
11524            b
11525            Recurse
11526            Ket
11527            End
11528    ------------------------------------------------------------------
11529    
11530    /(?(DEFINE)(a))?b(?1)/BZ
11531    ------------------------------------------------------------------
11532            Bra
11533            Cond
11534            Cond def
11535            CBra 1
11536            a
11537            Ket
11538            Ket
11539            b
11540            Recurse
11541            Ket
11542            End
11543    ------------------------------------------------------------------
11544    
11545    /^(?=(?1))?[az]([abc])d/BZ
11546    ------------------------------------------------------------------
11547            Bra
11548            ^
11549            Brazero
11550            Assert
11551            Recurse
11552            Ket
11553            [az]
11554            CBra 1
11555            [a-c]
11556            Ket
11557            d
11558            Ket
11559            End
11560    ------------------------------------------------------------------
11561    
11562    /^(?!a){0}\w+/BZ
11563    ------------------------------------------------------------------
11564            Bra
11565            ^
11566            Skip zero
11567            Assert not
11568            a
11569            Ket
11570            \w+
11571            Ket
11572            End
11573    ------------------------------------------------------------------
11574    
11575    /(?<=(abc))?xyz/BZ
11576    ------------------------------------------------------------------
11577            Bra
11578            Brazero
11579            AssertB
11580            Reverse
11581            CBra 1
11582            abc
11583            Ket
11584            Ket
11585            xyz
11586            Ket
11587            End
11588    ------------------------------------------------------------------
11589    
11590    /[:a[:abc]b:]/BZ
11591    ------------------------------------------------------------------
11592            Bra
11593            [:[a-c]
11594            b:]
11595            Ket
11596            End
11597    ------------------------------------------------------------------
11598    
11599    /((?2))((?1))/SS
11600        abc
11601    Error -26 (nested recursion at the same subject position)
11602    
11603    /((?(R2)a+|(?1)b))/SS
11604        aaaabcde
11605    Error -26 (nested recursion at the same subject position)
11606    
11607    /(?(R)a*(?1)|((?R))b)/SS
11608        aaaabcde
11609    Error -26 (nested recursion at the same subject position)
11610    
11611    /(a+|(?R)b)/
11612    Failed: recursive call could loop indefinitely at offset 7
11613    
11614    /^(a(*:A)(d|e(*:B))z|aeq)/C
11615        adz
11616    --->adz
11617     +0 ^       ^
11618     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11619     +2 ^       a
11620     +3 ^^      (*:A)
11621     +8 ^^      (d|e(*:B))
11622    Latest Mark: A
11623     +9 ^^      d
11624    +10 ^ ^     |
11625    +18 ^ ^     z
11626    +19 ^  ^    |
11627    +24 ^  ^
11628     0: adz
11629     1: adz
11630     2: d
11631        aez
11632    --->aez
11633     +0 ^       ^
11634     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11635     +2 ^       a
11636     +3 ^^      (*:A)
11637     +8 ^^      (d|e(*:B))
11638    Latest Mark: A
11639     +9 ^^      d
11640    +11 ^^      e
11641    +12 ^ ^     (*:B)
11642    +17 ^ ^     )
11643    Latest Mark: B
11644    +18 ^ ^     z
11645    +19 ^  ^    |
11646    +24 ^  ^
11647     0: aez
11648     1: aez
11649     2: e
11650        aeqwerty
11651    --->aeqwerty
11652     +0 ^            ^
11653     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11654     +2 ^            a
11655     +3 ^^           (*:A)
11656     +8 ^^           (d|e(*:B))
11657    Latest Mark: A
11658     +9 ^^           d
11659    +11 ^^           e
11660    +12 ^ ^          (*:B)
11661    +17 ^ ^          )
11662    Latest Mark: B
11663    +18 ^ ^          z
11664    +20 ^            a
11665    +21 ^^           e
11666    +22 ^ ^          q
11667    +23 ^  ^         )
11668    +24 ^  ^
11669     0: aeq
11670     1: aeq
11671    
11672    /.(*F)/
11673        \P\Pabc
11674    No match
11675    
11676    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11677    Capturing subpattern count = 0
11678    Max lookbehind = 1
11679    No options
11680    First char = 't'
11681    Need char = 't'
11682    Subject length lower bound = 18
11683    No set of starting bytes
11684    
11685    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11686    Capturing subpattern count = 0
11687    Max lookbehind = 1
11688    No options
11689    No first char
11690    No need char
11691    Subject length lower bound = 8
11692    Starting byte set: < o t u
11693    
11694    /a(*SKIP)c|b(*ACCEPT)|/+S!I
11695    Capturing subpattern count = 0
11696    May match empty string
11697    No options
11698    No first char
11699    No need char
11700    Subject length lower bound = -1
11701    No set of starting bytes
11702        a
11703     0:
11704     0+
11705    
11706    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11707    Capturing subpattern count = 0
11708    No options
11709    No first char
11710    No need char
11711    Subject length lower bound = -1
11712    Starting byte set: a b x
11713        ax
11714     0: x
11715    
11716    'a*(*ACCEPT)b'+
11717        \N\N
11718    No match
11719        abc\N\N
11720     0: a
11721     0+ bc
11722        bbb\N\N
11723     0:
11724     0+ bb
11725    
11726    /(*ACCEPT)a/+I
11727    Capturing subpattern count = 0
11728    No options
11729    No first char
11730    No need char
11731        bax
11732     0:
11733     0+ bax
11734    
11735    /z(*ACCEPT)a/+I
11736    Capturing subpattern count = 0
11737    No options
11738    First char = 'z'
11739    No need char
11740        baxzbx
11741     0: z
11742     0+ bx
11743    
11744    /a(?:.)*?a/ims
11745        \Mabbbbbbbbbbbbbbbbbbbbba
11746    Minimum match() limit = 65
11747    Minimum match() recursion limit = 2
11748     0: abbbbbbbbbbbbbbbbbbbbba
11749    
11750    /a(?:.(*THEN))*?a/ims
11751        \Mabbbbbbbbbbbbbbbbbbbbba
11752    Minimum match() limit = 86
11753    Minimum match() recursion limit = 45
11754     0: abbbbbbbbbbbbbbbbbbbbba
11755    
11756    /a(?:.(*THEN:ABC))*?a/ims
11757        \Mabbbbbbbbbbbbbbbbbbbbba
11758    Minimum match() limit = 86
11759    Minimum match() recursion limit = 45
11760     0: abbbbbbbbbbbbbbbbbbbbba
11761    
11762    /^(?>a+)(?>(z+))\w/BZ
11763    ------------------------------------------------------------------
11764            Bra
11765            ^
11766            Once_NC
11767            a+
11768            Ket
11769            Once
11770            CBra 1
11771            z+
11772            Ket
11773            Ket
11774            \w
11775            Ket
11776            End
11777    ------------------------------------------------------------------
11778        aaaazzzzb
11779     0: aaaazzzzb
11780     1: zzzz
11781        ** Failers
11782    No match
11783        aazz
11784    No match
11785    
11786    /(.)(\1|a(?2))/
11787        bab
11788     0: bab
11789     1: b
11790     2: ab
11791    
11792    /\1|(.)(?R)\1/
11793        cbbbc
11794     0: cbbbc
11795     1: c
11796    
11797    /(.)((?(1)c|a)|a(?2))/
11798        baa
11799    No match
11800    
11801    /(?P<abn>(?P=abn)xxx)/BZ
11802    ------------------------------------------------------------------
11803            Bra
11804            Once
11805            CBra 1
11806            \1
11807            xxx
11808            Ket
11809            Ket
11810            Ket
11811            End
11812    ------------------------------------------------------------------
11813    
11814    /(a\1z)/BZ
11815    ------------------------------------------------------------------
11816            Bra
11817            Once
11818            CBra 1
11819            a
11820            \1
11821            z
11822            Ket
11823            Ket
11824            Ket
11825            End
11826    ------------------------------------------------------------------
11827    
11828    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11829         \Maabbccddee
11830    Minimum match() limit = 12
11831    Minimum match() recursion limit = 3
11832     0: aabbccddee
11833    
11834    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11835         \Maabbccddee
11836    Minimum match() limit = 22
11837    Minimum match() recursion limit = 21
11838     0: aabbccddee
11839     1: aa
11840     2: bb
11841     3: cc
11842     4: dd
11843     5: ee
11844    
11845    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11846         \Maabbccddee
11847    Minimum match() limit = 18
11848    Minimum match() recursion limit = 13
11849     0: aabbccddee
11850     1: aa
11851     2: cc
11852     3: ee
11853    
11854    /^a\x41z/<JS>
11855        aAz
11856     0: aAz
11857        *** Failers
11858    No match
11859        ax41z
11860    No match
11861    
11862    /^a[m\x41]z/<JS>
11863        aAz
11864     0: aAz
11865    
11866    /^a\x1z/<JS>
11867        ax1z
11868     0: ax1z
11869    
11870    /^a\u0041z/<JS>
11871        aAz
11872     0: aAz
11873        *** Failers
11874    No match
11875        au0041z
11876    No match
11877    
11878    /^a[m\u0041]z/<JS>
11879        aAz
11880     0: aAz
11881    
11882    /^a\u041z/<JS>
11883        au041z
11884     0: au041z
11885        *** Failers
11886    No match
11887        aAz
11888    No match
11889    
11890    /^a\U0041z/<JS>
11891        aU0041z
11892     0: aU0041z
11893        *** Failers
11894    No match
11895        aAz
11896    No match
11897    
11898    /(?(?=c)c|d)++Y/BZ
11899    ------------------------------------------------------------------
11900            Bra
11901            BraPos
11902            Cond
11903            Assert
11904            c
11905            Ket
11906            c
11907            Alt
11908            d
11909            Ket
11910            KetRpos
11911            Y
11912            Ket
11913            End
11914    ------------------------------------------------------------------
11915    
11916    /(?(?=c)c|d)*+Y/BZ
11917    ------------------------------------------------------------------
11918            Bra
11919            Braposzero
11920            BraPos
11921            Cond
11922            Assert
11923            c
11924            Ket
11925            c
11926            Alt
11927            d
11928            Ket
11929            KetRpos
11930            Y
11931            Ket
11932            End
11933    ------------------------------------------------------------------
11934    
11935    /a[\NB]c/
11936    Failed: \N is not supported in a class at offset 3
11937    
11938    /a[B-\Nc]/
11939    Failed: \N is not supported in a class at offset 5
11940    
11941    /(a)(?2){0,1999}?(b)/
11942    
11943    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11944    
11945    /--- This test, with something more complicated than individual letters, causes
11946    different behaviour in Perl. Perhaps it disables some optimization; no tag is
11947    passed back for the failures, whereas in PCRE there is a tag. ---/
11948    
11949    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11950        AABC
11951     0: AB
11952     1: A
11953     2: B
11954    MK: A
11955        XXYZ
11956     0: XXY
11957     1: <unset>
11958     2: <unset>
11959     3: X
11960     4: X
11961     5: Y
11962    MK: B
11963        ** Failers
11964    No match
11965        XAQQ
11966    No match, mark = A
11967        XAQQXZZ
11968    No match, mark = A
11969        AXQQQ
11970    No match, mark = A
11971        AXXQQQ
11972    No match, mark = B
11973    
11974    /-- Perl doesn't give marks for these, though it does if the alternatives are
11975    replaced by single letters. --/
11976    
11977    /(b|q)(*:m)f|a(*:n)w/K
11978        aw
11979     0: aw
11980    MK: n
11981        ** Failers
11982    No match, mark = n
11983        abc
11984    No match, mark = m
11985    
11986    /(q|b)(*:m)f|a(*:n)w/K
11987        aw
11988     0: aw
11989    MK: n
11990        ** Failers
11991    No match, mark = n
11992        abc
11993    No match, mark = m
11994    
11995    /-- After a partial match, the behaviour is as for a failure. --/
11996    
11997    /^a(*:X)bcde/K
11998       abc\P
11999    Partial match, mark=X: abc
12000    
12001    /-- These are here because Perl doesn't return a mark, except for the first --/
12002    
12003    /(?=(*:x))(q|)/K+
12004        abc
12005     0:
12006     0+ abc
12007     1:
12008    MK: x
12009    
12010    /(?=(*:x))((*:y)q|)/K+
12011        abc
12012     0:
12013     0+ abc
12014     1:
12015    MK: x
12016    
12017    /(?=(*:x))(?:(*:y)q|)/K+
12018        abc
12019     0:
12020     0+ abc
12021    MK: x
12022    
12023    /(?=(*:x))(?>(*:y)q|)/K+
12024        abc
12025     0:
12026     0+ abc
12027    MK: x
12028    
12029    /(?=a(*:x))(?!a(*:y)c)/K+
12030        ab
12031     0:
12032     0+ ab
12033    MK: x
12034    
12035    /(?=a(*:x))(?=a(*:y)c|)/K+
12036        ab
12037     0:
12038     0+ ab
12039    MK: x
12040    
12041    /(..)\1/
12042        ab\P
12043    Partial match: ab
12044        aba\P
12045    Partial match: aba
12046        abab\P
12047     0: abab
12048     1: ab
12049    
12050    /(..)\1/i
12051        ab\P
12052    Partial match: ab
12053        abA\P
12054    Partial match: abA
12055        aBAb\P
12056     0: aBAb
12057     1: aB
12058    
12059    /(..)\1{2,}/
12060        ab\P
12061    Partial match: ab
12062        aba\P
12063    Partial match: aba
12064        abab\P
12065    Partial match: abab
12066        ababa\P
12067    Partial match: ababa
12068        ababab\P
12069     0: ababab
12070     1: ab
12071        ababab\P\P
12072    Partial match: ababab
12073        abababa\P
12074     0: ababab
12075     1: ab
12076        abababa\P\P
12077    Partial match: abababa
12078    
12079    /(..)\1{2,}/i
12080        ab\P
12081    Partial match: ab
12082        aBa\P
12083    Partial match: aBa
12084        aBAb\P
12085    Partial match: aBAb
12086        AbaBA\P
12087    Partial match: AbaBA
12088        abABAb\P
12089     0: abABAb
12090     1: ab
12091        aBAbaB\P\P
12092    Partial match: aBAbaB
12093        abABabA\P
12094     0: abABab
12095     1: ab
12096        abaBABa\P\P
12097    Partial match: abaBABa
12098    
12099    /(..)\1{2,}?x/i
12100        ab\P
12101    Partial match: ab
12102        abA\P
12103    Partial match: abA
12104        aBAb\P
12105    Partial match: aBAb
12106        abaBA\P
12107    Partial match: abaBA
12108        abAbaB\P
12109    Partial match: abAbaB
12110        abaBabA\P
12111    Partial match: abaBabA
12112        abAbABaBx\P
12113     0: abAbABaBx
12114     1: ab
12115    
12116    /^(..)\1/
12117        aba\P
12118    Partial match: aba
12119    
12120    /^(..)\1{2,3}x/
12121        aba\P
12122    Partial match: aba
12123        ababa\P
12124    Partial match: ababa
12125        ababa\P\P
12126    Partial match: ababa
12127        abababx
12128     0: abababx
12129     1: ab
12130        ababababx
12131     0: ababababx
12132     1: ab
12133    
12134    /^(..)\1{2,3}?x/
12135        aba\P
12136    Partial match: aba
12137        ababa\P
12138    Partial match: ababa
12139        ababa\P\P
12140    Partial match: ababa
12141        abababx
12142     0: abababx
12143     1: ab
12144        ababababx
12145     0: ababababx
12146     1: ab
12147    
12148    /^(..)(\1{2,3})ab/
12149        abababab
12150     0: abababab
12151     1: ab
12152     2: abab
12153    
12154    /^\R/
12155        \r\P
12156     0: \x0d
12157        \r\P\P
12158    Partial match: \x0d
12159    
12160    /^\R{2,3}x/
12161        \r\P
12162    Partial match: \x0d
12163        \r\P\P
12164    Partial match: \x0d
12165        \r\r\P
12166    Partial match: \x0d\x0d
12167        \r\r\P\P
12168    Partial match: \x0d\x0d
12169        \r\r\r\P
12170    Partial match: \x0d\x0d\x0d
12171        \r\r\r\P\P
12172    Partial match: \x0d\x0d\x0d
12173        \r\rx
12174     0: \x0d\x0dx
12175        \r\r\rx
12176     0: \x0d\x0d\x0dx
12177    
12178    /^\R{2,3}?x/
12179        \r\P
12180    Partial match: \x0d
12181        \r\P\P
12182    Partial match: \x0d
12183        \r\r\P
12184    Partial match: \x0d\x0d
12185        \r\r\P\P
12186    Partial match: \x0d\x0d
12187        \r\r\r\P
12188    Partial match: \x0d\x0d\x0d
12189        \r\r\r\P\P
12190    Partial match: \x0d\x0d\x0d
12191        \r\rx
12192     0: \x0d\x0dx
12193        \r\r\rx
12194     0: \x0d\x0d\x0dx
12195    
12196    /^\R?x/
12197        \r\P
12198    Partial match: \x0d
12199        \r\P\P
12200    Partial match: \x0d
12201        x
12202     0: x
12203        \rx
12204     0: \x0dx
12205    
12206    /^\R+x/
12207        \r\P
12208    Partial match: \x0d
12209        \r\P\P
12210    Partial match: \x0d
12211        \r\n\P
12212    Partial match: \x0d\x0a
12213        \r\n\P\P