/[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 1495 by ph10, Sat Jul 12 18:22:54 2014 UTC
# Line 2  Line 2 
2      of PCRE's API, error diagnostics, and the compiled code of some patterns.      of PCRE's API, error diagnostics, and the compiled code of some patterns.
3      It also checks the non-Perl syntax the PCRE supports (Python, .NET,      It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4      Oniguruma). Finally, there are some tests where PCRE and Perl differ,      Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5      either because PCRE can't be compatible, or there is potential Perl      either because PCRE can't be compatible, or there is a possible Perl
6      bug. --/      bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
11    < forbid 8W
12    
 /-- Originally, the Perl 5.10 things were in here too, but now I have separated  
     many (most?) of them out into test 11. However, there may still be some  
     that were overlooked. --/  
   
13  /(a)b|/I  /(a)b|/I
14  Capturing subpattern count = 1  Capturing subpattern count = 1
15    May match empty string
16  No options  No options
17  No first char  No first char
18  No need char  No need char
# Line 103  Failed: missing terminating ] for charac Line 105  Failed: missing terminating ] for charac
105  /(?X)[\B]/  /(?X)[\B]/
106  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
107    
108    /(?X)[\R]/
109    Failed: invalid escape sequence in character class at offset 6
110    
111    /(?X)[\X]/
112    Failed: invalid escape sequence in character class at offset 6
113    
114    /[\B]/BZ
115    ------------------------------------------------------------------
116            Bra
117            B
118            Ket
119            End
120    ------------------------------------------------------------------
121    
122    /[\R]/BZ
123    ------------------------------------------------------------------
124            Bra
125            R
126            Ket
127            End
128    ------------------------------------------------------------------
129    
130    /[\X]/BZ
131    ------------------------------------------------------------------
132            Bra
133            X
134            Ket
135            End
136    ------------------------------------------------------------------
137    
138  /[z-a]/  /[z-a]/
139  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
140    
# Line 146  No options Line 178  No options
178  No first char  No first char
179  No need char  No need char
180  Subject length lower bound = 3  Subject length lower bound = 3
181  Starting byte set: c d e  Starting chars: c d e
182      this sentence eventually mentions a cat      this sentence eventually mentions a cat
183   0: cat   0: cat
184      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
# Line 158  Options: caseless Line 190  Options: caseless
190  No first char  No first char
191  No need char  No need char
192  Subject length lower bound = 3  Subject length lower bound = 3
193  Starting byte set: C D E c d e  Starting chars: C D E c d e
194      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
195   0: CAT   0: CAT
196      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
# Line 170  No options Line 202  No options
202  No first char  No first char
203  No need char  No need char
204  Subject length lower bound = 1  Subject length lower bound = 1
205  Starting byte set: a b c d  Starting chars: a b c d
206    
207  /(a|[^\dZ])/IS  /(a|[^\dZ])/IS
208  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 178  No options Line 210  No options
210  No first char  No first char
211  No need char  No need char
212  Subject length lower bound = 1  Subject length lower bound = 1
213  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
214    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
215    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
216    ? @ 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 [ \ ] ^ _ ` a b c d    ? @ 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 [ \ ] ^ _ ` a b c d
# Line 199  No options Line 231  No options
231  No first char  No first char
232  No need char  No need char
233  Subject length lower bound = 1  Subject length lower bound = 1
234  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 a b
235    
236  /(ab\2)/  /(ab\2)/
237  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
# Line 347  No need char Line 379  No need char
379   2: <unset>   2: <unset>
380   3: def   3: def
381    
 /abc/P  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/P  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/P  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/P  
     the quick brown fox  
  0: the quick brown fox  
     *** Failers  
 No match: POSIX code 17: match failed  
     The Quick Brown Fox  
 No match: POSIX code 17: match failed  
   
 /the quick brown fox/Pi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/P  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/P  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/P  
     abc  
 No match: POSIX code 17: match failed  
   
382  /)/  /)/
383  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
384    
# Line 474  Need char = '=' Line 451  Need char = '='
451    
452  /(?<!bar|cattle)foo/I  /(?<!bar|cattle)foo/I
453  Capturing subpattern count = 0  Capturing subpattern count = 0
454    Max lookbehind = 6
455  No options  No options
456  First char = 'f'  First char = 'f'
457  Need char = 'o'  Need char = 'o'
# Line 523  No need char Line 501  No need char
501    
502  /(?s).*/I  /(?s).*/I
503  Capturing subpattern count = 0  Capturing subpattern count = 0
504    May match empty string
505  Options: anchored dotall  Options: anchored dotall
506  No first char  No first char
507  No need char  No need char
# Line 533  No options Line 512  No options
512  No first char  No first char
513  No need char  No need char
514  Subject length lower bound = 1  Subject length lower bound = 1
515  Starting byte set: a b c d  Starting chars: a b c d
516    
517  /(?i)[abcd]/IS  /(?i)[abcd]/IS
518  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 541  Options: caseless Line 520  Options: caseless
520  No first char  No first char
521  No need char  No need char
522  Subject length lower bound = 1  Subject length lower bound = 1
523  Starting byte set: A B C D a b c d  Starting chars: A B C D a b c d
524    
525  /(?m)[xy]|(b|c)/IS  /(?m)[xy]|(b|c)/IS
526  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 549  Options: multiline Line 528  Options: multiline
528  No first char  No first char
529  No need char  No need char
530  Subject length lower bound = 1  Subject length lower bound = 1
531  Starting byte set: b c x y  Starting chars: b c x y
532    
533  /(^a|^b)/Im  /(^a|^b)/Im
534  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 570  Failed: conditional group contains more Line 549  Failed: conditional group contains more
549  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
550    
551  /(?(1a)/  /(?(1a)/
552  Failed: missing ) at offset 6  Failed: malformed number or name after (?( at offset 4
553    
554  /(?(1a))/  /(?(1a))/
555  Failed: reference to non-existent subpattern at offset 6  Failed: malformed number or name after (?( at offset 4
556    
557  /(?(?i))/  /(?(?i))/
558  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
# Line 602  Need char = 'h' (caseless) Line 581  Need char = 'h' (caseless)
581  ------------------------------------------------------------------  ------------------------------------------------------------------
582          Bra          Bra
583          CBra 1          CBra 1
584       01 Opt       /i b
      NC b  
585          Ket          Ket
      00 Opt  
586          Ket          Ket
587          End          End
588  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 614  No options Line 591  No options
591  First char = 'b' (caseless)  First char = 'b' (caseless)
592  No need char  No need char
593  Subject length lower bound = 1  Subject length lower bound = 1
594  No set of starting bytes  No starting char list
595    
596  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
597  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 622  No options Line 599  No options
599  No first char  No first char
600  No need char  No need char
601  Subject length lower bound = 1  Subject length lower bound = 1
602  Starting byte set: C a b c d  Starting chars: C a b c d
603    
604  /a$/I  /a$/I
605  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 658  No match Line 635  No match
635    
636  /\Aabc/Im  /\Aabc/Im
637  Capturing subpattern count = 0  Capturing subpattern count = 0
638    Max lookbehind = 1
639  Options: anchored multiline  Options: anchored multiline
640  No first char  No first char
641  No need char  No need char
# Line 683  No need char Line 661  No need char
661    
662  /(?<=foo)[ab]/IS  /(?<=foo)[ab]/IS
663  Capturing subpattern count = 0  Capturing subpattern count = 0
664    Max lookbehind = 3
665  No options  No options
666  No first char  No first char
667  No need char  No need char
668  Subject length lower bound = 1  Subject length lower bound = 1
669  Starting byte set: a b  Starting chars: a b
670    
671  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
672  Capturing subpattern count = 1  Capturing subpattern count = 1
673    Max lookbehind = 3
674  No options  No options
675  No first char  No first char
676  Need char = 'a'  Need char = 'a'
677  Subject length lower bound = 5  Subject length lower bound = 5
678  Starting byte set: a o  Starting chars: a o
679    
680  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
681  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 703  No options Line 683  No options
683  No first char  No first char
684  No need char  No need char
685  Subject length lower bound = 1  Subject length lower bound = 1
686  Starting byte set: a b  Starting chars: a b
687    
688  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
689  Capturing subpattern count = 0  Capturing subpattern count = 0
690    Max lookbehind = 4
691  Contains explicit CR or LF match  Contains explicit CR or LF match
692  Options: multiline  Options: multiline
693  No first char  No first char
# Line 724  No match Line 705  No match
705    
706  /^(?<=foo\n)bar/Im  /^(?<=foo\n)bar/Im
707  Capturing subpattern count = 0  Capturing subpattern count = 0
708    Max lookbehind = 4
709  Contains explicit CR or LF match  Contains explicit CR or LF match
710  Options: multiline  Options: multiline
711  First char at start or follows newline  First char at start or follows newline
# Line 766  Failed: lookbehind assertion is not fixe Line 748  Failed: lookbehind assertion is not fixe
748    
749  /(?<=bullock|donkey)-cart/I  /(?<=bullock|donkey)-cart/I
750  Capturing subpattern count = 0  Capturing subpattern count = 0
751    Max lookbehind = 7
752  No options  No options
753  First char = '-'  First char = '-'
754  Need char = 't'  Need char = 't'
# Line 782  No match Line 765  No match
765    
766  /(?<=ab(?i)x|y|z)/I  /(?<=ab(?i)x|y|z)/I
767  Capturing subpattern count = 0  Capturing subpattern count = 0
768    Max lookbehind = 3
769    May match empty string
770  No options  No options
771  No first char  No first char
772  No need char  No need char
773    
774  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
775  Capturing subpattern count = 2  Capturing subpattern count = 2
776    Max lookbehind = 4
777    May match empty string
778  No options  No options
779  First char at start or follows newline  No first char
780  No need char  No need char
781      alphabetabcd      alphabetabcd
782   0: alphabetabcd   0: alphabetabcd
# Line 801  No need char Line 788  No need char
788    
789  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
790  Capturing subpattern count = 0  Capturing subpattern count = 0
791    Max lookbehind = 4
792  No options  No options
793  First char = 'Z'  First char = 'Z'
794  Need char = 'Z'  Need char = 'Z'
# Line 829  No match Line 817  No match
817    
818  /(?<!(foo)a)bar/I  /(?<!(foo)a)bar/I
819  Capturing subpattern count = 1  Capturing subpattern count = 1
820    Max lookbehind = 4
821  No options  No options
822  First char = 'b'  First char = 'b'
823  Need char = 'r'  Need char = 'r'
# Line 841  No match Line 830  No match
830      fooabar      fooabar
831  No match  No match
832    
 /This one is here because Perl 5.005_02 doesn't fail it/I  
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 't'  
   
 /^(a)?(?(1)a|b)+$/I  
 Capturing subpattern count = 1  
 Options: anchored  
 No first char  
 No need char  
     *** Failers  
 No match  
     a  
 No match  
   
833  /This one is here because Perl behaves differently; see also the following/I  /This one is here because Perl behaves differently; see also the following/I
834  Capturing subpattern count = 0  Capturing subpattern count = 0
835  No options  No options
# Line 1003  Failed: numbers out of order in {} quant Line 976  Failed: numbers out of order in {} quant
976  /abc/\  /abc/\
977  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
978    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
979  /abc/\i  /abc/\i
980  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
981    
# Line 1121  No first char Line 1091  No first char
1091  No need char  No need char
1092      abc\00def\L\C0      abc\00def\L\C0
1093   0: abc\x00def   0: abc\x00def
1094   0C abc (7)   0C abc\x00def (7)
1095   0L abc   0L abc
1096    
1097  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
# Line 1217  No need char Line 1187  No need char
1187  ------------------------------------------------------------------  ------------------------------------------------------------------
1188          Bra          Bra
1189          Bra          Bra
      04 Opt  
1190          AllAny*          AllAny*
1191          X          X
1192          Alt          Alt
      04 Opt  
1193          ^          ^
1194          B          B
1195          Ket          Ket
      00 Opt  
1196          Ket          Ket
1197          End          End
1198  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1236  No need char Line 1203  No need char
1203    
1204  /\Biss\B/I+  /\Biss\B/I+
1205  Capturing subpattern count = 0  Capturing subpattern count = 0
1206    Max lookbehind = 1
1207  No options  No options
1208  First char = 'i'  First char = 'i'
1209  Need char = 's'  Need char = 's'
# Line 1243  Need char = 's' Line 1211  Need char = 's'
1211   0: iss   0: iss
1212   0+ issippi   0+ issippi
1213    
 /\Biss\B/I+P  
     Mississippi  
  0: iss  
  0+ issippi  
   
1214  /iss/IG+  /iss/IG+
1215  Capturing subpattern count = 0  Capturing subpattern count = 0
1216  No options  No options
# Line 1261  Need char = 's' Line 1224  Need char = 's'
1224    
1225  /\Biss\B/IG+  /\Biss\B/IG+
1226  Capturing subpattern count = 0  Capturing subpattern count = 0
1227    Max lookbehind = 1
1228  No options  No options
1229  First char = 'i'  First char = 'i'
1230  Need char = 's'  Need char = 's'
# Line 1270  Need char = 's' Line 1234  Need char = 's'
1234    
1235  /\Biss\B/Ig+  /\Biss\B/Ig+
1236  Capturing subpattern count = 0  Capturing subpattern count = 0
1237    Max lookbehind = 1
1238  No options  No options
1239  First char = 'i'  First char = 'i'
1240  Need char = 's'  Need char = 's'
# Line 1285  No match Line 1250  No match
1250    
1251  /(?<=[Ms])iss/Ig+  /(?<=[Ms])iss/Ig+
1252  Capturing subpattern count = 0  Capturing subpattern count = 0
1253    Max lookbehind = 1
1254  No options  No options
1255  First char = 'i'  First char = 'i'
1256  Need char = 's'  Need char = 's'
# Line 1296  Need char = 's' Line 1262  Need char = 's'
1262    
1263  /(?<=[Ms])iss/IG+  /(?<=[Ms])iss/IG+
1264  Capturing subpattern count = 0  Capturing subpattern count = 0
1265    Max lookbehind = 1
1266  No options  No options
1267  First char = 'i'  First char = 'i'
1268  Need char = 's'  Need char = 's'
# Line 1377  Capturing subpattern count = 0 Line 1344  Capturing subpattern count = 0
1344  Contains explicit CR or LF match  Contains explicit CR or LF match
1345  Options: multiline  Options: multiline
1346  First char at start or follows newline  First char at start or follows newline
1347  Need char = 10  Need char = \x0a
1348      ab\nab\ncd      ab\nab\ncd
1349   0: ab\x0a   0: ab\x0a
1350   0+ ab\x0acd   0+ ab\x0acd
# Line 1416  Need char = 'c' Line 1383  Need char = 'c'
1383    
1384  /a*/I  /a*/I
1385  Capturing subpattern count = 0  Capturing subpattern count = 0
1386    May match empty string
1387  No options  No options
1388  No first char  No first char
1389  No need char  No need char
# Line 1434  Need char = 'a' Line 1402  Need char = 'a'
1402    
1403  /a{0,3}/I  /a{0,3}/I
1404  Capturing subpattern count = 0  Capturing subpattern count = 0
1405    May match empty string
1406  No options  No options
1407  No first char  No first char
1408  No need char  No need char
# Line 1476  Need char = 'r' Line 1445  Need char = 'r'
1445    
1446  /...(?<=abc)/I  /...(?<=abc)/I
1447  Capturing subpattern count = 0  Capturing subpattern count = 0
1448    Max lookbehind = 3
1449  No options  No options
1450  No first char  No first char
1451  No need char  No need char
# Line 1632  Need char = 'e' Line 1602  Need char = 'e'
1602    
1603  /a?b?/I  /a?b?/I
1604  Capturing subpattern count = 0  Capturing subpattern count = 0
1605    May match empty string
1606  No options  No options
1607  No first char  No first char
1608  No need char  No need char
# Line 1650  No match Line 1621  No match
1621    
1622  /|-/I  /|-/I
1623  Capturing subpattern count = 0  Capturing subpattern count = 0
1624    May match empty string
1625  No options  No options
1626  No first char  No first char
1627  No need char  No need char
# Line 1664  No need char Line 1636  No need char
1636      \Nabc      \Nabc
1637  No match  No match
1638    
 /a*(b+)(z)(z)/P  
     aaaabbbbzzzz  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
  0: aaaabbbbzz  
     aaaabbbbzzzz\O2  
  0: aaaabbbbzz  
  1: bbbb  
     aaaabbbbzzzz\O3  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
     aaaabbbbzzzz\O4  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O5  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
   
1639  /^.?abcd/IS  /^.?abcd/IS
1640  Capturing subpattern count = 0  Capturing subpattern count = 0
1641  Options: anchored  Options: anchored
1642  No first char  No first char
1643  Need char = 'd'  Need char = 'd'
1644  Subject length lower bound = 4  Subject length lower bound = 4
1645  No set of starting bytes  No starting char list
1646    
1647  /\(             # ( at start  /\(             # ( at start
1648    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1930  No options Line 1875  No options
1875  No first char  No first char
1876  No need char  No need char
1877  Subject length lower bound = 1  Subject length lower bound = 1
1878  Starting byte set: 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  Starting chars: 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
1879    _ 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
1880    
1881  /^[[:ascii:]]/DZ  /^[[:ascii:]]/DZ
# Line 1992  No options Line 1937  No options
1937  No first char  No first char
1938  No need char  No need char
1939  Subject length lower bound = 1  Subject length lower bound = 1
1940  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting chars: \x09 \x0a \x0b \x0c \x0d \x20
1941    
1942  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
1943  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2690  Need char = '-' Line 2635  Need char = '-'
2635          End          End
2636  ------------------------------------------------------------------  ------------------------------------------------------------------
2637  Capturing subpattern count = 0  Capturing subpattern count = 0
2638    May match empty string
2639  Options: extended  Options: extended
2640  No first char  No first char
2641  No need char  No need char
# Line 2709  No need char Line 2655  No need char
2655  /[\s]/DZ  /[\s]/DZ
2656  ------------------------------------------------------------------  ------------------------------------------------------------------
2657          Bra          Bra
2658          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
2659          Ket          Ket
2660          End          End
2661  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2721  No need char Line 2667  No need char
2667  /[\S]/DZ  /[\S]/DZ
2668  ------------------------------------------------------------------  ------------------------------------------------------------------
2669          Bra          Bra
2670          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)          [\x00-\x08\x0e-\x1f!-\xff] (neg)
2671          Ket          Ket
2672          End          End
2673  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2734  No need char Line 2680  No need char
2680  ------------------------------------------------------------------  ------------------------------------------------------------------
2681          Bra          Bra
2682          a          a
2683       01 Opt       /i b
      NC b  
2684          Ket          Ket
2685          End          End
2686  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2757  No match Line 2702  No match
2702          Bra          Bra
2703          CBra 1          CBra 1
2704          a          a
2705       01 Opt       /i b
      NC b  
2706          Ket          Ket
      00 Opt  
2707          Ket          Ket
2708          End          End
2709  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2782  No match Line 2725  No match
2725  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2726  ------------------------------------------------------------------  ------------------------------------------------------------------
2727          Bra          Bra
2728       NC abc       /i abc
2729          Ket          Ket
2730          End          End
2731  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2795  Need char = 'c' (caseless) Line 2738  Need char = 'c' (caseless)
2738    (?i)abc/IxDZ    (?i)abc/IxDZ
2739  ------------------------------------------------------------------  ------------------------------------------------------------------
2740          Bra          Bra
2741       NC abc       /i abc
2742          Ket          Ket
2743          End          End
2744  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2835  Need char = '0' Line 2778  Need char = '0'
2778          End          End
2779  ------------------------------------------------------------------  ------------------------------------------------------------------
2780  Capturing subpattern count = 0  Capturing subpattern count = 0
2781    May match empty string
2782  No options  No options
2783  No first char  No first char
2784  No need char  No need char
# Line 2934  No match Line 2878  No match
2878          End          End
2879  ------------------------------------------------------------------  ------------------------------------------------------------------
2880  Capturing subpattern count = 0  Capturing subpattern count = 0
2881    May match empty string
2882  No options  No options
2883  No first char  No first char
2884  No need char  No need char
# Line 2950  No options Line 2895  No options
2895  First char = 'x'  First char = 'x'
2896  No need char  No need char
2897    
2898  /x{1,3}+/DZ  /x{1,3}+/BZO
2899  ------------------------------------------------------------------  ------------------------------------------------------------------
2900          Bra          Bra
         Once  
2901          x          x
2902          x{0,2}          x{0,2}+
2903          Ket          Ket
2904            End
2905    ------------------------------------------------------------------
2906    
2907    /x{1,3}+/BZOi
2908    ------------------------------------------------------------------
2909            Bra
2910         /i x
2911         /i x{0,2}+
2912            Ket
2913            End
2914    ------------------------------------------------------------------
2915    
2916    /[^x]{1,3}+/BZO
2917    ------------------------------------------------------------------
2918            Bra
2919            [^x]
2920            [^x]{0,2}+
2921            Ket
2922            End
2923    ------------------------------------------------------------------
2924    
2925    /[^x]{1,3}+/BZOi
2926    ------------------------------------------------------------------
2927            Bra
2928         /i [^x]
2929         /i [^x]{0,2}+
2930          Ket          Ket
2931          End          End
2932  ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  
 No options  
 First char = 'x'  
 No need char  
2933    
2934  /(x)*+/DZ  /(x)*+/DZ
2935  ------------------------------------------------------------------  ------------------------------------------------------------------
2936          Bra          Bra
2937          Once          Braposzero
2938          Brazero          CBraPos 1
         CBra 1  
2939          x          x
2940          KetRmax          KetRpos
         Ket  
2941          Ket          Ket
2942          End          End
2943  ------------------------------------------------------------------  ------------------------------------------------------------------
2944  Capturing subpattern count = 1  Capturing subpattern count = 1
2945    May match empty string
2946  No options  No options
2947  No first char  No first char
2948  No need char  No need char
2949    
2950  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2951  Capturing subpattern count = 1  Capturing subpattern count = 1
2952    May match empty string
2953  Options: anchored  Options: anchored
2954  No first char  No first char
2955  No need char  No need char
# Line 3145  Need char = 'b' Line 3111  Need char = 'b'
3111          [bc]+          [bc]+
3112          Ket          Ket
3113          CBra 5          CBra 5
3114          \w*          \w*+
3115          Ket          Ket
3116          Ket          Ket
3117          Ket          Ket
# Line 3198  Failed: POSIX collating elements are not Line 3164  Failed: POSIX collating elements are not
3164  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3165    
3166  /\l/I  /\l/I
3167  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3168    
3169  /\L/I  /\L/I
3170  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3171    
3172  /\N{name}/I  /\N{name}/I
3173  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3174    
3175  /\u/I  /\u/I
3176  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3177    
3178  /\U/I  /\U/I
3179  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3180    
3181    /a{1,3}b/U
3182        ab
3183     0: ab
3184    
3185  /[/I  /[/I
3186  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3224  Failed: missing terminating ] for charac Line 3194  Failed: missing terminating ] for charac
3194  /[\s]/IDZ  /[\s]/IDZ
3195  ------------------------------------------------------------------  ------------------------------------------------------------------
3196          Bra          Bra
3197          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
3198          Ket          Ket
3199          End          End
3200  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3288  No match Line 3258  No match
3258          End          End
3259  ------------------------------------------------------------------  ------------------------------------------------------------------
3260  Capturing subpattern count = 0  Capturing subpattern count = 0
3261    Max lookbehind = 1
3262  No options  No options
3263  First char = '8'  First char = '8'
3264  Need char = 'X'  Need char = 'X'
# Line 3301  Need char = 'X' Line 3272  Need char = 'X'
3272          End          End
3273  ------------------------------------------------------------------  ------------------------------------------------------------------
3274  Capturing subpattern count = 0  Capturing subpattern count = 0
3275    Max lookbehind = 1
3276  No options  No options
3277  First char = '$'  First char = '$'
3278  Need char = 'X'  Need char = 'X'
# Line 3357  Need char = 'b' Line 3329  Need char = 'b'
3329    
3330  /(?=a).*/I  /(?=a).*/I
3331  Capturing subpattern count = 0  Capturing subpattern count = 0
3332    May match empty string
3333  No options  No options
3334  First char = 'a'  First char = 'a'
3335  No need char  No need char
# Line 3375  Need char = 'z' (caseless) Line 3348  Need char = 'z' (caseless)
3348    
3349  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3350  Capturing subpattern count = 0  Capturing subpattern count = 0
3351    May match empty string
3352  No options  No options
3353  First char = 'a'  First char = 'a'
3354  No need char  No need char
# Line 3441  Need char = 'a' Line 3415  Need char = 'a'
3415    
3416  /(a)*/I  /(a)*/I
3417  Capturing subpattern count = 1  Capturing subpattern count = 1
3418    May match empty string
3419  No options  No options
3420  No first char  No first char
3421  No need char  No need char
# Line 3463  No options Line 3438  No options
3438  No first char  No first char
3439  No need char  No need char
3440  Subject length lower bound = 1  Subject length lower bound = 1
3441  Starting byte set: a b  Starting chars: a b
3442    
3443  /[^a]/I  /[^a]/I
3444  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3483  No options Line 3458  No options
3458  No first char  No first char
3459  Need char = '6'  Need char = '6'
3460  Subject length lower bound = 4  Subject length lower bound = 4
3461  Starting byte set: 0 1 2 3 4 5 6 7 8 9  Starting chars: 0 1 2 3 4 5 6 7 8 9
3462    
3463  /a^b/I  /a^b/I
3464  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3517  Options: caseless Line 3492  Options: caseless
3492  No first char  No first char
3493  No need char  No need char
3494  Subject length lower bound = 1  Subject length lower bound = 1
3495  Starting byte set: A B a b  Starting chars: A B a b
3496    
3497  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3498  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3525  No options Line 3500  No options
3500  No first char  No first char
3501  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3502  Subject length lower bound = 3  Subject length lower bound = 3
3503  Starting byte set: a b  Starting chars: a b
3504    
3505  /abc(?C)def/I  /abc(?C)def/I
3506  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3560  Need char = 'f' Line 3535  Need char = 'f'
3535    1    ^    ^     f    1    ^    ^     f
3536   0: abcdef   0: abcdef
3537    
3538  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3539    Capturing subpattern count = 0
3540    No options
3541    No first char
3542    Need char = 'f'
3543    Subject length lower bound = 7
3544    Starting chars: 0 1 2 3 4 5 6 7 8 9
3545        1234abcdef
3546    --->1234abcdef
3547      1 ^              \d
3548      1  ^             \d
3549      1   ^            \d
3550      1    ^           \d
3551      2    ^   ^       d
3552     0: 4abcdef
3553        *** Failers
3554    No match
3555        abcdef
3556    No match
3557    
3558    /(?C1)\dabc(?C2)def/ISS
3559  Capturing subpattern count = 0  Capturing subpattern count = 0
3560  No options  No options
3561  No first char  No first char
# Line 3649  No match Line 3644  No match
3644    
3645  /(?C0)(abc(?C1))*/I  /(?C0)(abc(?C1))*/I
3646  Capturing subpattern count = 1  Capturing subpattern count = 1
3647    May match empty string
3648  No options  No options
3649  No first char  No first char
3650  No need char  No need char
# Line 3682  No need char Line 3678  No need char
3678    
3679  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3680  Capturing subpattern count = 1  Capturing subpattern count = 1
3681    May match empty string
3682  No options  No options
3683  No first char  No first char
3684  No need char  No need char
# Line 3796  Callout 2: last capture = -1 Line 3793  Callout 2: last capture = -1
3793    
3794  /(?<=(abc)(?C))xyz/I  /(?<=(abc)(?C))xyz/I
3795  Capturing subpattern count = 1  Capturing subpattern count = 1
3796    Max lookbehind = 3
3797  No options  No options
3798  First char = 'x'  First char = 'x'
3799  Need char = 'z'  Need char = 'z'
# Line 3817  Need char = 'b' Line 3815  Need char = 'b'
3815  --->abbbbbccc  --->abbbbbccc
3816    1 ^        ^    1 ^        ^
3817  Callout data = 1  Callout data = 1
   1 ^       ^  
 Callout data = 1  
   1 ^      ^  
 Callout data = 1  
   1 ^     ^  
 Callout data = 1  
   1 ^    ^  
 Callout data = 1  
   1 ^   ^  
 Callout data = 1  
   1 ^  ^  
 Callout data = 1  
   1 ^ ^  
 Callout data = 1  
3818  No match  No match
3819    
3820  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
# Line 3876  No options Line 3860  No options
3860  No first char  No first char
3861  No need char  No need char
3862  Subject length lower bound = 1  Subject length lower bound = 1
3863  Starting byte set: a b  Starting chars: a b
3864    
3865  /(?R)/I  /(?R)/I
3866  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
# Line 3927  Failed: recursive call could loop indefi Line 3911  Failed: recursive call could loop indefi
3911    
3912  /^([^()]|\((?1)*\))*$/I  /^([^()]|\((?1)*\))*$/I
3913  Capturing subpattern count = 1  Capturing subpattern count = 1
3914    May match empty string
3915  Options: anchored  Options: anchored
3916  No first char  No first char
3917  No need char  No need char
# Line 3964  Need char = '<' Line 3949  Need char = '<'
3949          Bra          Bra
3950          CBra 1          CBra 1
3951          a          a
         Once  
3952          Recurse          Recurse
         Ket  
3953          b          b
3954          Ket          Ket
3955          Ket          Ket
# Line 4187  Need char = 'a' Line 4170  Need char = 'a'
4170          Any          Any
4171          \1          \1
4172          bbb          bbb
         Once  
4173          Recurse          Recurse
         Ket  
4174          d          d
4175          Ket          Ket
4176          End          End
# Line 4210  Named capturing subpatterns: Line 4191  Named capturing subpatterns:
4191    one     1    one     1
4192    three   3    three   3
4193    two     2    two     2
4194    May match empty string
4195  Options: anchored caseless  Options: anchored caseless
4196  No first char  No first char
4197  No need char  No need char
# Line 4309  Need char = 'z' Line 4291  Need char = 'z'
4291    
4292  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4293  Capturing subpattern count = 31  Capturing subpattern count = 31
4294    May match empty string
4295  Options: anchored dotall  Options: anchored dotall
4296  No first char  No first char
4297  No need char  No need char
# Line 4316  No need char Line 4299  No need char
4299  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4300  Capturing subpattern count = 31  Capturing subpattern count = 31
4301  Max back reference = 31  Max back reference = 31
4302    May match empty string
4303  Options: dotall  Options: dotall
4304  No first char  No first char
4305  No need char  No need char
# Line 4323  No need char Line 4307  No need char
4307  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4308  Capturing subpattern count = 32  Capturing subpattern count = 32
4309  Max back reference = 32  Max back reference = 32
4310    May match empty string
4311  Options: dotall  Options: dotall
4312  No first char  No first char
4313  No need char  No need char
# Line 4399  Minimum match() recursion limit = 6 Line 4384  Minimum match() recursion limit = 6
4384   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4385    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4386  Minimum match() limit = 32768  Minimum match() limit = 32768
4387  Minimum match() recursion limit = 42  Minimum match() recursion limit = 29
4388  No match  No match
4389    
4390  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4474  Capturing subpattern count = 2 Line 4459  Capturing subpattern count = 2
4459  Named capturing subpatterns:  Named capturing subpatterns:
4460    Tes    1    Tes    1
4461    Test   2    Test   2
4462    May match empty string
4463  No options  No options
4464  No first char  No first char
4465  No need char  No need char
# Line 4492  Capturing subpattern count = 2 Line 4478  Capturing subpattern count = 2
4478  Named capturing subpatterns:  Named capturing subpatterns:
4479    Tes    2    Tes    2
4480    Test   1    Test   1
4481    May match empty string
4482  No options  No options
4483  No first char  No first char
4484  No need char  No need char
# Line 4561  Need char = ']' Line 4548  Need char = ']'
4548          a          a
4549          CBra 2          CBra 2
4550          b          b
         Once  
4551          Recurse          Recurse
         Ket  
4552          c          c
4553          Ket          Ket
4554          Ket          Ket
# Line 4571  Need char = ']' Line 4556  Need char = ']'
4556          End          End
4557  ------------------------------------------------------------------  ------------------------------------------------------------------
4558  Capturing subpattern count = 2  Capturing subpattern count = 2
4559    May match empty string
4560  No options  No options
4561  No first char  No first char
4562  No need char  No need char
# Line 4583  No need char Line 4569  No need char
4569          a          a
4570          CBra 2          CBra 2
4571          b          b
         Once  
4572          Recurse          Recurse
         Ket  
4573          c          c
4574          Ket          Ket
4575          KetRmax          KetRmax
# Line 4593  No need char Line 4577  No need char
4577          End          End
4578  ------------------------------------------------------------------  ------------------------------------------------------------------
4579  Capturing subpattern count = 2  Capturing subpattern count = 2
4580    May match empty string
4581  No options  No options
4582  No first char  No first char
4583  No need char  No need char
# Line 4606  No need char Line 4591  No need char
4591          a          a
4592          CBra 2          CBra 2
4593          b          b
         Once  
4594          Recurse          Recurse
         Ket  
4595          c          c
4596          Ket          Ket
4597          Ket          Ket
# Line 4617  No need char Line 4600  No need char
4600          a          a
4601          CBra 2          CBra 2
4602          b          b
         Once  
4603          Recurse          Recurse
         Ket  
4604          c          c
4605          Ket          Ket
4606          Ket          Ket
# Line 4628  No need char Line 4609  No need char
4609          End          End
4610  ------------------------------------------------------------------  ------------------------------------------------------------------
4611  Capturing subpattern count = 2  Capturing subpattern count = 2
4612    May match empty string
4613  No options  No options
4614  No first char  No first char
4615  No need char  No need char
# Line 4635  No need char Line 4617  No need char
4617  /[ab]{1}+/DZ  /[ab]{1}+/DZ
4618  ------------------------------------------------------------------  ------------------------------------------------------------------
4619          Bra          Bra
4620          Once          [ab]{1,1}+
         [ab]{1,1}  
         Ket  
4621          Ket          Ket
4622          End          End
4623  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4661  Options: caseless Line 4641  Options: caseless
4641  No first char  No first char
4642  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4643  Subject length lower bound = 8  Subject length lower bound = 8
4644  No set of starting bytes  No starting char list
4645       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4646   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4647   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4680  No options Line 4660  No options
4660  No first char  No first char
4661  Need char = 'b'  Need char = 'b'
4662  Subject length lower bound = 1  Subject length lower bound = 1
4663  No set of starting bytes  No starting char list
4664    
4665  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4666  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4701  No options Line 4681  No options
4681  No first char  No first char
4682  Need char = 'c'  Need char = 'c'
4683  Subject length lower bound = 1  Subject length lower bound = 1
4684  No set of starting bytes  No starting char list
4685    
4686  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4687  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4758  Need char = 'e' Line 4738  Need char = 'e'
4738   +4 ^   ^      e   +4 ^   ^      e
4739  No match  No match
4740    
4741  /a*b/ICDZ  /a*b/ICDZS
4742    ------------------------------------------------------------------
4743            Bra
4744            Callout 255 0 2
4745            a*+
4746            Callout 255 2 1
4747            b
4748            Callout 255 3 0
4749            Ket
4750            End
4751    ------------------------------------------------------------------
4752    Capturing subpattern count = 0
4753    Options:
4754    No first char
4755    Need char = 'b'
4756    Subject length lower bound = 1
4757    Starting chars: a b
4758      ab
4759    --->ab
4760     +0 ^      a*
4761     +2 ^^     b
4762     +3 ^ ^
4763     0: ab
4764      aaaab
4765    --->aaaab
4766     +0 ^         a*
4767     +2 ^   ^     b
4768     +3 ^    ^
4769     0: aaaab
4770      aaaacb
4771    --->aaaacb
4772     +0 ^          a*
4773     +2 ^   ^      b
4774     +0  ^         a*
4775     +2  ^  ^      b
4776     +0   ^        a*
4777     +2   ^ ^      b
4778     +0    ^       a*
4779     +2    ^^      b
4780     +0      ^     a*
4781     +2      ^     b
4782     +3      ^^
4783     0: b
4784    
4785    /a*b/ICDZSS
4786  ------------------------------------------------------------------  ------------------------------------------------------------------
4787          Bra          Bra
4788          Callout 255 0 2          Callout 255 0 2
# Line 4841  Need char = 'b' Line 4865  Need char = 'b'
4865   +2    ^^      b   +2    ^^      b
4866  No match  No match
4867    
4868  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4869  ------------------------------------------------------------------  ------------------------------------------------------------------
4870          Bra          Bra
4871          Callout 255 0 9          Callout 255 0 9
# Line 4872  Capturing subpattern count = 1 Line 4896  Capturing subpattern count = 1
4896  Options:  Options:
4897  No first char  No first char
4898  Need char = 'x'  Need char = 'x'
4899    Subject length lower bound = 4
4900    Starting chars: a d
4901    abcx    abcx
4902  --->abcx  --->abcx
4903   +0 ^        (abc|def)   +0 ^        (abc|def)
# Line 4895  Need char = 'x' Line 4921  Need char = 'x'
4921  +10 ^   ^  +10 ^   ^
4922   0: defx   0: defx
4923   1: def   1: def
4924      ** Failers
4925    No match
4926    abcdefzx    abcdefzx
4927  --->abcdefzx  --->abcdefzx
4928   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4904  Need char = 'x' Line 4932  Need char = 'x'
4932   +4 ^  ^         |   +4 ^  ^         |
4933   +9 ^  ^         x   +9 ^  ^         x
4934   +5 ^            d   +5 ^            d
  +0  ^           (abc|def)  
  +1  ^           a  
  +5  ^           d  
  +0   ^          (abc|def)  
  +1   ^          a  
  +5   ^          d  
4935   +0    ^         (abc|def)   +0    ^         (abc|def)
4936   +1    ^         a   +1    ^         a
4937   +5    ^         d   +5    ^         d
# Line 4917  Need char = 'x' Line 4939  Need char = 'x'
4939   +7    ^ ^       f   +7    ^ ^       f
4940   +8    ^  ^      )   +8    ^  ^      )
4941   +9    ^  ^      x   +9    ^  ^      x
  +0     ^        (abc|def)  
  +1     ^        a  
  +5     ^        d  
  +0      ^       (abc|def)  
  +1      ^       a  
  +5      ^       d  
  +0       ^      (abc|def)  
  +1       ^      a  
  +5       ^      d  
  +0        ^     (abc|def)  
  +1        ^     a  
  +5        ^     d  
4942  No match  No match
4943    
4944  /(ab|cd){3,4}/IC  /(abc|def)x/ICDZSS
4945  Capturing subpattern count = 1  ------------------------------------------------------------------
4946  Options:          Bra
4947  No first char          Callout 255 0 9
4948  No need char          CBra 1
4949    ababab          Callout 255 1 1
4950  --->ababab          a
4951   +0 ^          (ab|cd){3,4}          Callout 255 2 1
4952   +1 ^          a          b
4953   +2 ^^         b          Callout 255 3 1
4954   +3 ^ ^        |          c
4955   +1 ^ ^        a          Callout 255 4 0
4956   +2 ^  ^       b          Alt
4957   +3 ^   ^      |          Callout 255 5 1
4958   +1 ^   ^      a          d
4959   +2 ^    ^     b          Callout 255 6 1
4960   +3 ^     ^    |          e
4961   +1 ^     ^    a          Callout 255 7 1
4962   +4 ^     ^    c          f
4963  +12 ^     ^          Callout 255 8 0
4964   0: ababab          Ket
4965   1: ab          Callout 255 9 1
4966    abcdabcd          x
4967  --->abcdabcd          Callout 255 10 0
4968   +0 ^            (ab|cd){3,4}          Ket
4969   +1 ^            a          End
4970    ------------------------------------------------------------------
4971    Capturing subpattern count = 1
4972    Options:
4973    No first char
4974    Need char = 'x'
4975      abcx
4976    --->abcx
4977     +0 ^        (abc|def)
4978     +1 ^        a
4979     +2 ^^       b
4980     +3 ^ ^      c
4981     +4 ^  ^     |
4982     +9 ^  ^     x
4983    +10 ^   ^
4984     0: abcx
4985     1: abc
4986      defx
4987    --->defx
4988     +0 ^        (abc|def)
4989     +1 ^        a
4990     +5 ^        d
4991     +6 ^^       e
4992     +7 ^ ^      f
4993     +8 ^  ^     )
4994     +9 ^  ^     x
4995    +10 ^   ^
4996     0: defx
4997     1: def
4998      ** Failers
4999    No match
5000      abcdefzx
5001    --->abcdefzx
5002     +0 ^            (abc|def)
5003     +1 ^            a
5004     +2 ^^           b
5005     +3 ^ ^          c
5006     +4 ^  ^         |
5007     +9 ^  ^         x
5008     +5 ^            d
5009     +0  ^           (abc|def)
5010     +1  ^           a
5011     +5  ^           d
5012     +0   ^          (abc|def)
5013     +1   ^          a
5014     +5   ^          d
5015     +0    ^         (abc|def)
5016     +1    ^         a
5017     +5    ^         d
5018     +6    ^^        e
5019     +7    ^ ^       f
5020     +8    ^  ^      )
5021     +9    ^  ^      x
5022     +0     ^        (abc|def)
5023     +1     ^        a
5024     +5     ^        d
5025     +0      ^       (abc|def)
5026     +1      ^       a
5027     +5      ^       d
5028     +0       ^      (abc|def)
5029     +1       ^      a
5030     +5       ^      d
5031     +0        ^     (abc|def)
5032     +1        ^     a
5033     +5        ^     d
5034    No match
5035    
5036    /(ab|cd){3,4}/IC
5037    Capturing subpattern count = 1
5038    Options:
5039    No first char
5040    No need char
5041      ababab
5042    --->ababab
5043     +0 ^          (ab|cd){3,4}
5044     +1 ^          a
5045     +2 ^^         b
5046     +3 ^ ^        |
5047     +1 ^ ^        a
5048     +2 ^  ^       b
5049     +3 ^   ^      |
5050     +1 ^   ^      a
5051     +2 ^    ^     b
5052     +3 ^     ^    |
5053     +1 ^     ^    a
5054     +4 ^     ^    c
5055    +12 ^     ^
5056     0: ababab
5057     1: ab
5058      abcdabcd
5059    --->abcdabcd
5060     +0 ^            (ab|cd){3,4}
5061     +1 ^            a
5062   +2 ^^           b   +2 ^^           b
5063   +3 ^ ^          |   +3 ^ ^          |
5064   +1 ^ ^          a   +1 ^ ^          a
# Line 4995  No need char Line 5097  No need char
5097   0: abcdcdcd   0: abcdcdcd
5098   1: cd   1: cd
5099    
5100  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5101    ------------------------------------------------------------------
5102            Bra
5103            Callout 255 0 14
5104            CBra 1
5105            Callout 255 1 4
5106            [ab]
5107            Callout 255 5 1
5108            {
5109            Callout 255 6 1
5110            ,
5111            Callout 255 7 1
5112            4
5113            Callout 255 8 1
5114            }
5115            Callout 255 9 1
5116            c
5117            Callout 255 10 0
5118            Alt
5119            Callout 255 11 1
5120            x
5121            Callout 255 12 1
5122            y
5123            Callout 255 13 0
5124            Ket
5125            Callout 255 14 0
5126            Ket
5127            End
5128    ------------------------------------------------------------------
5129    Capturing subpattern count = 1
5130    Options:
5131    No first char
5132    No need char
5133    Subject length lower bound = 2
5134    Starting chars: a b x
5135        Note: that { does NOT introduce a quantifier
5136    --->Note: that { does NOT introduce a quantifier
5137     +0         ^                                        ([ab]{,4}c|xy)
5138     +1         ^                                        [ab]
5139     +5         ^^                                       {
5140    +11         ^                                        x
5141     +0                                 ^                ([ab]{,4}c|xy)
5142     +1                                 ^                [ab]
5143     +5                                 ^^               {
5144    +11                                 ^                x
5145     +0                                     ^            ([ab]{,4}c|xy)
5146     +1                                     ^            [ab]
5147     +5                                     ^^           {
5148    +11                                     ^            x
5149    No match
5150    
5151    /([ab]{,4}c|xy)/ICDZSS
5152  ------------------------------------------------------------------  ------------------------------------------------------------------
5153          Bra          Bra
5154          Callout 255 0 14          Callout 255 0 14
# Line 5176  No match Line 5329  No match
5329          Callout 255 0 21          Callout 255 0 21
5330          CBra 1          CBra 1
5331          Callout 255 1 9          Callout 255 1 9
5332          [ab]{1,4}          [ab]{1,4}+
5333          Callout 255 10 1          Callout 255 10 1
5334          c          c
5335          Callout 255 11 0          Callout 255 11 0
# Line 5189  No match Line 5342  No match
5342          Ket          Ket
5343          CBra 1          CBra 1
5344          Callout 255 1 9          Callout 255 1 9
5345          [ab]{1,4}          [ab]{1,4}+
5346          Callout 255 10 1          Callout 255 10 1
5347          c          c
5348          Callout 255 11 0          Callout 255 11 0
# Line 5202  No match Line 5355  No match
5355          Ket          Ket
5356          CBra 1          CBra 1
5357          Callout 255 1 9          Callout 255 1 9
5358          [ab]{1,4}          [ab]{1,4}+
5359          Callout 255 10 1          Callout 255 10 1
5360          c          c
5361          Callout 255 11 0          Callout 255 11 0
# Line 5215  No match Line 5368  No match
5368          Ket          Ket
5369          CBra 1          CBra 1
5370          Callout 255 1 9          Callout 255 1 9
5371          [ab]{1,4}          [ab]{1,4}+
5372          Callout 255 10 1          Callout 255 10 1
5373          c          c
5374          Callout 255 11 0          Callout 255 11 0
# Line 5229  No match Line 5382  No match
5382          Braminzero          Braminzero
5383          CBra 1          CBra 1
5384          Callout 255 1 9          Callout 255 1 9
5385          [ab]{1,4}          [ab]{1,4}+
5386          Callout 255 10 1          Callout 255 10 1
5387          c          c
5388          Callout 255 11 0          Callout 255 11 0
# Line 5282  Need char = '3' Line 5435  Need char = '3'
5435    
5436  /\b.*/I  /\b.*/I
5437  Capturing subpattern count = 0  Capturing subpattern count = 0
5438    Max lookbehind = 1
5439    May match empty string
5440  No options  No options
5441  No first char  No first char
5442  No need char  No need char
# Line 5290  No need char Line 5445  No need char
5445    
5446  /\b.*/Is  /\b.*/Is
5447  Capturing subpattern count = 0  Capturing subpattern count = 0
5448    Max lookbehind = 1
5449    May match empty string
5450  Options: dotall  Options: dotall
5451  No first char  No first char
5452  No need char  No need char
# Line 5298  No need char Line 5455  No need char
5455    
5456  /(?!.bcd).*/I  /(?!.bcd).*/I
5457  Capturing subpattern count = 0  Capturing subpattern count = 0
5458    May match empty string
5459  No options  No options
5460  No first char  No first char
5461  No need char  No need char
# Line 5447  No match Line 5605  No match
5605      123456\P      123456\P
5606  No match  No match
5607    
5608  /abc/I>testsavedregex  /abc/IS>testsavedregex
5609    Capturing subpattern count = 0
5610    No options
5611    First char = 'a'
5612    Need char = 'c'
5613    Subject length lower bound = 3
5614    No starting char list
5615    Compiled pattern written to testsavedregex
5616    Study data written to testsavedregex
5617    <testsavedregex
5618    Compiled pattern loaded from testsavedregex
5619    Study data loaded from testsavedregex
5620        abc
5621     0: abc
5622        ** Failers
5623    No match
5624        bca
5625    No match
5626    
5627    /abc/ISS>testsavedregex
5628  Capturing subpattern count = 0  Capturing subpattern count = 0
5629  No options  No options
5630  First char = 'a'  First char = 'a'
5631  Need char = 'c'  Need char = 'c'
5632  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5633  <testsavedregex  <testsavedregex
5634  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5635  No study data  No study data
5636      abc      abc
5637   0: abc   0: abc
# Line 5463  No match Line 5640  No match
5640      bca      bca
5641  No match  No match
5642    
5643  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5644    Capturing subpattern count = 0
5645    No options
5646    First char = 'a'
5647    Need char = 'c'
5648    Subject length lower bound = 3
5649    No starting char list
5650    Compiled pattern written to testsavedregex
5651    Study data written to testsavedregex
5652    <testsavedregex
5653    Compiled pattern (byte-inverted) loaded from testsavedregex
5654    Study data loaded from testsavedregex
5655        abc
5656     0: abc
5657        ** Failers
5658    No match
5659        bca
5660    No match
5661    
5662    /abc/IFSS>testsavedregex
5663  Capturing subpattern count = 0  Capturing subpattern count = 0
5664  No options  No options
5665  First char = 'a'  First char = 'a'
5666  Need char = 'c'  Need char = 'c'
5667  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5668  <testsavedregex  <testsavedregex
5669  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5670  No study data  No study data
5671      abc      abc
5672   0: abc   0: abc
# Line 5485  No options Line 5681  No options
5681  No first char  No first char
5682  No need char  No need char
5683  Subject length lower bound = 1  Subject length lower bound = 1
5684  Starting byte set: a b  Starting chars: a b
5685  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5686  Study data written to testsavedregex  Study data written to testsavedregex
5687  <testsavedregex  <testsavedregex
5688  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5689  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5690      abc      abc
5691   0: a   0: a
# Line 5500  Study data loaded from testsavedregex Line 5696  Study data loaded from testsavedregex
5696      def      def
5697  No match  No match
5698    
5699    /(a|b)/ISS>testsavedregex
5700    Capturing subpattern count = 1
5701    No options
5702    No first char
5703    No need char
5704    Compiled pattern written to testsavedregex
5705    <testsavedregex
5706    Compiled pattern loaded from testsavedregex
5707    No study data
5708        abc
5709     0: a
5710     1: a
5711        ** Failers
5712     0: a
5713     1: a
5714        def
5715    No match
5716    
5717  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5718  Capturing subpattern count = 1  Capturing subpattern count = 1
5719  No options  No options
5720  No first char  No first char
5721  No need char  No need char
5722  Subject length lower bound = 1  Subject length lower bound = 1
5723  Starting byte set: a b  Starting chars: a b
5724  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5725  Study data written to testsavedregex  Study data written to testsavedregex
5726  <testsavedregex  <testsavedregex
5727  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5728  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5729      abc      abc
5730   0: a   0: a
# Line 5521  Study data loaded from testsavedregex Line 5735  Study data loaded from testsavedregex
5735      def      def
5736  No match  No match
5737    
5738    /(a|b)/ISSF>testsavedregex
5739    Capturing subpattern count = 1
5740    No options
5741    No first char
5742    No need char
5743    Compiled pattern written to testsavedregex
5744    <testsavedregex
5745    Compiled pattern (byte-inverted) loaded from testsavedregex
5746    No study data
5747        abc
5748     0: a
5749     1: a
5750        ** Failers
5751     0: a
5752     1: a
5753        def
5754    No match
5755    
5756  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5757  Capturing subpattern count = 3  Capturing subpattern count = 3
5758  Max back reference = 1  Max back reference = 1
5759  Options: multiline dotall  Options: multiline dotall
5760  First char = '<'  First char = '<'
5761  Need char = '>'  Need char = '>'
5762      <!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>
5763   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>
5764   1: seite   1: seite
5765   2: \x0a   2: \x0a
# Line 5576  No match Line 5808  No match
5808      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5809  No match  No match
5810    
 /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  
   
5811  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5812  Capturing subpattern count = 0  Capturing subpattern count = 0
5813  No options  No options
# Line 5607  No match Line 5821  No match
5821  No match  No match
5822    
5823  /a{11111111111111111111}/I  /a{11111111111111111111}/I
5824  Failed: number too big in {} quantifier at offset 22  Failed: number too big in {} quantifier at offset 8
5825    
5826  /(){64294967295}/I  /(){64294967295}/I
5827  Failed: number too big in {} quantifier at offset 14  Failed: number too big in {} quantifier at offset 9
5828    
5829  /(){2,4294967295}/I  /(){2,4294967295}/I
5830  Failed: number too big in {} quantifier at offset 15  Failed: number too big in {} quantifier at offset 11
5831    
5832  "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I  "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I
5833  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 5830  Matched, but too many substrings Line 6044  Matched, but too many substrings
6044    
6045  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
6046  Capturing subpattern count = 0  Capturing subpattern count = 0
6047    May match empty string
6048  No options  No options
6049  No first char  No first char
6050  No need char  No need char
# Line 5842  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 5852  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 5862  No need char Line 6079  No need char
6079    
6080  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
6081  Capturing subpattern count = 0  Capturing subpattern count = 0
6082    May match empty string
6083  No options  No options
6084  No first char  No first char
6085  No need char  No need char
# Line 5874  No need char Line 6092  No need char
6092    
6093  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
6094  Capturing subpattern count = 0  Capturing subpattern count = 0
6095    May match empty string
6096  No options  No options
6097  No first char  No first char
6098  No need char  No need char
# Line 5886  No need char Line 6105  No need char
6105      ((this))      ((this))
6106   0: ((this))   0: ((this))
6107    
 /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  
   
6108  /\x{0000ff}/I  /\x{0000ff}/I
6109  Capturing subpattern count = 0  Capturing subpattern count = 0
6110  No options  No options
6111  First char = 255  First char = \xff
6112  No need char  No need char
6113    
6114  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 5934  no parentheses with name "Z" Line 6142  no parentheses with name "Z"
6142   2: a1   2: a1
6143  copy substring Z failed -7  copy substring Z failed -7
6144    C a1 (2) A    C a1 (2) A
6145    
6146    /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
6147    Capturing subpattern count = 3
6148    Named capturing subpatterns:
6149      a   1
6150      a   3
6151      b   2
6152    May match empty string
6153    Options: dupnames
6154    No first char
6155    No need char
6156    
6157  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
6158  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 6010  no parentheses with name "Z" Line 6229  no parentheses with name "Z"
6229   0: a1   0: a1
6230   1: a1   1: a1
6231   2: a1   2: a1
6232  copy substring Z failed -7  get substring Z failed -7
6233    G a1 (2) A    G a1 (2) A
6234    
6235  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6042  No need char Line 6261  No need char
6261    G a (1) A    G a (1) A
6262      cd\GA      cd\GA
6263   0: cd   0: cd
6264  copy substring A failed -7  get substring A failed -7
6265    
6266  /^(?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
6267  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6144  Need char = 'X' Line 6363  Need char = 'X'
6363   1: X   1: X
6364    
6365  /(?:(?(2y)a|b)(X))+/I  /(?:(?(2y)a|b)(X))+/I
6366  Failed: reference to non-existent subpattern at offset 9  Failed: malformed number or name after (?( at offset 7
6367    
6368  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6369  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 6210  No need char Line 6429  No need char
6429   9:   9:
6430  10: Y  10: Y
6431    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6432  /\s*,\s*/IS  /\s*,\s*/IS
6433  Capturing subpattern count = 0  Capturing subpattern count = 0
6434  No options  No options
6435  No first char  No first char
6436  Need char = ','  Need char = ','
6437  Subject length lower bound = 1  Subject length lower bound = 1
6438  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 ,
6439      \x0b,\x0b      \x0b,\x0b
6440   0: ,   0: \x0b,\x0b
6441      \x0c,\x0d      \x0c,\x0d
6442   0: \x0c,\x0d   0: \x0c,\x0d
6443    
# Line 6330  No match Line 6546  No match
6546  No match  No match
6547    
6548  /^abc/Im<bad>  /^abc/Im<bad>
6549  Unknown newline type at: <bad>  Unknown modifier at: <bad>
6550    
6551    
6552  /abc/I  /abc/I
# Line 6339  No options Line 6555  No options
6555  First char = 'a'  First char = 'a'
6556  Need char = 'c'  Need char = 'c'
6557      xyz\rabc\<bad>      xyz\rabc\<bad>
6558  Unknown newline type at: <bad>  Unknown escape sequence at: <bad>
6559      abc      abc
6560   0: abc   0: abc
6561    
6562  /.*/I<lf>  /.*/I<lf>
6563  Capturing subpattern count = 0  Capturing subpattern count = 0
6564    May match empty string
6565  Options:  Options:
6566  Forced newline sequence: LF  Forced newline sequence: LF
6567  First char at start or follows newline  First char at start or follows newline
# Line 6386  Need char = 'f' Line 6603  Need char = 'f'
6603    
6604  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6605  Capturing subpattern count = 1  Capturing subpattern count = 1
6606    May match empty string
6607  No options  No options
6608  No first char  No first char
6609  No need char  No need char
# Line 6524  No options Line 6742  No options
6742  No first char  No first char
6743  No need char  No need char
6744  Subject length lower bound = 1  Subject length lower bound = 1
6745  Starting byte set: C a b c d  Starting chars: C a b c d
6746    
6747  /()[ab]xyz/IS  /()[ab]xyz/IS
6748  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6532  No options Line 6750  No options
6750  No first char  No first char
6751  Need char = 'z'  Need char = 'z'
6752  Subject length lower bound = 4  Subject length lower bound = 4
6753  Starting byte set: a b  Starting chars: a b
6754    
6755  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
6756  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6540  No options Line 6758  No options
6758  No first char  No first char
6759  Need char = 'z'  Need char = 'z'
6760  Subject length lower bound = 4  Subject length lower bound = 4
6761  Starting byte set: a b  Starting chars: a b
6762    
6763  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
6764  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6548  No options Line 6766  No options
6766  No first char  No first char
6767  Need char = 'z'  Need char = 'z'
6768  Subject length lower bound = 4  Subject length lower bound = 4
6769  Starting byte set: a b c  Starting chars: a b c
6770    
6771  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
6772  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6556  No options Line 6774  No options
6774  No first char  No first char
6775  Need char = 'z'  Need char = 'z'
6776  Subject length lower bound = 4  Subject length lower bound = 4
6777  Starting byte set: a b c  Starting chars: a b c
6778    
6779  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
6780  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6564  No options Line 6782  No options
6782  No first char  No first char
6783  Need char = 'z'  Need char = 'z'
6784  Subject length lower bound = 4  Subject length lower bound = 4
6785  Starting byte set: a b c d  Starting chars: a b c d
6786    
6787  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
6788  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6572  No options Line 6790  No options
6790  No first char  No first char
6791  Need char = 'z'  Need char = 'z'
6792  Subject length lower bound = 4  Subject length lower bound = 4
6793  Starting byte set: a b c d  Starting chars: a b c d
6794    
6795  /^a*b\d/DZ  /^a*b\d/DZ
6796  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 6644  No match Line 6862  No match
6862  ------------------------------------------------------------------  ------------------------------------------------------------------
6863          Bra          Bra
6864          ^          ^
6865          a*       /i a*
6866       NC A       /i A
6867          \d          \d
6868          Ket          Ket
6869          End          End
# Line 6665  No options Line 6883  No options
6883  No first char  No first char
6884  No need char  No need char
6885  Subject length lower bound = 1  Subject length lower bound = 1
6886  Starting byte set: a b c d  Starting chars: a b c d
6887    
6888  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6889  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6673  No options Line 6891  No options
6891  No first char  No first char
6892  No need char  No need char
6893  Subject length lower bound = 1  Subject length lower bound = 1
6894  Starting byte set: a b c d  Starting chars: a b c d
6895    
6896  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6897  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6681  No options Line 6899  No options
6899  No first char  No first char
6900  No need char  No need char
6901  Subject length lower bound = 1  Subject length lower bound = 1
6902  Starting byte set: a b c d  Starting chars: a b c d
6903    
6904  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6905  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6689  No options Line 6907  No options
6907  No first char  No first char
6908  No need char  No need char
6909  Subject length lower bound = 2  Subject length lower bound = 2
6910  Starting byte set: a b  Starting chars: a b
6911    
6912  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6913   ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((   ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7273  Matched, but too many substrings Line 7491  Matched, but too many substrings
7491  /[^a]+a/BZi  /[^a]+a/BZi
7492  ------------------------------------------------------------------  ------------------------------------------------------------------
7493          Bra          Bra
7494          [^A]++       /i [^a]++
7495       NC a       /i a
7496          Ket          Ket
7497          End          End
7498  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7282  Matched, but too many substrings Line 7500  Matched, but too many substrings
7500  /[^a]+A/BZi  /[^a]+A/BZi
7501  ------------------------------------------------------------------  ------------------------------------------------------------------
7502          Bra          Bra
7503          [^A]++       /i [^a]++
7504       NC A       /i A
7505          Ket          Ket
7506          End          End
7507  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7309  Matched, but too many substrings Line 7527  Matched, but too many substrings
7527  /a*[^a]/BZ  /a*[^a]/BZ
7528  ------------------------------------------------------------------  ------------------------------------------------------------------
7529          Bra          Bra
7530          a*          a*+
7531          [^a]          [^a]
7532          Ket          Ket
7533          End          End
# Line 7451  No match Line 7669  No match
7669  ------------------------------------------------------------------  ------------------------------------------------------------------
7670          Bra          Bra
7671          ^          ^
7672          [a-z]+          [a-z]++
7673          Ket          Ket
7674          End          End
7675  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7478  No match Line 7696  No match
7696  ------------------------------------------------------------------  ------------------------------------------------------------------
7697          Bra          Bra
7698          ^          ^
         Once  
7699          Recurse          Recurse
         Ket  
7700          [()]          [()]
7701          CBra 1          CBra 1
7702          Ket          Ket
# Line 7494  No match Line 7710  No match
7710          ^          ^
7711          CBra 1          CBra 1
7712          Cond          Cond
7713        2 Cond nref        2 Cond ref
7714          y          y
7715          Ket          Ket
7716          [()]          [()]
# Line 7514  No match Line 7730  No match
7730  ------------------------------------------------------------------  ------------------------------------------------------------------
7731          Bra          Bra
7732          ^          ^
         Once  
7733          Recurse          Recurse
         Ket  
7734          ()          ()
7735          CBra 1          CBra 1
7736          Ket          Ket
# Line 7528  No match Line 7742  No match
7742  ------------------------------------------------------------------  ------------------------------------------------------------------
7743          Bra          Bra
7744          ^          ^
         Once  
7745          Recurse          Recurse
         Ket  
7746          [(\]a]          [(\]a]
7747          CBra 1          CBra 1
7748          Ket          Ket
# Line 7543  No match Line 7755  No match
7755  ------------------------------------------------------------------  ------------------------------------------------------------------
7756          Bra          Bra
7757          ^          ^
         Once  
7758          Recurse          Recurse
         Ket  
7759          CBra 1          CBra 1
7760          Ket          Ket
7761          Ket          Ket
# Line 7560  Named capturing subpatterns: Line 7770  Named capturing subpatterns:
7770    one     1    one     1
7771    three   3    three   3
7772    two     2    two     2
7773    May match empty string
7774  Options: anchored caseless  Options: anchored caseless
7775  No first char  No first char
7776  No need char  No need char
# Line 7659  Failed: reference to non-existent subpat Line 7870  Failed: reference to non-existent subpat
7870   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7871   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7872    
7873  /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  /(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
7874  Failed: reference to non-existent subpattern at offset 29  Failed: reference to non-existent subpattern at offset 29
7875    
 /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  
     abcabc1Xabc2XabcXabcabc  
  0: abcabc1Xabc2XabcX  
  1: abcabc1Xabc2XabcX  
  2: abcabc1Xabc2XabcX  
   
7876  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7877  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7878    
# Line 7677  Options: extended Line 7882  Options: extended
7882  First char = 'x'  First char = 'x'
7883  Need char = 'z'  Need char = 'z'
7884    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7885  /(a|)*\d/  /(a|)*\d/
7886    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7887  No match  No match
# Line 7894  Failed: a numbered reference must not be Line 8096  Failed: a numbered reference must not be
8096  /^(a)\g{3/  /^(a)\g{3/
8097  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8098    
8099  /^(a)\g{4a}/  /^(a)\g{aa}/
8100  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
8101    
8102  /^a.b/<lf>  /^a.b/<lf>
# Line 7997  No match Line 8199  No match
8199          Alt          Alt
8200          c          c
8201          Ket          Ket
         Once  
8202          Recurse          Recurse
8203          Ket          Ket
         Ket  
8204          End          End
8205  ------------------------------------------------------------------  ------------------------------------------------------------------
8206      abc      abc
# Line 8011  No match Line 8211  No match
8211  ------------------------------------------------------------------  ------------------------------------------------------------------
8212          Bra          Bra
8213          xy          xy
         Once  
8214          Recurse          Recurse
         Ket  
8215          CBra 1          CBra 1
8216          abc          abc
8217          Ket          Ket
# Line 8243  Failed: syntax error in subpattern name Line 8441  Failed: syntax error in subpattern name
8441   3: <unset>   3: <unset>
8442   4: x   4: x
8443    
 /[\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  
 ------------------------------------------------------------------  
   
8444  /\H++X/BZ  /\H++X/BZ
8445  ------------------------------------------------------------------  ------------------------------------------------------------------
8446          Bra          Bra
# Line 8463  No match Line 8601  No match
8601          \d          \d
8602          \v++          \v++
8603          \w          \w
8604          \v+          \v++
8605          \S          \S
8606          \v++          \v++
8607          \V          \V
# Line 8494  No match Line 8632  No match
8632  ------------------------------------------------------------------  ------------------------------------------------------------------
8633    
8634  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8635  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8636   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8637    
8638  /[\E]AAA/  /[\E]AAA/
# Line 8561  No match Line 8699  No match
8699   +6 ^      ^    (*FAIL)   +6 ^      ^    (*FAIL)
8700   +6 ^     ^     (*FAIL)   +6 ^     ^     (*FAIL)
8701   +6 ^    ^      (*FAIL)   +6 ^    ^      (*FAIL)
  +4 ^  ^        c+  
  +2 ^ ^         b?  
  +4 ^ ^         c+  
  +2 ^^          b?  
  +4 ^^          c+  
8702   +0  ^          a+   +0  ^          a+
8703   +2  ^ ^        b?   +2  ^ ^        b?
8704   +4  ^  ^       c+   +4  ^  ^       c+
8705   +6  ^     ^    (*FAIL)   +6  ^     ^    (*FAIL)
8706   +6  ^    ^     (*FAIL)   +6  ^    ^     (*FAIL)
8707   +6  ^   ^      (*FAIL)   +6  ^   ^      (*FAIL)
  +4  ^ ^        c+  
  +2  ^^         b?  
  +4  ^^         c+  
8708   +0   ^         a+   +0   ^         a+
8709   +2   ^^        b?   +2   ^^        b?
8710   +4   ^ ^       c+   +4   ^ ^       c+
8711   +6   ^    ^    (*FAIL)   +6   ^    ^    (*FAIL)
8712   +6   ^   ^     (*FAIL)   +6   ^   ^     (*FAIL)
8713   +6   ^  ^      (*FAIL)   +6   ^  ^      (*FAIL)
  +4   ^^        c+  
8714  No match  No match
8715    
8716  /a+b?(*PRUNE)c+(*FAIL)/C  /a+b?(*PRUNE)c+(*FAIL)/C
# Line 8676  Failed: number is too big at offset 19 Line 8805  Failed: number is too big at offset 19
8805  /\g6666666666/  /\g6666666666/
8806  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8807    
8808  /[\g6666666666]/  /[\g6666666666]/BZ
8809  Failed: number is too big at offset 12  ------------------------------------------------------------------
8810            Bra
8811            [6g]
8812            Ket
8813            End
8814    ------------------------------------------------------------------
8815    
8816  /(?1)\c[/  /(?1)\c[/
8817  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8700  No match Line 8834  No match
8834   1: \x0a   1: \x0a
8835    
8836  /a(*CR)b/  /a(*CR)b/
8837  Failed: (*VERB) not recognized at offset 5  Failed: (*VERB) not recognized or malformed at offset 5
8838    
8839  /(*CR)a.b/  /(*CR)a.b/
8840      a\nb      a\nb
# Line 8757  No match Line 8891  No match
8891  No match  No match
8892      a\x85b      a\x85b
8893  No match  No match
8894    
8895    /(*ANY).*/g
8896        abc\r\ndef
8897     0: abc
8898     0:
8899     0: def
8900     0:
8901    
8902    /(*ANYCRLF).*/g
8903        abc\r\ndef
8904     0: abc
8905     0:
8906     0: def
8907     0:
8908    
8909    /(*CRLF).*/g
8910        abc\r\ndef
8911     0: abc
8912     0:
8913     0: def
8914     0:
8915    
8916  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8917  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 8962  Failed: subpattern name expected at offs Line 9117  Failed: subpattern name expected at offs
9117  /\k{}/  /\k{}/
9118  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9119    
9120    /\k/
9121    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9122    
9123    /\kabc/
9124    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9125    
9126  /(?P=)/  /(?P=)/
9127  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9128    
# Line 9118  No match Line 9279  No match
9279      ab      ab
9280  No match  No match
9281    
9282  /a(?!)+b/  /a(?!)b/BZ
9283  Failed: nothing to repeat at offset 5  ------------------------------------------------------------------
9284            Bra
9285            a
9286            *FAIL
9287            b
9288            Ket
9289            End
9290    ------------------------------------------------------------------
9291    
9292    /(?!)?a/BZ
9293    ------------------------------------------------------------------
9294            Bra
9295            Brazero
9296            Assert not
9297            Ket
9298            a
9299            Ket
9300            End
9301    ------------------------------------------------------------------
9302        ab
9303     0: a
9304    
9305  /a(*FAIL)+b/  /a(*FAIL)+b/
9306  Failed: nothing to repeat at offset 8  Failed: nothing to repeat at offset 8
# Line 9130  No options Line 9311  No options
9311  No first char  No first char
9312  No need char  No need char
9313  Subject length lower bound = 1  Subject length lower bound = 1
9314  Starting byte set: x y z  Starting chars: x y z
9315    
9316  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
9317  Capturing subpattern count = 0  Capturing subpattern count = 0
9318    May match empty string
9319  Options:  Options:
9320  No first char  No first char
9321  No need char  No need char
# Line 9146  No need char Line 9328  No need char
9328   +7 ^ ^     b   +7 ^ ^     b
9329   +7 ^^      b   +7 ^^      b
9330   +7 ^       b   +7 ^       b
9331    +11 ^       ^
9332  +12 ^       )  +12 ^       )
9333  +13 ^  +13 ^
9334   0:   0:
# Line 9183  No options Line 9366  No options
9366  First char at start or follows newline  First char at start or follows newline
9367  No need char  No need char
9368    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9369  /xyz/C  /xyz/C
9370    xyz    xyz
9371  --->xyz  --->xyz
# Line 9243  No match Line 9418  No match
9418   +0        ^     x   +0        ^     x
9419   +0         ^    x   +0         ^    x
9420  No match  No match
9421    
9422    /(*NO_START_OPT)xyz/C
9423      abcxyz
9424    --->abcxyz
9425    +15 ^          x
9426    +15  ^         x
9427    +15   ^        x
9428    +15    ^       x
9429    +16    ^^      y
9430    +17    ^ ^     z
9431    +18    ^  ^
9432     0: xyz
9433    
9434    /(*NO_AUTO_POSSESS)a+b/BZ
9435    ------------------------------------------------------------------
9436            Bra
9437            a+
9438            b
9439            Ket
9440            End
9441    ------------------------------------------------------------------
9442    
9443    /xyz/CY
9444      abcxyz
9445    --->abcxyz
9446     +0 ^          x
9447     +0  ^         x
9448     +0   ^        x
9449     +0    ^       x
9450     +1    ^^      y
9451     +2    ^ ^     z
9452     +3    ^  ^
9453     0: xyz
9454    
9455  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9456      "ab"      "ab"
# Line 9260  No match Line 9468  No match
9468   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9469   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9470   +8 ^ ^      [a]   +8 ^ ^      [a]
9471    +17 ^ ^      |
9472  +21 ^ ^      "  +21 ^ ^      "
9473  +18 ^ ^      b  +18 ^ ^      b
9474  +19 ^  ^     )  +19 ^  ^     )
9475   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9476   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9477   +8 ^  ^     [a]   +8 ^  ^     [a]
9478    +17 ^  ^     |
9479  +21 ^  ^     "  +21 ^  ^     "
9480  +22 ^   ^    $  +22 ^   ^    $
9481  +23 ^   ^  +23 ^   ^
# Line 9561  Partial match: the cat Line 9771  Partial match: the cat
9771     abc\P\P     abc\P\P
9772   0: abc   0: abc
9773    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9774  /abc\K123/  /abc\K123/
9775      xyzabc123pqr      xyzabc123pqr
9776   0: 123   0: 123
# Line 9581  Partial match: abc12 Line 9783  Partial match: abc12
9783      xyzabc123pqr      xyzabc123pqr
9784   0: 123   0: 123
9785      xyzabc12\P      xyzabc12\P
9786  Partial match: abc12  Partial match at offset 6: abc12
9787      xyzabc12\P\P      xyzabc12\P\P
9788  Partial match: abc12  Partial match at offset 6: abc12
9789    
9790  /\babc\b/  /\babc\b/
9791      +++abc+++      +++abc+++
9792   0: abc   0: abc
9793      +++ab\P      +++ab\P
9794  Partial match: +ab  Partial match at offset 3: +ab
9795      +++ab\P\P      +++ab\P\P
9796  Partial match: +ab  Partial match at offset 3: +ab
9797    
9798  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9799  ------------------------------------------------------------------  ------------------------------------------------------------------
9800          Bra          Bra
         Once  
9801          Recurse          Recurse
         Ket  
         Once  
9802          Recurse          Recurse
         Ket  
9803          Cond          Cond
9804          Cond def          Cond def
9805          CBra 1          CBra 1
# Line 9622  Partial match: +ab Line 9820  Partial match: +ab
9820  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9821  ------------------------------------------------------------------  ------------------------------------------------------------------
9822          Bra          Bra
         Once  
9823          Recurse          Recurse
         Ket  
         Once  
9824          Recurse          Recurse
         Ket  
9825          Cond          Cond
9826          Cond def          Cond def
9827          CBra 1          CBra 1
# Line 9906  No options Line 10100  No options
10100  No first char  No first char
10101  No need char  No need char
10102  Subject length lower bound = 2  Subject length lower bound = 2
10103  Starting byte set: a b  Starting chars: a b
10104    
10105  /(a|bc)\1{2,3}/SI  /(a|bc)\1{2,3}/SI
10106  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 9915  No options Line 10109  No options
10109  No first char  No first char
10110  No need char  No need char
10111  Subject length lower bound = 3  Subject length lower bound = 3
10112  Starting byte set: a b  Starting chars: a b
10113    
10114  /(a|bc)(?1)/SI  /(a|bc)(?1)/SI
10115  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 9923  No options Line 10117  No options
10117  No first char  No first char
10118  No need char  No need char
10119  Subject length lower bound = 2  Subject length lower bound = 2
10120  Starting byte set: a b  Starting chars: a b
10121    
10122  /(a|b\1)(a|b\1)/SI  /(a|b\1)(a|b\1)/SI
10123  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 9932  No options Line 10126  No options
10126  No first char  No first char
10127  No need char  No need char
10128  Subject length lower bound = 2  Subject length lower bound = 2
10129  Starting byte set: a b  Starting chars: a b
10130    
10131  /(a|b\1){2}/SI  /(a|b\1){2}/SI
10132  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 9941  No options Line 10135  No options
10135  No first char  No first char
10136  No need char  No need char
10137  Subject length lower bound = 2  Subject length lower bound = 2
10138  Starting byte set: a b  Starting chars: a b
10139    
10140  /(a|bbbb\1)(a|bbbb\1)/SI  /(a|bbbb\1)(a|bbbb\1)/SI
10141  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 9950  No options Line 10144  No options
10144  No first char  No first char
10145  No need char  No need char
10146  Subject length lower bound = 2  Subject length lower bound = 2
10147  Starting byte set: a b  Starting chars: a b
10148    
10149  /(a|bbbb\1){2}/SI  /(a|bbbb\1){2}/SI
10150  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 9959  No options Line 10153  No options
10153  No first char  No first char
10154  No need char  No need char
10155  Subject length lower bound = 2  Subject length lower bound = 2
10156  Starting byte set: a b  Starting chars: a b
10157    
10158  /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI  /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
10159  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 9967  Options: anchored Line 10161  Options: anchored
10161  No first char  No first char
10162  Need char = ':'  Need char = ':'
10163  Subject length lower bound = 22  Subject length lower bound = 22
10164  No set of starting bytes  No starting char list
   
 /  (?: [\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  
10165    
10166  /<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
10167  Capturing subpattern count = 11  Capturing subpattern count = 11
# Line 10179  Options: caseless dotall Line 10169  Options: caseless dotall
10169  First char = '<'  First char = '<'
10170  Need char = '>'  Need char = '>'
10171  Subject length lower bound = 47  Subject length lower bound = 47
10172  No set of starting bytes  No starting char list
10173    
10174  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10175  Capturing subpattern count = 0  Capturing subpattern count = 0
10176  No options  No options
10177  First char at start or follows newline  No first char
10178  Need char = 'o'  Need char = 'o'
10179  Subject length lower bound = 4  Subject length lower bound = 4
10180  No set of starting bytes  No starting char list
10181    
10182  /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI  /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10183  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 10195  Options: extended Line 10185  Options: extended
10185  No first char  No first char
10186  Need char = '-'  Need char = '-'
10187  Subject length lower bound = 8  Subject length lower bound = 8
10188  No set of starting bytes  No starting char list
10189    
10190  /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI  /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10191  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10203  Options: caseless Line 10193  Options: caseless
10193  No first char  No first char
10194  No need char  No need char
10195  Subject length lower bound = 1  Subject length lower bound = 1
10196  Starting byte set: A B C a b c  Starting chars: A B C a b c
10197    
10198  /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI  /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10199  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 10211  No options Line 10201  No options
10201  No first char  No first char
10202  Need char = 'b'  Need char = 'b'
10203  Subject length lower bound = 41  Subject length lower bound = 41
10204  Starting byte set: c d  Starting chars: c d
10205    
10206  /<a[\s]+href[\s]*=[\s]*          # find <a href=  /<a[\s]+href[\s]*=[\s]*          # find <a href=
10207   ([\"\'])?                       # find single or double quote   ([\"\'])?                       # find single or double quote
# Line 10224  Options: caseless extended dotall Line 10214  Options: caseless extended dotall
10214  First char = '<'  First char = '<'
10215  Need char = '='  Need char = '='
10216  Subject length lower bound = 9  Subject length lower bound = 9
10217  No set of starting bytes  No starting char list
10218    
10219  /^(?!:)                       # colon disallowed at start  /^(?!:)                       # colon disallowed at start
10220    (?:                         # start of item    (?:                         # start of item
# Line 10240  Options: anchored caseless extended Line 10230  Options: anchored caseless extended
10230  No first char  No first char
10231  Need char = ':'  Need char = ':'
10232  Subject length lower bound = 2  Subject length lower bound = 2
10233  No set of starting bytes  No starting char list
10234    
10235  /(?|(?<a>A)|(?<a>B))/I  /(?|(?<a>A)|(?<a>B))/I
10236  Capturing subpattern count = 1  Capturing subpattern count = 1
10237  Named capturing subpatterns:  Named capturing subpatterns:
10238    a   1    a   1
   a   1  
10239  No options  No options
10240  No first char  No first char
10241  No need char  No need char
# Line 10319  No match Line 10308  No match
10308          Ket          Ket
10309          Ket          Ket
10310          Cond          Cond
10311        4 Cond nref          Cond ref <D>2
10312          X          X
10313          Alt          Alt
10314          Y          Y
# Line 10365  No match Line 10354  No match
10354          CBra 4          CBra 4
10355          d          d
10356          Cond          Cond
10357          Cond nrecurse 1          Cond recurse <A>2
10358          $          $
10359          Alt          Alt
         Once  
10360          Recurse          Recurse
10361          Ket          Ket
10362          Ket          Ket
10363          Ket          Ket
         Ket  
10364          End          End
10365  ------------------------------------------------------------------  ------------------------------------------------------------------
10366  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 10429  Partial match: abca Line 10416  Partial match: abca
10416      xxxxabcde\P\P      xxxxabcde\P\P
10417  Partial match: abcde  Partial match: abcde
10418    
10419  /-- 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
10420      and not behaving as specified in that it *does* bumpalong after hitting      broken and not behaving as specified in that it *does* bumpalong after
10421      (*COMMIT). --/      hitting (*COMMIT). --/
10422    
10423  /(?1)(A(*COMMIT)|B)D/  /(?1)(A(*COMMIT)|B)D/
10424      ABD      ABD
# Line 10467  Options: Line 10454  Options:
10454  No first char  No first char
10455  Need char = 'a'  Need char = 'a'
10456  Subject length lower bound = 1  Subject length lower bound = 1
10457  No set of starting bytes  No starting char list
10458      cat      cat
10459   0: a   0: a
10460   1:   1:
# Line 10481  No options Line 10468  No options
10468  No first char  No first char
10469  Need char = 'a'  Need char = 'a'
10470  Subject length lower bound = 3  Subject length lower bound = 3
10471  No set of starting bytes  No starting char list
10472      cat      cat
10473  No match  No match
10474    
# Line 10493  No options Line 10480  No options
10480  First char = 'i'  First char = 'i'
10481  No need char  No need char
10482  Subject length lower bound = 1  Subject length lower bound = 1
10483  No set of starting bytes  No starting char list
10484      i      i
10485   0: i   0: i
10486    
# Line 10503  No options Line 10490  No options
10490  No first char  No first char
10491  Need char = 'i'  Need char = 'i'
10492  Subject length lower bound = 1  Subject length lower bound = 1
10493  Starting byte set: i  Starting chars: i
10494      ia      ia
10495   0: ia   0: ia
10496   1:   1:
# Line 10511  Starting byte set: i Line 10498  Starting byte set: i
10498  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10499  ------------------------------------------------------------------  ------------------------------------------------------------------
10500          Bra          Bra
10501       NC a       /i a
      00 Opt  
10502          b          b
10503          Alt          Alt
      00 Opt  
10504          c          c
10505          Ket          Ket
10506          End          End
# Line 10534  No match Line 10519  No match
10519  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10520  ------------------------------------------------------------------  ------------------------------------------------------------------
10521          Bra          Bra
10522       NC a       /i ab
      05 Opt  
      NC b  
10523          Alt          Alt
10524       05 Opt       /i c
      NC c  
10525          Ket          Ket
10526          End          End
10527  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10547  No match Line 10529  No match
10529  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10530  ------------------------------------------------------------------  ------------------------------------------------------------------
10531          Bra          Bra
10532       NC a       /i a
      04 Opt  
10533          b          b
10534          Alt          Alt
      04 Opt  
10535          c          c
10536          Ket          Ket
10537          End          End
# Line 10598  No match Line 10578  No match
10578  ------------------------------------------------------------------  ------------------------------------------------------------------
10579          Bra          Bra
10580          ^          ^
10581          Once          Braposzero
10582          Brazero          SBraPos
         Once  
10583          Recurse          Recurse
10584          KetRmax          KetRpos
         Ket  
10585          Cond          Cond
10586          Cond def          Cond def
10587          CBra 1          CBra 1
# Line 10634  No match Line 10612  No match
10612          End          End
10613  ------------------------------------------------------------------  ------------------------------------------------------------------
10614    
10615  / -- 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  
10616       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
10617    
 /(?=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  
   
10618  /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
10619      ab      ab
10620   0: ab   0: ab
10621   1: ab   1: ab
10622    
 /----------------------/  
   
10623  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10624  Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
10625    
# Line 10681  Failed: an argument is not allowed for ( Line 10639  Failed: an argument is not allowed for (
10639      ACABX      ACABX
10640  No match  No match
10641    
10642  /--- 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
10643       is a bug in Perl. ---/       is a bug in Perl. ---/
10644    
10645  /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
# Line 10692  No match Line 10650  No match
10650      AC      AC
10651  No match  No match
10652    
10653  /--- 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,
10654       11 because Perl doesn't seem to follow its specification entirely  though PCRE does. ---/
      correctly. ---/  
10655    
10656  /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is  /^A(*:A)B|^X(*:A)Y/K
      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  
10657      ** Failers      ** Failers
10658  No match  No match
10659      AC      XAQQ
10660  No match  No match, mark = A
     CB  
 No match, mark = B  
10661    
10662  /--- Check the use of names for success and failure. PCRE doesn't show these  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10663  names for success, though Perl does, contrary to its spec. ---/  optimizations defeat this. So does the PCRE optimization unless we disable it
10664    with \Y. ---/
10665    
10666  /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K  /(*COMMIT)ABC/
10667      AB      ABCDEFG
10668   0: AB   0: ABC
  1: AB  
     CD  
  0: CD  
  1: CD  
10669      ** Failers      ** Failers
10670  No match  No match
10671      AC      DEFGABC\Y
10672  No match, mark = A  No match
     CB  
 No match, mark = B  
10673    
10674  /--- An empty name does not pass back an empty string. It is the same as if no  /^(ab (c+(*THEN)cd) | xyz)/x
10675  name were given. ---/      abcccd
10676    No match
10677    
10678  /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K  /^(ab (c+(*PRUNE)cd) | xyz)/x
10679      AB      abcccd
10680   0: AB  No match
  1: AB  
     CD  
  0: CD  
  1: CD  
10681    
10682  /--- PRUNE goes to next bumpalong; COMMIT does not. ---/  /^(ab (c+(*FAIL)cd) | xyz)/x
10683        abcccd
10684    No match
10685    
10686  /A(*PRUNE:A)B/K  /--- Perl gets some of these wrong ---/
     ACAB  
  0: AB  
10687    
10688  /(*MARK:A)(*PRUNE:B)(C|X)/K  /(?>.(*ACCEPT))*?5/
10689      C      abcde
10690   0: C   0: a
  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  
10691    
10692  /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/  /(.(*ACCEPT))*?5/
10693        abcde
10694     0: a
10695     1: a
10696    
10697  /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK  /(.(*ACCEPT))5/
10698      AAAC      abcde
10699  No match   0: a
10700     1: a
10701    
10702  /--- Same --/  /(.(*ACCEPT))*5/
10703        abcde
10704     0: a
10705     1: a
10706    
10707  /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK  /A\NB./BZ
10708      AAAC  ------------------------------------------------------------------
10709            Bra
10710            A
10711            Any
10712            B
10713            Any
10714            Ket
10715            End
10716    ------------------------------------------------------------------
10717        ACBD
10718     0: ACBD
10719        *** Failers
10720  No match  No match
10721        A\nB
 /--- 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  
10722  No match  No match
10723        ACB\n
 /A(*:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
10724  No match  No match
10725    
10726  /--- This should fail, as a null name is the same as no name ---/  /A\NB./sBZ
10727    ------------------------------------------------------------------
10728  /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK          Bra
10729      AAAC          A
10730            Any
10731            B
10732            AllAny
10733            Ket
10734            End
10735    ------------------------------------------------------------------
10736        ACBD
10737     0: ACBD
10738        ACB\n
10739     0: ACB\x0a
10740        *** Failers
10741  No match  No match
10742        A\nB
10743  /--- This fails in PCRE, and I think that is in accordance with Perl's  No match
10744       documentation, though in Perl it succeeds. ---/  
10745    /A\NB/<crlf>
10746  /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK      A\nB
10747      AAAC   0: A\x0aB
10748        A\rB
10749     0: A\x0dB
10750        ** Failers
10751    No match
10752        A\r\nB
10753    No match
10754    
10755    /\R+b/BZ
10756    ------------------------------------------------------------------
10757            Bra
10758            \R++
10759            b
10760            Ket
10761            End
10762    ------------------------------------------------------------------
10763    
10764    /\R+\n/BZ
10765    ------------------------------------------------------------------
10766            Bra
10767            \R+
10768            \x0a
10769            Ket
10770            End
10771    ------------------------------------------------------------------
10772    
10773    /\R+\d/BZ
10774    ------------------------------------------------------------------
10775            Bra
10776            \R++
10777            \d
10778            Ket
10779            End
10780    ------------------------------------------------------------------
10781    
10782    /\d*\R/BZ
10783    ------------------------------------------------------------------
10784            Bra
10785            \d*+
10786            \R
10787            Ket
10788            End
10789    ------------------------------------------------------------------
10790    
10791    /\s*\R/BZ
10792    ------------------------------------------------------------------
10793            Bra
10794            \s*
10795            \R
10796            Ket
10797            End
10798    ------------------------------------------------------------------
10799        \x20\x0a
10800     0:  \x0a
10801        \x20\x0d
10802     0:  \x0d
10803        \x20\x0d\x0a
10804     0:  \x0d\x0a
10805    
10806    /\S*\R/BZ
10807    ------------------------------------------------------------------
10808            Bra
10809            \S*+
10810            \R
10811            Ket
10812            End
10813    ------------------------------------------------------------------
10814        a\x0a
10815     0: a\x0a
10816    
10817    /X\h*\R/BZ
10818    ------------------------------------------------------------------
10819            Bra
10820            X
10821            \h*+
10822            \R
10823            Ket
10824            End
10825    ------------------------------------------------------------------
10826        X\x20\x0a
10827     0: X \x0a
10828    
10829    /X\H*\R/BZ
10830    ------------------------------------------------------------------
10831            Bra
10832            X
10833            \H*
10834            \R
10835            Ket
10836            End
10837    ------------------------------------------------------------------
10838        X\x0d\x0a
10839     0: X\x0d\x0a
10840    
10841    /X\H+\R/BZ
10842    ------------------------------------------------------------------
10843            Bra
10844            X
10845            \H+
10846            \R
10847            Ket
10848            End
10849    ------------------------------------------------------------------
10850        X\x0d\x0a
10851     0: X\x0d\x0a
10852    
10853    /X\H++\R/BZ
10854    ------------------------------------------------------------------
10855            Bra
10856            X
10857            \H++
10858            \R
10859            Ket
10860            End
10861    ------------------------------------------------------------------
10862        X\x0d\x0a
10863    No match
10864    
10865    /(?<=abc)def/
10866        abc\P\P
10867    Partial match at offset 3: abc
10868    
10869    /abc$/
10870        abc
10871     0: abc
10872        abc\P
10873     0: abc
10874        abc\P\P
10875    Partial match: abc
10876    
10877    /abc$/m
10878        abc
10879     0: abc
10880        abc\n
10881     0: abc
10882        abc\P\P
10883    Partial match: abc
10884        abc\n\P\P
10885     0: abc
10886        abc\P
10887     0: abc
10888        abc\n\P
10889     0: abc
10890    
10891    /abc\z/
10892        abc
10893     0: abc
10894        abc\P
10895     0: abc
10896        abc\P\P
10897    Partial match: abc
10898    
10899    /abc\Z/
10900        abc
10901     0: abc
10902        abc\P
10903     0: abc
10904        abc\P\P
10905    Partial match: abc
10906    
10907    /abc\b/
10908        abc
10909     0: abc
10910        abc\P
10911     0: abc
10912        abc\P\P
10913    Partial match: abc
10914    
10915    /abc\B/
10916        abc
10917    No match
10918        abc\P
10919    Partial match: abc
10920        abc\P\P
10921    Partial match: abc
10922    
10923    /.+/
10924        abc\>0
10925     0: abc
10926        abc\>1
10927     0: bc
10928        abc\>2
10929     0: c
10930        abc\>3
10931    No match
10932        abc\>4
10933    Error -24 (bad offset value)
10934        abc\>-4
10935    Error -24 (bad offset value)
10936    
10937    /^\cģ/
10938    Failed: \c must be followed by an ASCII character at offset 3
10939    
10940    /(?P<abn>(?P=abn)xxx)/BZ
10941    ------------------------------------------------------------------
10942            Bra
10943            Once
10944            CBra 1
10945            \1
10946            xxx
10947            Ket
10948            Ket
10949            Ket
10950            End
10951    ------------------------------------------------------------------
10952    
10953    /(a\1z)/BZ
10954    ------------------------------------------------------------------
10955            Bra
10956            Once
10957            CBra 1
10958            a
10959            \1
10960            z
10961            Ket
10962            Ket
10963            Ket
10964            End
10965    ------------------------------------------------------------------
10966    
10967    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10968    Failed: syntax error in subpattern name (missing terminator) at offset 29
10969    
10970    /(?P<abn>(?P=axn)xxx)/BZ
10971    Failed: reference to non-existent subpattern at offset 15
10972    
10973    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10974    ------------------------------------------------------------------
10975            Bra
10976            CBra 1
10977            \2
10978            xxx
10979            Ket
10980            CBra 2
10981            yy
10982            Ket
10983            Ket
10984            End
10985    ------------------------------------------------------------------
10986    
10987    /-- These tests are here because Perl gets the first one wrong. --/
10988    
10989    /(\R*)(.)/s
10990        \r\n
10991     0: \x0d
10992     1:
10993     2: \x0d
10994        \r\r\n\n\r
10995     0: \x0d\x0d\x0a\x0a\x0d
10996     1: \x0d\x0d\x0a\x0a
10997     2: \x0d
10998        \r\r\n\n\r\n
10999     0: \x0d\x0d\x0a\x0a\x0d
11000     1: \x0d\x0d\x0a\x0a
11001     2: \x0d
11002    
11003    /(\R)*(.)/s
11004        \r\n
11005     0: \x0d
11006     1: <unset>
11007     2: \x0d
11008        \r\r\n\n\r
11009     0: \x0d\x0d\x0a\x0a\x0d
11010     1: \x0a
11011     2: \x0d
11012        \r\r\n\n\r\n
11013     0: \x0d\x0d\x0a\x0a\x0d
11014     1: \x0a
11015     2: \x0d
11016    
11017    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11018        \r\n
11019     0: \x0d
11020     1:
11021     2: \x0d
11022        \r\r\n\n\r
11023     0: \x0d\x0d\x0a\x0a\x0d
11024     1: \x0d\x0d\x0a\x0a
11025     2: \x0d
11026        \r\r\n\n\r\n
11027     0: \x0d\x0d\x0a\x0a\x0d
11028     1: \x0d\x0d\x0a\x0a
11029     2: \x0d
11030    
11031    /-- --/
11032    
11033    /^abc$/BZ
11034    ------------------------------------------------------------------
11035            Bra
11036            ^
11037            abc
11038            $
11039            Ket
11040            End
11041    ------------------------------------------------------------------
11042    
11043    /^abc$/BZm
11044    ------------------------------------------------------------------
11045            Bra
11046         /m ^
11047            abc
11048         /m $
11049            Ket
11050            End
11051    ------------------------------------------------------------------
11052    
11053    /^(a)*+(\w)/S
11054        aaaaX
11055     0: aaaaX
11056     1: a
11057     2: X
11058        ** Failers
11059    No match
11060        aaaa
11061    No match
11062    
11063    /^(?:a)*+(\w)/S
11064        aaaaX
11065     0: aaaaX
11066     1: X
11067        ** Failers
11068    No match
11069        aaaa
11070  No match  No match
11071    
11072  /--- Mark names can be duplicated ---/  /(a)++1234/SDZ
11073    ------------------------------------------------------------------
11074            Bra
11075            CBraPos 1
11076            a
11077            KetRpos
11078            1234
11079            Ket
11080            End
11081    ------------------------------------------------------------------
11082    Capturing subpattern count = 1
11083    No options
11084    First char = 'a'
11085    Need char = '4'
11086    Subject length lower bound = 5
11087    No starting char list
11088    
11089    /([abc])++1234/SI
11090    Capturing subpattern count = 1
11091    No options
11092    No first char
11093    Need char = '4'
11094    Subject length lower bound = 5
11095    Starting chars: a b c
11096    
11097    /(?<=(abc)+)X/
11098    Failed: lookbehind assertion is not fixed length at offset 10
11099    
11100    /(^ab)/I
11101    Capturing subpattern count = 1
11102    Options: anchored
11103    No first char
11104    No need char
11105    
11106    /(^ab)++/I
11107    Capturing subpattern count = 1
11108    Options: anchored
11109    No first char
11110    No need char
11111    
11112    /(^ab|^)+/I
11113    Capturing subpattern count = 1
11114    May match empty string
11115    Options: anchored
11116    No first char
11117    No need char
11118    
11119    /(^ab|^)++/I
11120    Capturing subpattern count = 1
11121    May match empty string
11122    Options: anchored
11123    No first char
11124    No need char
11125    
11126    /(?:^ab)/I
11127    Capturing subpattern count = 0
11128    Options: anchored
11129    No first char
11130    No need char
11131    
11132    /(?:^ab)++/I
11133    Capturing subpattern count = 0
11134    Options: anchored
11135    No first char
11136    No need char
11137    
11138    /(?:^ab|^)+/I
11139    Capturing subpattern count = 0
11140    May match empty string
11141    Options: anchored
11142    No first char
11143    No need char
11144    
11145    /(?:^ab|^)++/I
11146    Capturing subpattern count = 0
11147    May match empty string
11148    Options: anchored
11149    No first char
11150    No need char
11151    
11152    /(.*ab)/I
11153    Capturing subpattern count = 1
11154    No options
11155    First char at start or follows newline
11156    Need char = 'b'
11157    
11158    /(.*ab)++/I
11159    Capturing subpattern count = 1
11160    No options
11161    First char at start or follows newline
11162    Need char = 'b'
11163    
11164    /(.*ab|.*)+/I
11165    Capturing subpattern count = 1
11166    May match empty string
11167    No options
11168    First char at start or follows newline
11169    No need char
11170    
11171    /(.*ab|.*)++/I
11172    Capturing subpattern count = 1
11173    May match empty string
11174    No options
11175    First char at start or follows newline
11176    No need char
11177    
11178    /(?:.*ab)/I
11179    Capturing subpattern count = 0
11180    No options
11181    First char at start or follows newline
11182    Need char = 'b'
11183    
11184    /(?:.*ab)++/I
11185    Capturing subpattern count = 0
11186    No options
11187    First char at start or follows newline
11188    Need char = 'b'
11189    
11190    /(?:.*ab|.*)+/I
11191    Capturing subpattern count = 0
11192    May match empty string
11193    No options
11194    First char at start or follows newline
11195    No need char
11196    
11197    /(?:.*ab|.*)++/I
11198    Capturing subpattern count = 0
11199    May match empty string
11200    No options
11201    First char at start or follows newline
11202    No need char
11203    
11204    /(?=a)[bcd]/I
11205    Capturing subpattern count = 0
11206    No options
11207    First char = 'a'
11208    No need char
11209    
11210    /((?=a))[bcd]/I
11211    Capturing subpattern count = 1
11212    No options
11213    First char = 'a'
11214    No need char
11215    
11216    /((?=a))+[bcd]/I
11217    Capturing subpattern count = 1
11218    No options
11219    First char = 'a'
11220    No need char
11221    
11222    /((?=a))++[bcd]/I
11223    Capturing subpattern count = 1
11224    No options
11225    First char = 'a'
11226    No need char
11227    
11228    /(?=a+)[bcd]/iI
11229    Capturing subpattern count = 0
11230    Options: caseless
11231    First char = 'a' (caseless)
11232    No need char
11233    
11234    /(?=a+?)[bcd]/iI
11235    Capturing subpattern count = 0
11236    Options: caseless
11237    First char = 'a' (caseless)
11238    No need char
11239    
11240    /(?=a++)[bcd]/iI
11241    Capturing subpattern count = 0
11242    Options: caseless
11243    First char = 'a' (caseless)
11244    No need char
11245    
11246    /(?=a{3})[bcd]/iI
11247    Capturing subpattern count = 0
11248    Options: caseless
11249    First char = 'a' (caseless)
11250    Need char = 'a' (caseless)
11251    
11252    /(abc)\1+/S
11253    
11254    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11255    
11256    /(?1)(?:(b(*ACCEPT))){0}/
11257        b
11258     0: b
11259    
11260    /(?1)(?:(b(*ACCEPT))){0}c/
11261        bc
11262     0: bc
11263        ** Failers
11264    No match
11265        b
11266    No match
11267    
11268    /(?1)(?:((*ACCEPT))){0}c/
11269        c
11270     0: c
11271        c\N
11272     0: c
11273    
11274    /^.*?(?(?=a)a|b(*THEN)c)/
11275        ba
11276    No match
11277    
11278    /^.*?(?(?=a)a|bc)/
11279        ba
11280     0: ba
11281    
11282    /^.*?(?(?=a)a(*THEN)b|c)/
11283        ac
11284    No match
11285    
11286    /^.*?(?(?=a)a(*THEN)b)c/
11287        ac
11288    No match
11289    
11290    /^.*?(a(*THEN)b)c/
11291        aabc
11292    No match
11293    
11294    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11295        aabc
11296     0: aabc
11297    
11298    /^.*?(a(*THEN)b|z)c/
11299        aabc
11300     0: aabc
11301     1: ab
11302    
11303    /^.*?(z|a(*THEN)b)c/
11304        aabc
11305     0: aabc
11306     1: ab
11307    
11308    /-- --/
11309    
11310    /-- These studied versions are here because they are not Perl-compatible; the
11311        studying means the mark is not seen. --/
11312    
11313    /(*MARK:A)(*SKIP:B)(C|X)/KS
11314        C
11315     0: C
11316     1: C
11317    MK: A
11318        D
11319    No match, mark = A
11320    
11321    /(*:A)A+(*SKIP:A)(B|Z)/KS
11322        AAAC
11323    No match, mark = A
11324    
11325    /-- --/
11326    
11327    "(?=a*(*ACCEPT)b)c"
11328        c
11329     0: c
11330        c\N
11331     0: c
11332    
11333    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11334        c
11335     0: c
11336        c\N
11337     0: c
11338    
11339    /(?>(*ACCEPT)b)c/
11340        c
11341     0:
11342        c\N
11343    No match
11344    
11345    /(?:(?>(a)))+a%/++
11346        %aa%
11347     0: aa%
11348     0+
11349     1: a
11350     1+ a%
11351    
11352    /(a)b|ac/++SS
11353        ac\O3
11354     0: ac
11355     0+
11356