/[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 1454 by ph10, Sun Feb 9 18:55:03 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  /[/I  /[/I
3182  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3224  Failed: missing terminating ] for charac Line 3190  Failed: missing terminating ] for charac
3190  /[\s]/IDZ  /[\s]/IDZ
3191  ------------------------------------------------------------------  ------------------------------------------------------------------
3192          Bra          Bra
3193          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
3194          Ket          Ket
3195          End          End
3196  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3288  No match Line 3254  No match
3254          End          End
3255  ------------------------------------------------------------------  ------------------------------------------------------------------
3256  Capturing subpattern count = 0  Capturing subpattern count = 0
3257    Max lookbehind = 1
3258  No options  No options
3259  First char = '8'  First char = '8'
3260  Need char = 'X'  Need char = 'X'
# Line 3301  Need char = 'X' Line 3268  Need char = 'X'
3268          End          End
3269  ------------------------------------------------------------------  ------------------------------------------------------------------
3270  Capturing subpattern count = 0  Capturing subpattern count = 0
3271    Max lookbehind = 1
3272  No options  No options
3273  First char = '$'  First char = '$'
3274  Need char = 'X'  Need char = 'X'
# Line 3357  Need char = 'b' Line 3325  Need char = 'b'
3325    
3326  /(?=a).*/I  /(?=a).*/I
3327  Capturing subpattern count = 0  Capturing subpattern count = 0
3328    May match empty string
3329  No options  No options
3330  First char = 'a'  First char = 'a'
3331  No need char  No need char
# Line 3375  Need char = 'z' (caseless) Line 3344  Need char = 'z' (caseless)
3344    
3345  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3346  Capturing subpattern count = 0  Capturing subpattern count = 0
3347    May match empty string
3348  No options  No options
3349  First char = 'a'  First char = 'a'
3350  No need char  No need char
# Line 3441  Need char = 'a' Line 3411  Need char = 'a'
3411    
3412  /(a)*/I  /(a)*/I
3413  Capturing subpattern count = 1  Capturing subpattern count = 1
3414    May match empty string
3415  No options  No options
3416  No first char  No first char
3417  No need char  No need char
# Line 3463  No options Line 3434  No options
3434  No first char  No first char
3435  No need char  No need char
3436  Subject length lower bound = 1  Subject length lower bound = 1
3437  Starting byte set: a b  Starting chars: a b
3438    
3439  /[^a]/I  /[^a]/I
3440  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3483  No options Line 3454  No options
3454  No first char  No first char
3455  Need char = '6'  Need char = '6'
3456  Subject length lower bound = 4  Subject length lower bound = 4
3457  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
3458    
3459  /a^b/I  /a^b/I
3460  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3517  Options: caseless Line 3488  Options: caseless
3488  No first char  No first char
3489  No need char  No need char
3490  Subject length lower bound = 1  Subject length lower bound = 1
3491  Starting byte set: A B a b  Starting chars: A B a b
3492    
3493  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3494  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3525  No options Line 3496  No options
3496  No first char  No first char
3497  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3498  Subject length lower bound = 3  Subject length lower bound = 3
3499  Starting byte set: a b  Starting chars: a b
3500    
3501  /abc(?C)def/I  /abc(?C)def/I
3502  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3560  Need char = 'f' Line 3531  Need char = 'f'
3531    1    ^    ^     f    1    ^    ^     f
3532   0: abcdef   0: abcdef
3533    
3534  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3535    Capturing subpattern count = 0
3536    No options
3537    No first char
3538    Need char = 'f'
3539    Subject length lower bound = 7
3540    Starting chars: 0 1 2 3 4 5 6 7 8 9
3541        1234abcdef
3542    --->1234abcdef
3543      1 ^              \d
3544      1  ^             \d
3545      1   ^            \d
3546      1    ^           \d
3547      2    ^   ^       d
3548     0: 4abcdef
3549        *** Failers
3550    No match
3551        abcdef
3552    No match
3553    
3554    /(?C1)\dabc(?C2)def/ISS
3555  Capturing subpattern count = 0  Capturing subpattern count = 0
3556  No options  No options
3557  No first char  No first char
# Line 3649  No match Line 3640  No match
3640    
3641  /(?C0)(abc(?C1))*/I  /(?C0)(abc(?C1))*/I
3642  Capturing subpattern count = 1  Capturing subpattern count = 1
3643    May match empty string
3644  No options  No options
3645  No first char  No first char
3646  No need char  No need char
# Line 3682  No need char Line 3674  No need char
3674    
3675  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3676  Capturing subpattern count = 1  Capturing subpattern count = 1
3677    May match empty string
3678  No options  No options
3679  No first char  No first char
3680  No need char  No need char
# Line 3796  Callout 2: last capture = -1 Line 3789  Callout 2: last capture = -1
3789    
3790  /(?<=(abc)(?C))xyz/I  /(?<=(abc)(?C))xyz/I
3791  Capturing subpattern count = 1  Capturing subpattern count = 1
3792    Max lookbehind = 3
3793  No options  No options
3794  First char = 'x'  First char = 'x'
3795  Need char = 'z'  Need char = 'z'
# Line 3817  Need char = 'b' Line 3811  Need char = 'b'
3811  --->abbbbbccc  --->abbbbbccc
3812    1 ^        ^    1 ^        ^
3813  Callout data = 1  Callout data = 1
   1 ^       ^  
 Callout data = 1  
   1 ^      ^  
 Callout data = 1  
   1 ^     ^  
 Callout data = 1  
   1 ^    ^  
 Callout data = 1  
   1 ^   ^  
 Callout data = 1  
   1 ^  ^  
 Callout data = 1  
   1 ^ ^  
 Callout data = 1  
3814  No match  No match
3815    
3816  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
# Line 3876  No options Line 3856  No options
3856  No first char  No first char
3857  No need char  No need char
3858  Subject length lower bound = 1  Subject length lower bound = 1
3859  Starting byte set: a b  Starting chars: a b
3860    
3861  /(?R)/I  /(?R)/I
3862  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 3907  Failed: recursive call could loop indefi
3907    
3908  /^([^()]|\((?1)*\))*$/I  /^([^()]|\((?1)*\))*$/I
3909  Capturing subpattern count = 1  Capturing subpattern count = 1
3910    May match empty string
3911  Options: anchored  Options: anchored
3912  No first char  No first char
3913  No need char  No need char
# Line 3964  Need char = '<' Line 3945  Need char = '<'
3945          Bra          Bra
3946          CBra 1          CBra 1
3947          a          a
         Once  
3948          Recurse          Recurse
         Ket  
3949          b          b
3950          Ket          Ket
3951          Ket          Ket
# Line 4187  Need char = 'a' Line 4166  Need char = 'a'
4166          Any          Any
4167          \1          \1
4168          bbb          bbb
         Once  
4169          Recurse          Recurse
         Ket  
4170          d          d
4171          Ket          Ket
4172          End          End
# Line 4210  Named capturing subpatterns: Line 4187  Named capturing subpatterns:
4187    one     1    one     1
4188    three   3    three   3
4189    two     2    two     2
4190    May match empty string
4191  Options: anchored caseless  Options: anchored caseless
4192  No first char  No first char
4193  No need char  No need char
# Line 4309  Need char = 'z' Line 4287  Need char = 'z'
4287    
4288  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4289  Capturing subpattern count = 31  Capturing subpattern count = 31
4290    May match empty string
4291  Options: anchored dotall  Options: anchored dotall
4292  No first char  No first char
4293  No need char  No need char
# Line 4316  No need char Line 4295  No need char
4295  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4296  Capturing subpattern count = 31  Capturing subpattern count = 31
4297  Max back reference = 31  Max back reference = 31
4298    May match empty string
4299  Options: dotall  Options: dotall
4300  No first char  No first char
4301  No need char  No need char
# Line 4323  No need char Line 4303  No need char
4303  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4304  Capturing subpattern count = 32  Capturing subpattern count = 32
4305  Max back reference = 32  Max back reference = 32
4306    May match empty string
4307  Options: dotall  Options: dotall
4308  No first char  No first char
4309  No need char  No need char
# Line 4399  Minimum match() recursion limit = 6 Line 4380  Minimum match() recursion limit = 6
4380   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4381    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4382  Minimum match() limit = 32768  Minimum match() limit = 32768
4383  Minimum match() recursion limit = 42  Minimum match() recursion limit = 29
4384  No match  No match
4385    
4386  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4474  Capturing subpattern count = 2 Line 4455  Capturing subpattern count = 2
4455  Named capturing subpatterns:  Named capturing subpatterns:
4456    Tes    1    Tes    1
4457    Test   2    Test   2
4458    May match empty string
4459  No options  No options
4460  No first char  No first char
4461  No need char  No need char
# Line 4492  Capturing subpattern count = 2 Line 4474  Capturing subpattern count = 2
4474  Named capturing subpatterns:  Named capturing subpatterns:
4475    Tes    2    Tes    2
4476    Test   1    Test   1
4477    May match empty string
4478  No options  No options
4479  No first char  No first char
4480  No need char  No need char
# Line 4561  Need char = ']' Line 4544  Need char = ']'
4544          a          a
4545          CBra 2          CBra 2
4546          b          b
         Once  
4547          Recurse          Recurse
         Ket  
4548          c          c
4549          Ket          Ket
4550          Ket          Ket
# Line 4571  Need char = ']' Line 4552  Need char = ']'
4552          End          End
4553  ------------------------------------------------------------------  ------------------------------------------------------------------
4554  Capturing subpattern count = 2  Capturing subpattern count = 2
4555    May match empty string
4556  No options  No options
4557  No first char  No first char
4558  No need char  No need char
# Line 4583  No need char Line 4565  No need char
4565          a          a
4566          CBra 2          CBra 2
4567          b          b
         Once  
4568          Recurse          Recurse
         Ket  
4569          c          c
4570          Ket          Ket
4571          KetRmax          KetRmax
# Line 4593  No need char Line 4573  No need char
4573          End          End
4574  ------------------------------------------------------------------  ------------------------------------------------------------------
4575  Capturing subpattern count = 2  Capturing subpattern count = 2
4576    May match empty string
4577  No options  No options
4578  No first char  No first char
4579  No need char  No need char
# Line 4606  No need char Line 4587  No need char
4587          a          a
4588          CBra 2          CBra 2
4589          b          b
         Once  
4590          Recurse          Recurse
         Ket  
4591          c          c
4592          Ket          Ket
4593          Ket          Ket
# Line 4617  No need char Line 4596  No need char
4596          a          a
4597          CBra 2          CBra 2
4598          b          b
         Once  
4599          Recurse          Recurse
         Ket  
4600          c          c
4601          Ket          Ket
4602          Ket          Ket
# Line 4628  No need char Line 4605  No need char
4605          End          End
4606  ------------------------------------------------------------------  ------------------------------------------------------------------
4607  Capturing subpattern count = 2  Capturing subpattern count = 2
4608    May match empty string
4609  No options  No options
4610  No first char  No first char
4611  No need char  No need char
# Line 4635  No need char Line 4613  No need char
4613  /[ab]{1}+/DZ  /[ab]{1}+/DZ
4614  ------------------------------------------------------------------  ------------------------------------------------------------------
4615          Bra          Bra
4616          Once          [ab]{1,1}+
         [ab]{1,1}  
         Ket  
4617          Ket          Ket
4618          End          End
4619  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4661  Options: caseless Line 4637  Options: caseless
4637  No first char  No first char
4638  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4639  Subject length lower bound = 8  Subject length lower bound = 8
4640  No set of starting bytes  No starting char list
4641       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4642   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4643   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4680  No options Line 4656  No options
4656  No first char  No first char
4657  Need char = 'b'  Need char = 'b'
4658  Subject length lower bound = 1  Subject length lower bound = 1
4659  No set of starting bytes  No starting char list
4660    
4661  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4662  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4701  No options Line 4677  No options
4677  No first char  No first char
4678  Need char = 'c'  Need char = 'c'
4679  Subject length lower bound = 1  Subject length lower bound = 1
4680  No set of starting bytes  No starting char list
4681    
4682  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4683  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4758  Need char = 'e' Line 4734  Need char = 'e'
4734   +4 ^   ^      e   +4 ^   ^      e
4735  No match  No match
4736    
4737  /a*b/ICDZ  /a*b/ICDZS
4738    ------------------------------------------------------------------
4739            Bra
4740            Callout 255 0 2
4741            a*+
4742            Callout 255 2 1
4743            b
4744            Callout 255 3 0
4745            Ket
4746            End
4747    ------------------------------------------------------------------
4748    Capturing subpattern count = 0
4749    Options:
4750    No first char
4751    Need char = 'b'
4752    Subject length lower bound = 1
4753    Starting chars: a b
4754      ab
4755    --->ab
4756     +0 ^      a*
4757     +2 ^^     b
4758     +3 ^ ^
4759     0: ab
4760      aaaab
4761    --->aaaab
4762     +0 ^         a*
4763     +2 ^   ^     b
4764     +3 ^    ^
4765     0: aaaab
4766      aaaacb
4767    --->aaaacb
4768     +0 ^          a*
4769     +2 ^   ^      b
4770     +0  ^         a*
4771     +2  ^  ^      b
4772     +0   ^        a*
4773     +2   ^ ^      b
4774     +0    ^       a*
4775     +2    ^^      b
4776     +0      ^     a*
4777     +2      ^     b
4778     +3      ^^
4779     0: b
4780    
4781    /a*b/ICDZSS
4782  ------------------------------------------------------------------  ------------------------------------------------------------------
4783          Bra          Bra
4784          Callout 255 0 2          Callout 255 0 2
# Line 4841  Need char = 'b' Line 4861  Need char = 'b'
4861   +2    ^^      b   +2    ^^      b
4862  No match  No match
4863    
4864  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4865  ------------------------------------------------------------------  ------------------------------------------------------------------
4866          Bra          Bra
4867          Callout 255 0 9          Callout 255 0 9
# Line 4872  Capturing subpattern count = 1 Line 4892  Capturing subpattern count = 1
4892  Options:  Options:
4893  No first char  No first char
4894  Need char = 'x'  Need char = 'x'
4895    Subject length lower bound = 4
4896    Starting chars: a d
4897    abcx    abcx
4898  --->abcx  --->abcx
4899   +0 ^        (abc|def)   +0 ^        (abc|def)
# Line 4895  Need char = 'x' Line 4917  Need char = 'x'
4917  +10 ^   ^  +10 ^   ^
4918   0: defx   0: defx
4919   1: def   1: def
4920      ** Failers
4921    No match
4922    abcdefzx    abcdefzx
4923  --->abcdefzx  --->abcdefzx
4924   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4904  Need char = 'x' Line 4928  Need char = 'x'
4928   +4 ^  ^         |   +4 ^  ^         |
4929   +9 ^  ^         x   +9 ^  ^         x
4930   +5 ^            d   +5 ^            d
  +0  ^           (abc|def)  
  +1  ^           a  
  +5  ^           d  
  +0   ^          (abc|def)  
  +1   ^          a  
  +5   ^          d  
4931   +0    ^         (abc|def)   +0    ^         (abc|def)
4932   +1    ^         a   +1    ^         a
4933   +5    ^         d   +5    ^         d
# Line 4917  Need char = 'x' Line 4935  Need char = 'x'
4935   +7    ^ ^       f   +7    ^ ^       f
4936   +8    ^  ^      )   +8    ^  ^      )
4937   +9    ^  ^      x   +9    ^  ^      x
  +0     ^        (abc|def)  
  +1     ^        a  
  +5     ^        d  
  +0      ^       (abc|def)  
  +1      ^       a  
  +5      ^       d  
  +0       ^      (abc|def)  
  +1       ^      a  
  +5       ^      d  
  +0        ^     (abc|def)  
  +1        ^     a  
  +5        ^     d  
4938  No match  No match
4939    
4940  /(ab|cd){3,4}/IC  /(abc|def)x/ICDZSS
4941    ------------------------------------------------------------------
4942            Bra
4943            Callout 255 0 9
4944            CBra 1
4945            Callout 255 1 1
4946            a
4947            Callout 255 2 1
4948            b
4949            Callout 255 3 1
4950            c
4951            Callout 255 4 0
4952            Alt
4953            Callout 255 5 1
4954            d
4955            Callout 255 6 1
4956            e
4957            Callout 255 7 1
4958            f
4959            Callout 255 8 0
4960            Ket
4961            Callout 255 9 1
4962            x
4963            Callout 255 10 0
4964            Ket
4965            End
4966    ------------------------------------------------------------------
4967  Capturing subpattern count = 1  Capturing subpattern count = 1
4968  Options:  Options:
4969  No first char  No first char
4970  No need char  Need char = 'x'
4971    ababab    abcx
4972    --->abcx
4973     +0 ^        (abc|def)
4974     +1 ^        a
4975     +2 ^^       b
4976     +3 ^ ^      c
4977     +4 ^  ^     |
4978     +9 ^  ^     x
4979    +10 ^   ^
4980     0: abcx
4981     1: abc
4982      defx
4983    --->defx
4984     +0 ^        (abc|def)
4985     +1 ^        a
4986     +5 ^        d
4987     +6 ^^       e
4988     +7 ^ ^      f
4989     +8 ^  ^     )
4990     +9 ^  ^     x
4991    +10 ^   ^
4992     0: defx
4993     1: def
4994      ** Failers
4995    No match
4996      abcdefzx
4997    --->abcdefzx
4998     +0 ^            (abc|def)
4999     +1 ^            a
5000     +2 ^^           b
5001     +3 ^ ^          c
5002     +4 ^  ^         |
5003     +9 ^  ^         x
5004     +5 ^            d
5005     +0  ^           (abc|def)
5006     +1  ^           a
5007     +5  ^           d
5008     +0   ^          (abc|def)
5009     +1   ^          a
5010     +5   ^          d
5011     +0    ^         (abc|def)
5012     +1    ^         a
5013     +5    ^         d
5014     +6    ^^        e
5015     +7    ^ ^       f
5016     +8    ^  ^      )
5017     +9    ^  ^      x
5018     +0     ^        (abc|def)
5019     +1     ^        a
5020     +5     ^        d
5021     +0      ^       (abc|def)
5022     +1      ^       a
5023     +5      ^       d
5024     +0       ^      (abc|def)
5025     +1       ^      a
5026     +5       ^      d
5027     +0        ^     (abc|def)
5028     +1        ^     a
5029     +5        ^     d
5030    No match
5031    
5032    /(ab|cd){3,4}/IC
5033    Capturing subpattern count = 1
5034    Options:
5035    No first char
5036    No need char
5037      ababab
5038  --->ababab  --->ababab
5039   +0 ^          (ab|cd){3,4}   +0 ^          (ab|cd){3,4}
5040   +1 ^          a   +1 ^          a
# Line 4995  No need char Line 5093  No need char
5093   0: abcdcdcd   0: abcdcdcd
5094   1: cd   1: cd
5095    
5096  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5097    ------------------------------------------------------------------
5098            Bra
5099            Callout 255 0 14
5100            CBra 1
5101            Callout 255 1 4
5102            [ab]
5103            Callout 255 5 1
5104            {
5105            Callout 255 6 1
5106            ,
5107            Callout 255 7 1
5108            4
5109            Callout 255 8 1
5110            }
5111            Callout 255 9 1
5112            c
5113            Callout 255 10 0
5114            Alt
5115            Callout 255 11 1
5116            x
5117            Callout 255 12 1
5118            y
5119            Callout 255 13 0
5120            Ket
5121            Callout 255 14 0
5122            Ket
5123            End
5124    ------------------------------------------------------------------
5125    Capturing subpattern count = 1
5126    Options:
5127    No first char
5128    No need char
5129    Subject length lower bound = 2
5130    Starting chars: a b x
5131        Note: that { does NOT introduce a quantifier
5132    --->Note: that { does NOT introduce a quantifier
5133     +0         ^                                        ([ab]{,4}c|xy)
5134     +1         ^                                        [ab]
5135     +5         ^^                                       {
5136    +11         ^                                        x
5137     +0                                 ^                ([ab]{,4}c|xy)
5138     +1                                 ^                [ab]
5139     +5                                 ^^               {
5140    +11                                 ^                x
5141     +0                                     ^            ([ab]{,4}c|xy)
5142     +1                                     ^            [ab]
5143     +5                                     ^^           {
5144    +11                                     ^            x
5145    No match
5146    
5147    /([ab]{,4}c|xy)/ICDZSS
5148  ------------------------------------------------------------------  ------------------------------------------------------------------
5149          Bra          Bra
5150          Callout 255 0 14          Callout 255 0 14
# Line 5176  No match Line 5325  No match
5325          Callout 255 0 21          Callout 255 0 21
5326          CBra 1          CBra 1
5327          Callout 255 1 9          Callout 255 1 9
5328          [ab]{1,4}          [ab]{1,4}+
5329          Callout 255 10 1          Callout 255 10 1
5330          c          c
5331          Callout 255 11 0          Callout 255 11 0
# Line 5189  No match Line 5338  No match
5338          Ket          Ket
5339          CBra 1          CBra 1
5340          Callout 255 1 9          Callout 255 1 9
5341          [ab]{1,4}          [ab]{1,4}+
5342          Callout 255 10 1          Callout 255 10 1
5343          c          c
5344          Callout 255 11 0          Callout 255 11 0
# Line 5202  No match Line 5351  No match
5351          Ket          Ket
5352          CBra 1          CBra 1
5353          Callout 255 1 9          Callout 255 1 9
5354          [ab]{1,4}          [ab]{1,4}+
5355          Callout 255 10 1          Callout 255 10 1
5356          c          c
5357          Callout 255 11 0          Callout 255 11 0
# Line 5215  No match Line 5364  No match
5364          Ket          Ket
5365          CBra 1          CBra 1
5366          Callout 255 1 9          Callout 255 1 9
5367          [ab]{1,4}          [ab]{1,4}+
5368          Callout 255 10 1          Callout 255 10 1
5369          c          c
5370          Callout 255 11 0          Callout 255 11 0
# Line 5229  No match Line 5378  No match
5378          Braminzero          Braminzero
5379          CBra 1          CBra 1
5380          Callout 255 1 9          Callout 255 1 9
5381          [ab]{1,4}          [ab]{1,4}+
5382          Callout 255 10 1          Callout 255 10 1
5383          c          c
5384          Callout 255 11 0          Callout 255 11 0
# Line 5282  Need char = '3' Line 5431  Need char = '3'
5431    
5432  /\b.*/I  /\b.*/I
5433  Capturing subpattern count = 0  Capturing subpattern count = 0
5434    Max lookbehind = 1
5435    May match empty string
5436  No options  No options
5437  No first char  No first char
5438  No need char  No need char
# Line 5290  No need char Line 5441  No need char
5441    
5442  /\b.*/Is  /\b.*/Is
5443  Capturing subpattern count = 0  Capturing subpattern count = 0
5444    Max lookbehind = 1
5445    May match empty string
5446  Options: dotall  Options: dotall
5447  No first char  No first char
5448  No need char  No need char
# Line 5298  No need char Line 5451  No need char
5451    
5452  /(?!.bcd).*/I  /(?!.bcd).*/I
5453  Capturing subpattern count = 0  Capturing subpattern count = 0
5454    May match empty string
5455  No options  No options
5456  No first char  No first char
5457  No need char  No need char
# Line 5447  No match Line 5601  No match
5601      123456\P      123456\P
5602  No match  No match
5603    
5604  /abc/I>testsavedregex  /abc/IS>testsavedregex
5605    Capturing subpattern count = 0
5606    No options
5607    First char = 'a'
5608    Need char = 'c'
5609    Subject length lower bound = 3
5610    No starting char list
5611    Compiled pattern written to testsavedregex
5612    Study data written to testsavedregex
5613    <testsavedregex
5614    Compiled pattern loaded from testsavedregex
5615    Study data loaded from testsavedregex
5616        abc
5617     0: abc
5618        ** Failers
5619    No match
5620        bca
5621    No match
5622    
5623    /abc/ISS>testsavedregex
5624  Capturing subpattern count = 0  Capturing subpattern count = 0
5625  No options  No options
5626  First char = 'a'  First char = 'a'
5627  Need char = 'c'  Need char = 'c'
5628  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5629  <testsavedregex  <testsavedregex
5630  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5631  No study data  No study data
5632      abc      abc
5633   0: abc   0: abc
# Line 5463  No match Line 5636  No match
5636      bca      bca
5637  No match  No match
5638    
5639  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5640    Capturing subpattern count = 0
5641    No options
5642    First char = 'a'
5643    Need char = 'c'
5644    Subject length lower bound = 3
5645    No starting char list
5646    Compiled pattern written to testsavedregex
5647    Study data written to testsavedregex
5648    <testsavedregex
5649    Compiled pattern (byte-inverted) loaded from testsavedregex
5650    Study data loaded from testsavedregex
5651        abc
5652     0: abc
5653        ** Failers
5654    No match
5655        bca
5656    No match
5657    
5658    /abc/IFSS>testsavedregex
5659  Capturing subpattern count = 0  Capturing subpattern count = 0
5660  No options  No options
5661  First char = 'a'  First char = 'a'
5662  Need char = 'c'  Need char = 'c'
5663  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5664  <testsavedregex  <testsavedregex
5665  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5666  No study data  No study data
5667      abc      abc
5668   0: abc   0: abc
# Line 5485  No options Line 5677  No options
5677  No first char  No first char
5678  No need char  No need char
5679  Subject length lower bound = 1  Subject length lower bound = 1
5680  Starting byte set: a b  Starting chars: a b
5681  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5682  Study data written to testsavedregex  Study data written to testsavedregex
5683  <testsavedregex  <testsavedregex
5684  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5685  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5686      abc      abc
5687   0: a   0: a
# Line 5500  Study data loaded from testsavedregex Line 5692  Study data loaded from testsavedregex
5692      def      def
5693  No match  No match
5694    
5695    /(a|b)/ISS>testsavedregex
5696    Capturing subpattern count = 1
5697    No options
5698    No first char
5699    No need char
5700    Compiled pattern written to testsavedregex
5701    <testsavedregex
5702    Compiled pattern loaded from testsavedregex
5703    No study data
5704        abc
5705     0: a
5706     1: a
5707        ** Failers
5708     0: a
5709     1: a
5710        def
5711    No match
5712    
5713  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5714  Capturing subpattern count = 1  Capturing subpattern count = 1
5715  No options  No options
5716  No first char  No first char
5717  No need char  No need char
5718  Subject length lower bound = 1  Subject length lower bound = 1
5719  Starting byte set: a b  Starting chars: a b
5720  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5721  Study data written to testsavedregex  Study data written to testsavedregex
5722  <testsavedregex  <testsavedregex
5723  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5724  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5725      abc      abc
5726   0: a   0: a
# Line 5521  Study data loaded from testsavedregex Line 5731  Study data loaded from testsavedregex
5731      def      def
5732  No match  No match
5733    
5734    /(a|b)/ISSF>testsavedregex
5735    Capturing subpattern count = 1
5736    No options
5737    No first char
5738    No need char
5739    Compiled pattern written to testsavedregex
5740    <testsavedregex
5741    Compiled pattern (byte-inverted) loaded from testsavedregex
5742    No study data
5743        abc
5744     0: a
5745     1: a
5746        ** Failers
5747     0: a
5748     1: a
5749        def
5750    No match
5751    
5752  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5753  Capturing subpattern count = 3  Capturing subpattern count = 3
5754  Max back reference = 1  Max back reference = 1
5755  Options: multiline dotall  Options: multiline dotall
5756  First char = '<'  First char = '<'
5757  Need char = '>'  Need char = '>'
5758      <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>      \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
5759   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
5760   1: seite   1: seite
5761   2: \x0a   2: \x0a
# Line 5576  No match Line 5804  No match
5804      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5805  No match  No match
5806    
 /ab.cd/P  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ** Failers  
 No match: POSIX code 17: match failed  
     ab\ncd  
 No match: POSIX code 17: match failed  
   
 /ab.cd/Ps  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ab\ncd  
  0: ab\x0acd  
   
5807  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5808  Capturing subpattern count = 0  Capturing subpattern count = 0
5809  No options  No options
# Line 5830  Matched, but too many substrings Line 6040  Matched, but too many substrings
6040    
6041  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
6042  Capturing subpattern count = 0  Capturing subpattern count = 0
6043    May match empty string
6044  No options  No options
6045  No first char  No first char
6046  No need char  No need char
# Line 5842  No need char Line 6053  No need char
6053    
6054  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6055  Capturing subpattern count = 0  Capturing subpattern count = 0
6056    May match empty string
6057  No options  No options
6058  No first char  No first char
6059  No need char  No need char
# Line 5852  No need char Line 6064  No need char
6064    
6065  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
6066  Capturing subpattern count = 0  Capturing subpattern count = 0
6067    May match empty string
6068  No options  No options
6069  No first char  No first char
6070  No need char  No need char
# Line 5862  No need char Line 6075  No need char
6075    
6076  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
6077  Capturing subpattern count = 0  Capturing subpattern count = 0
6078    May match empty string
6079  No options  No options
6080  No first char  No first char
6081  No need char  No need char
# Line 5874  No need char Line 6088  No need char
6088    
6089  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
6090  Capturing subpattern count = 0  Capturing subpattern count = 0
6091    May match empty string
6092  No options  No options
6093  No first char  No first char
6094  No need char  No need char
# Line 5886  No need char Line 6101  No need char
6101      ((this))      ((this))
6102   0: ((this))   0: ((this))
6103    
 /a(b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /a(?P<name>b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /\x{100}/I  
 Failed: character value in \x{...} sequence is too large at offset 6  
   
6104  /\x{0000ff}/I  /\x{0000ff}/I
6105  Capturing subpattern count = 0  Capturing subpattern count = 0
6106  No options  No options
6107  First char = 255  First char = \xff
6108  No need char  No need char
6109    
6110  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 5934  no parentheses with name "Z" Line 6138  no parentheses with name "Z"
6138   2: a1   2: a1
6139  copy substring Z failed -7  copy substring Z failed -7
6140    C a1 (2) A    C a1 (2) A
6141    
6142    /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
6143    Capturing subpattern count = 3
6144    Named capturing subpatterns:
6145      a   1
6146      a   3
6147      b   2
6148    May match empty string
6149    Options: dupnames
6150    No first char
6151    No need char
6152    
6153  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
6154  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 6010  no parentheses with name "Z" Line 6225  no parentheses with name "Z"
6225   0: a1   0: a1
6226   1: a1   1: a1
6227   2: a1   2: a1
6228  copy substring Z failed -7  get substring Z failed -7
6229    G a1 (2) A    G a1 (2) A
6230    
6231  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6042  No need char Line 6257  No need char
6257    G a (1) A    G a (1) A
6258      cd\GA      cd\GA
6259   0: cd   0: cd
6260  copy substring A failed -7  get substring A failed -7
6261    
6262  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6263  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6144  Need char = 'X' Line 6359  Need char = 'X'
6359   1: X   1: X
6360    
6361  /(?:(?(2y)a|b)(X))+/I  /(?:(?(2y)a|b)(X))+/I
6362  Failed: reference to non-existent subpattern at offset 9  Failed: malformed number or name after (?( at offset 7
6363    
6364  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6365  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 6210  No need char Line 6425  No need char
6425   9:   9:
6426  10: Y  10: Y
6427    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6428  /\s*,\s*/IS  /\s*,\s*/IS
6429  Capturing subpattern count = 0  Capturing subpattern count = 0
6430  No options  No options
6431  No first char  No first char
6432  Need char = ','  Need char = ','
6433  Subject length lower bound = 1  Subject length lower bound = 1
6434  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 ,
6435      \x0b,\x0b      \x0b,\x0b
6436   0: ,   0: \x0b,\x0b
6437      \x0c,\x0d      \x0c,\x0d
6438   0: \x0c,\x0d   0: \x0c,\x0d
6439    
# Line 6330  No match Line 6542  No match
6542  No match  No match
6543    
6544  /^abc/Im<bad>  /^abc/Im<bad>
6545  Unknown newline type at: <bad>  Unknown modifier at: <bad>
6546    
6547    
6548  /abc/I  /abc/I
# Line 6339  No options Line 6551  No options
6551  First char = 'a'  First char = 'a'
6552  Need char = 'c'  Need char = 'c'
6553      xyz\rabc\<bad>      xyz\rabc\<bad>
6554  Unknown newline type at: <bad>  Unknown escape sequence at: <bad>
6555      abc      abc
6556   0: abc   0: abc
6557    
6558  /.*/I<lf>  /.*/I<lf>
6559  Capturing subpattern count = 0  Capturing subpattern count = 0
6560    May match empty string
6561  Options:  Options:
6562  Forced newline sequence: LF  Forced newline sequence: LF
6563  First char at start or follows newline  First char at start or follows newline
# Line 6386  Need char = 'f' Line 6599  Need char = 'f'
6599    
6600  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6601  Capturing subpattern count = 1  Capturing subpattern count = 1
6602    May match empty string
6603  No options  No options
6604  No first char  No first char
6605  No need char  No need char
# Line 6524  No options Line 6738  No options
6738  No first char  No first char
6739  No need char  No need char
6740  Subject length lower bound = 1  Subject length lower bound = 1
6741  Starting byte set: C a b c d  Starting chars: C a b c d
6742    
6743  /()[ab]xyz/IS  /()[ab]xyz/IS
6744  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6532  No options Line 6746  No options
6746  No first char  No first char
6747  Need char = 'z'  Need char = 'z'
6748  Subject length lower bound = 4  Subject length lower bound = 4
6749  Starting byte set: a b  Starting chars: a b
6750    
6751  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
6752  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6540  No options Line 6754  No options
6754  No first char  No first char
6755  Need char = 'z'  Need char = 'z'
6756  Subject length lower bound = 4  Subject length lower bound = 4
6757  Starting byte set: a b  Starting chars: a b
6758    
6759  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
6760  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6548  No options Line 6762  No options
6762  No first char  No first char
6763  Need char = 'z'  Need char = 'z'
6764  Subject length lower bound = 4  Subject length lower bound = 4
6765  Starting byte set: a b c  Starting chars: a b c
6766    
6767  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
6768  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6556  No options Line 6770  No options
6770  No first char  No first char
6771  Need char = 'z'  Need char = 'z'
6772  Subject length lower bound = 4  Subject length lower bound = 4
6773  Starting byte set: a b c  Starting chars: a b c
6774    
6775  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
6776  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6564  No options Line 6778  No options
6778  No first char  No first char
6779  Need char = 'z'  Need char = 'z'
6780  Subject length lower bound = 4  Subject length lower bound = 4
6781  Starting byte set: a b c d  Starting chars: a b c d
6782    
6783  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
6784  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6572  No options Line 6786  No options
6786  No first char  No first char
6787  Need char = 'z'  Need char = 'z'
6788  Subject length lower bound = 4  Subject length lower bound = 4
6789  Starting byte set: a b c d  Starting chars: a b c d
6790    
6791  /^a*b\d/DZ  /^a*b\d/DZ
6792  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 6644  No match Line 6858  No match
6858  ------------------------------------------------------------------  ------------------------------------------------------------------
6859          Bra          Bra
6860          ^          ^
6861          a*       /i a*
6862       NC A       /i A
6863          \d          \d
6864          Ket          Ket
6865          End          End
# Line 6665  No options Line 6879  No options
6879  No first char  No first char
6880  No need char  No need char
6881  Subject length lower bound = 1  Subject length lower bound = 1
6882  Starting byte set: a b c d  Starting chars: a b c d
6883    
6884  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6885  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6673  No options Line 6887  No options
6887  No first char  No first char
6888  No need char  No need char
6889  Subject length lower bound = 1  Subject length lower bound = 1
6890  Starting byte set: a b c d  Starting chars: a b c d
6891    
6892  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6893  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6681  No options Line 6895  No options
6895  No first char  No first char
6896  No need char  No need char
6897  Subject length lower bound = 1  Subject length lower bound = 1
6898  Starting byte set: a b c d  Starting chars: a b c d
6899    
6900  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6901  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6689  No options Line 6903  No options
6903  No first char  No first char
6904  No need char  No need char
6905  Subject length lower bound = 2  Subject length lower bound = 2
6906  Starting byte set: a b  Starting chars: a b
6907    
6908  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6909   ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((   ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7273  Matched, but too many substrings Line 7487  Matched, but too many substrings
7487  /[^a]+a/BZi  /[^a]+a/BZi
7488  ------------------------------------------------------------------  ------------------------------------------------------------------
7489          Bra          Bra
7490          [^A]++       /i [^a]++
7491       NC a       /i a
7492          Ket          Ket
7493          End          End
7494  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7282  Matched, but too many substrings Line 7496  Matched, but too many substrings
7496  /[^a]+A/BZi  /[^a]+A/BZi
7497  ------------------------------------------------------------------  ------------------------------------------------------------------
7498          Bra          Bra
7499          [^A]++       /i [^a]++
7500       NC A       /i A
7501          Ket          Ket
7502          End          End
7503  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7309  Matched, but too many substrings Line 7523  Matched, but too many substrings
7523  /a*[^a]/BZ  /a*[^a]/BZ
7524  ------------------------------------------------------------------  ------------------------------------------------------------------
7525          Bra          Bra
7526          a*          a*+
7527          [^a]          [^a]
7528          Ket          Ket
7529          End          End
# Line 7451  No match Line 7665  No match
7665  ------------------------------------------------------------------  ------------------------------------------------------------------
7666          Bra          Bra
7667          ^          ^
7668          [a-z]+          [a-z]++
7669          Ket          Ket
7670          End          End
7671  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7478  No match Line 7692  No match
7692  ------------------------------------------------------------------  ------------------------------------------------------------------
7693          Bra          Bra
7694          ^          ^
         Once  
7695          Recurse          Recurse
         Ket  
7696          [()]          [()]
7697          CBra 1          CBra 1
7698          Ket          Ket
# Line 7494  No match Line 7706  No match
7706          ^          ^
7707          CBra 1          CBra 1
7708          Cond          Cond
7709        2 Cond nref        2 Cond ref
7710          y          y
7711          Ket          Ket
7712          [()]          [()]
# Line 7514  No match Line 7726  No match
7726  ------------------------------------------------------------------  ------------------------------------------------------------------
7727          Bra          Bra
7728          ^          ^
         Once  
7729          Recurse          Recurse
         Ket  
7730          ()          ()
7731          CBra 1          CBra 1
7732          Ket          Ket
# Line 7528  No match Line 7738  No match
7738  ------------------------------------------------------------------  ------------------------------------------------------------------
7739          Bra          Bra
7740          ^          ^
         Once  
7741          Recurse          Recurse
         Ket  
7742          [(\]a]          [(\]a]
7743          CBra 1          CBra 1
7744          Ket          Ket
# Line 7543  No match Line 7751  No match
7751  ------------------------------------------------------------------  ------------------------------------------------------------------
7752          Bra          Bra
7753          ^          ^
         Once  
7754          Recurse          Recurse
         Ket  
7755          CBra 1          CBra 1
7756          Ket          Ket
7757          Ket          Ket
# Line 7560  Named capturing subpatterns: Line 7766  Named capturing subpatterns:
7766    one     1    one     1
7767    three   3    three   3
7768    two     2    two     2
7769    May match empty string
7770  Options: anchored caseless  Options: anchored caseless
7771  No first char  No first char
7772  No need char  No need char
# Line 7659  Failed: reference to non-existent subpat Line 7866  Failed: reference to non-existent subpat
7866   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7867   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7868    
7869  /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  /(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
7870  Failed: reference to non-existent subpattern at offset 29  Failed: reference to non-existent subpattern at offset 29
7871    
 /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  
     abcabc1Xabc2XabcXabcabc  
  0: abcabc1Xabc2XabcX  
  1: abcabc1Xabc2XabcX  
  2: abcabc1Xabc2XabcX  
   
7872  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7873  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7874    
# Line 7677  Options: extended Line 7878  Options: extended
7878  First char = 'x'  First char = 'x'
7879  Need char = 'z'  Need char = 'z'
7880    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7881  /(a|)*\d/  /(a|)*\d/
7882    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7883  No match  No match
# Line 7894  Failed: a numbered reference must not be Line 8092  Failed: a numbered reference must not be
8092  /^(a)\g{3/  /^(a)\g{3/
8093  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8094    
8095  /^(a)\g{4a}/  /^(a)\g{aa}/
8096  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
8097    
8098  /^a.b/<lf>  /^a.b/<lf>
# Line 7997  No match Line 8195  No match
8195          Alt          Alt
8196          c          c
8197          Ket          Ket
         Once  
8198          Recurse          Recurse
8199          Ket          Ket
         Ket  
8200          End          End
8201  ------------------------------------------------------------------  ------------------------------------------------------------------
8202      abc      abc
# Line 8011  No match Line 8207  No match
8207  ------------------------------------------------------------------  ------------------------------------------------------------------
8208          Bra          Bra
8209          xy          xy
         Once  
8210          Recurse          Recurse
         Ket  
8211          CBra 1          CBra 1
8212          abc          abc
8213          Ket          Ket
# Line 8243  Failed: syntax error in subpattern name Line 8437  Failed: syntax error in subpattern name
8437   3: <unset>   3: <unset>
8438   4: x   4: x
8439    
8440  /[\h]/BZ  /\H++X/BZ
8441  ------------------------------------------------------------------  ------------------------------------------------------------------
8442          Bra          Bra
8443          [\x09 \xa0]          \H++
8444            X
8445          Ket          Ket
8446          End          End
8447  ------------------------------------------------------------------  ------------------------------------------------------------------
8448      >\x09<      ** Failers
8449   0: \x09  No match
8450        XXXX
8451  /[\h]+/BZ  No match
8452    
8453    /\H+\hY/BZ
8454  ------------------------------------------------------------------  ------------------------------------------------------------------
8455          Bra          Bra
8456          [\x09 \xa0]+          \H++
8457            \h
8458            Y
8459          Ket          Ket
8460          End          End
8461  ------------------------------------------------------------------  ------------------------------------------------------------------
8462      >\x09\x20\xa0<      XXXX Y
8463   0: \x09 \xa0   0: XXXX Y
8464    
8465  /[\v]/BZ  /\H+ Y/BZ
8466  ------------------------------------------------------------------  ------------------------------------------------------------------
8467          Bra          Bra
8468          [\x0a-\x0d\x85]          \H++
8469             Y
8470          Ket          Ket
8471          End          End
8472  ------------------------------------------------------------------  ------------------------------------------------------------------
8473    
8474  /[\H]/BZ  /\h+A/BZ
8475  ------------------------------------------------------------------  ------------------------------------------------------------------
8476          Bra          Bra
8477          [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]          \h++
8478            A
8479          Ket          Ket
8480          End          End
8481  ------------------------------------------------------------------  ------------------------------------------------------------------
8482    
8483  /[^\h]/BZ  /\v*B/BZ
8484  ------------------------------------------------------------------  ------------------------------------------------------------------
8485          Bra          Bra
8486          [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)          \v*+
8487            B
8488          Ket          Ket
8489          End          End
8490  ------------------------------------------------------------------  ------------------------------------------------------------------
8491    
8492  /[\V]/BZ  /\V+\x0a/BZ
8493  ------------------------------------------------------------------  ------------------------------------------------------------------
8494          Bra          Bra
8495          [\x00-\x09\x0e-\x84\x86-\xff]          \V++
8496            \x0a
8497          Ket          Ket
8498          End          End
8499  ------------------------------------------------------------------  ------------------------------------------------------------------
8500    
8501  /[\x0a\V]/BZ  /A+\h/BZ
8502  ------------------------------------------------------------------  ------------------------------------------------------------------
8503          Bra          Bra
8504          [\x00-\x0a\x0e-\x84\x86-\xff]          A++
8505            \h
8506          Ket          Ket
8507          End          End
8508  ------------------------------------------------------------------  ------------------------------------------------------------------
8509    
8510  /\H++X/BZ  / *\H/BZ
8511  ------------------------------------------------------------------  ------------------------------------------------------------------
8512          Bra          Bra
8513          \H++           *+
8514          X          \H
         Ket  
         End  
 ------------------------------------------------------------------  
     ** Failers  
 No match  
     XXXX  
 No match  
   
 /\H+\hY/BZ  
 ------------------------------------------------------------------  
         Bra  
         \H++  
         \h  
         Y  
         Ket  
         End  
 ------------------------------------------------------------------  
     XXXX Y  
  0: XXXX Y  
   
 /\H+ Y/BZ  
 ------------------------------------------------------------------  
         Bra  
         \H++  
          Y  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /\h+A/BZ  
 ------------------------------------------------------------------  
         Bra  
         \h++  
         A  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /\v*B/BZ  
 ------------------------------------------------------------------  
         Bra  
         \v*+  
         B  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /\V+\x0a/BZ  
 ------------------------------------------------------------------  
         Bra  
         \V++  
         \x0a  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /A+\h/BZ  
 ------------------------------------------------------------------  
         Bra  
         A++  
         \h  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 / *\H/BZ  
 ------------------------------------------------------------------  
         Bra  
          *+  
         \H  
8515          Ket          Ket
8516          End          End
8517  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 8463  No match Line 8597  No match
8597          \d          \d
8598          \v++          \v++
8599          \w          \w
8600          \v+          \v++
8601          \S          \S
8602          \v++          \v++
8603          \V          \V
# Line 8494  No match Line 8628  No match
8628  ------------------------------------------------------------------  ------------------------------------------------------------------
8629    
8630  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8631  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)  \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8632   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8633    
8634  /[\E]AAA/  /[\E]AAA/
# Line 8561  No match Line 8695  No match
8695   +6 ^      ^    (*FAIL)   +6 ^      ^    (*FAIL)
8696   +6 ^     ^     (*FAIL)   +6 ^     ^     (*FAIL)
8697   +6 ^    ^      (*FAIL)   +6 ^    ^      (*FAIL)
  +4 ^  ^        c+  
  +2 ^ ^         b?  
  +4 ^ ^         c+  
  +2 ^^          b?  
  +4 ^^          c+  
8698   +0  ^          a+   +0  ^          a+
8699   +2  ^ ^        b?   +2  ^ ^        b?
8700   +4  ^  ^       c+   +4  ^  ^       c+
8701   +6  ^     ^    (*FAIL)   +6  ^     ^    (*FAIL)
8702   +6  ^    ^     (*FAIL)   +6  ^    ^     (*FAIL)
8703   +6  ^   ^      (*FAIL)   +6  ^   ^      (*FAIL)
  +4  ^ ^        c+  
  +2  ^^         b?  
  +4  ^^         c+  
8704   +0   ^         a+   +0   ^         a+
8705   +2   ^^        b?   +2   ^^        b?
8706   +4   ^ ^       c+   +4   ^ ^       c+
8707   +6   ^    ^    (*FAIL)   +6   ^    ^    (*FAIL)
8708   +6   ^   ^     (*FAIL)   +6   ^   ^     (*FAIL)
8709   +6   ^  ^      (*FAIL)   +6   ^  ^      (*FAIL)
  +4   ^^        c+  
8710  No match  No match
8711    
8712  /a+b?(*PRUNE)c+(*FAIL)/C  /a+b?(*PRUNE)c+(*FAIL)/C
# Line 8676  Failed: number is too big at offset 19 Line 8801  Failed: number is too big at offset 19
8801  /\g6666666666/  /\g6666666666/
8802  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8803    
8804  /[\g6666666666]/  /[\g6666666666]/BZ
8805  Failed: number is too big at offset 12  ------------------------------------------------------------------
8806            Bra
8807            [6g]
8808            Ket
8809            End
8810    ------------------------------------------------------------------
8811    
8812  /(?1)\c[/  /(?1)\c[/
8813  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8700  No match Line 8830  No match
8830   1: \x0a   1: \x0a
8831    
8832  /a(*CR)b/  /a(*CR)b/
8833  Failed: (*VERB) not recognized at offset 5  Failed: (*VERB) not recognized or malformed at offset 5
8834    
8835  /(*CR)a.b/  /(*CR)a.b/
8836      a\nb      a\nb
# Line 8757  No match Line 8887  No match
8887  No match  No match
8888      a\x85b      a\x85b
8889  No match  No match
8890    
8891    /(*ANY).*/g
8892        abc\r\ndef
8893     0: abc
8894     0:
8895     0: def
8896     0:
8897    
8898    /(*ANYCRLF).*/g
8899        abc\r\ndef
8900     0: abc
8901     0:
8902     0: def
8903     0:
8904    
8905    /(*CRLF).*/g
8906        abc\r\ndef
8907     0: abc
8908     0:
8909     0: def
8910     0:
8911    
8912  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
8913  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 8962  Failed: subpattern name expected at offs Line 9113  Failed: subpattern name expected at offs
9113  /\k{}/  /\k{}/
9114  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9115    
9116    /\k/
9117    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9118    
9119    /\kabc/
9120    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9121    
9122  /(?P=)/  /(?P=)/
9123  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9124    
# Line 9118  No match Line 9275  No match
9275      ab      ab
9276  No match  No match
9277    
9278  /a(?!)+b/  /a(?!)b/BZ
9279  Failed: nothing to repeat at offset 5  ------------------------------------------------------------------
9280            Bra
9281            a
9282            *FAIL
9283            b
9284            Ket
9285            End
9286    ------------------------------------------------------------------
9287    
9288    /(?!)?a/BZ
9289    ------------------------------------------------------------------
9290            Bra
9291            Brazero
9292            Assert not
9293            Ket
9294            a
9295            Ket
9296            End
9297    ------------------------------------------------------------------
9298        ab
9299     0: a
9300    
9301  /a(*FAIL)+b/  /a(*FAIL)+b/
9302  Failed: nothing to repeat at offset 8  Failed: nothing to repeat at offset 8
# Line 9130  No options Line 9307  No options
9307  No first char  No first char
9308  No need char  No need char
9309  Subject length lower bound = 1  Subject length lower bound = 1
9310  Starting byte set: x y z  Starting chars: x y z
9311    
9312  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
9313  Capturing subpattern count = 0  Capturing subpattern count = 0
9314    May match empty string
9315  Options:  Options:
9316  No first char  No first char
9317  No need char  No need char
# Line 9146  No need char Line 9324  No need char
9324   +7 ^ ^     b   +7 ^ ^     b
9325   +7 ^^      b   +7 ^^      b
9326   +7 ^       b   +7 ^       b
9327    +11 ^       ^
9328  +12 ^       )  +12 ^       )
9329  +13 ^  +13 ^
9330   0:   0:
# Line 9183  No options Line 9362  No options
9362  First char at start or follows newline  First char at start or follows newline
9363  No need char  No need char
9364    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9365  /xyz/C  /xyz/C
9366    xyz    xyz
9367  --->xyz  --->xyz
# Line 9243  No match Line 9414  No match
9414   +0        ^     x   +0        ^     x
9415   +0         ^    x   +0         ^    x
9416  No match  No match
9417    
9418    /(*NO_START_OPT)xyz/C
9419      abcxyz
9420    --->abcxyz
9421    +15 ^          x
9422    +15  ^         x
9423    +15   ^        x
9424    +15    ^       x
9425    +16    ^^      y
9426    +17    ^ ^     z
9427    +18    ^  ^
9428     0: xyz
9429    
9430    /(*NO_AUTO_POSSESS)a+b/BZ
9431    ------------------------------------------------------------------
9432            Bra
9433            a+
9434            b
9435            Ket
9436            End
9437    ------------------------------------------------------------------
9438    
9439    /xyz/CY
9440      abcxyz
9441    --->abcxyz
9442     +0 ^          x
9443     +0  ^         x
9444     +0   ^        x
9445     +0    ^       x
9446     +1    ^^      y
9447     +2    ^ ^     z
9448     +3    ^  ^
9449     0: xyz
9450    
9451  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9452      "ab"      "ab"
# Line 9260  No match Line 9464  No match
9464   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9465   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9466   +8 ^ ^      [a]   +8 ^ ^      [a]
9467    +17 ^ ^      |
9468  +21 ^ ^      "  +21 ^ ^      "
9469  +18 ^ ^      b  +18 ^ ^      b
9470  +19 ^  ^     )  +19 ^  ^     )
9471   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9472   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9473   +8 ^  ^     [a]   +8 ^  ^     [a]
9474    +17 ^  ^     |
9475  +21 ^  ^     "  +21 ^  ^     "
9476  +22 ^   ^    $  +22 ^   ^    $
9477  +23 ^   ^  +23 ^   ^
# Line 9561  Partial match: the cat Line 9767  Partial match: the cat
9767     abc\P\P     abc\P\P
9768   0: abc   0: abc
9769    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9770  /abc\K123/  /abc\K123/
9771      xyzabc123pqr      xyzabc123pqr
9772   0: 123   0: 123
# Line 9581  Partial match: abc12 Line 9779  Partial match: abc12
9779      xyzabc123pqr      xyzabc123pqr
9780   0: 123   0: 123
9781      xyzabc12\P      xyzabc12\P
9782  Partial match: abc12  Partial match at offset 6: abc12
9783      xyzabc12\P\P      xyzabc12\P\P
9784  Partial match: abc12  Partial match at offset 6: abc12
9785    
9786  /\babc\b/  /\babc\b/
9787      +++abc+++      +++abc+++
9788   0: abc   0: abc
9789      +++ab\P      +++ab\P
9790  Partial match: +ab  Partial match at offset 3: +ab
9791      +++ab\P\P      +++ab\P\P
9792  Partial match: +ab  Partial match at offset 3: +ab
9793    
9794  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9795  ------------------------------------------------------------------  ------------------------------------------------------------------
9796          Bra          Bra
         Once  
9797          Recurse          Recurse
         Ket  
         Once  
9798          Recurse          Recurse
         Ket  
9799          Cond          Cond
9800          Cond def          Cond def
9801          CBra 1          CBra 1
# Line 9622  Partial match: +ab Line 9816  Partial match: +ab
9816  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9817  ------------------------------------------------------------------  ------------------------------------------------------------------
9818          Bra          Bra
         Once  
9819          Recurse          Recurse
         Ket  
         Once  
9820          Recurse          Recurse
         Ket  
9821          Cond          Cond
9822          Cond def          Cond def
9823          CBra 1          CBra 1
# Line 9906  No options Line 10096  No options
10096  No first char  No first char
10097  No need char  No need char
10098  Subject length lower bound = 2  Subject length lower bound = 2
10099  Starting byte set: a b  Starting chars: a b
10100    
10101  /(a|bc)\1{2,3}/SI  /(a|bc)\1{2,3}/SI
10102  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 9915  No options Line 10105  No options
10105  No first char  No first char
10106  No need char  No need char
10107  Subject length lower bound = 3  Subject length lower bound = 3
10108  Starting byte set: a b  Starting chars: a b
10109    
10110  /(a|bc)(?1)/SI  /(a|bc)(?1)/SI
10111  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 9923  No options Line 10113  No options
10113  No first char  No first char
10114  No need char  No need char
10115  Subject length lower bound = 2  Subject length lower bound = 2
10116  Starting byte set: a b  Starting chars: a b
10117    
10118  /(a|b\1)(a|b\1)/SI  /(a|b\1)(a|b\1)/SI
10119  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 9932  No options Line 10122  No options
10122  No first char  No first char
10123  No need char  No need char
10124  Subject length lower bound = 2  Subject length lower bound = 2
10125  Starting byte set: a b  Starting chars: a b
10126    
10127  /(a|b\1){2}/SI  /(a|b\1){2}/SI
10128  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 9941  No options Line 10131  No options
10131  No first char  No first char
10132  No need char  No need char
10133  Subject length lower bound = 2  Subject length lower bound = 2
10134  Starting byte set: a b  Starting chars: a b
10135    
10136  /(a|bbbb\1)(a|bbbb\1)/SI  /(a|bbbb\1)(a|bbbb\1)/SI
10137  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 9950  No options Line 10140  No options
10140  No first char  No first char
10141  No need char  No need char
10142  Subject length lower bound = 2  Subject length lower bound = 2
10143  Starting byte set: a b  Starting chars: a b
10144    
10145  /(a|bbbb\1){2}/SI  /(a|bbbb\1){2}/SI
10146  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 9959  No options Line 10149  No options
10149  No first char  No first char
10150  No need char  No need char
10151  Subject length lower bound = 2  Subject length lower bound = 2
10152  Starting byte set: a b  Starting chars: a b
10153    
10154  /^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
10155  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 9967  Options: anchored Line 10157  Options: anchored
10157  No first char  No first char
10158  Need char = ':'  Need char = ':'
10159  Subject length lower bound = 22  Subject length lower bound = 22
10160  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  
10161    
10162  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10163  Capturing subpattern count = 11  Capturing subpattern count = 11
# Line 10179  Options: caseless dotall Line 10165  Options: caseless dotall
10165  First char = '<'  First char = '<'
10166  Need char = '>'  Need char = '>'
10167  Subject length lower bound = 47  Subject length lower bound = 47
10168  No set of starting bytes  No starting char list
10169    
10170  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10171  Capturing subpattern count = 0  Capturing subpattern count = 0
10172  No options  No options
10173  First char at start or follows newline  No first char
10174  Need char = 'o'  Need char = 'o'
10175  Subject length lower bound = 4  Subject length lower bound = 4
10176  No set of starting bytes  No starting char list
10177    
10178  /(?(?=[^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
10179  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 10195  Options: extended Line 10181  Options: extended
10181  No first char  No first char
10182  Need char = '-'  Need char = '-'
10183  Subject length lower bound = 8  Subject length lower bound = 8
10184  No set of starting bytes  No starting char list
10185    
10186  /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI  /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10187  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10203  Options: caseless Line 10189  Options: caseless
10189  No first char  No first char
10190  No need char  No need char
10191  Subject length lower bound = 1  Subject length lower bound = 1
10192  Starting byte set: A B C a b c  Starting chars: A B C a b c
10193    
10194  /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI  /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10195  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 10211  No options Line 10197  No options
10197  No first char  No first char
10198  Need char = 'b'  Need char = 'b'
10199  Subject length lower bound = 41  Subject length lower bound = 41
10200  Starting byte set: c d  Starting chars: c d
10201    
10202  /<a[\s]+href[\s]*=[\s]*          # find <a href=  /<a[\s]+href[\s]*=[\s]*          # find <a href=
10203   ([\"\'])?                       # find single or double quote   ([\"\'])?                       # find single or double quote
# Line 10224  Options: caseless extended dotall Line 10210  Options: caseless extended dotall
10210  First char = '<'  First char = '<'
10211  Need char = '='  Need char = '='
10212  Subject length lower bound = 9  Subject length lower bound = 9
10213  No set of starting bytes  No starting char list
10214    
10215  /^(?!:)                       # colon disallowed at start  /^(?!:)                       # colon disallowed at start
10216    (?:                         # start of item    (?:                         # start of item
# Line 10240  Options: anchored caseless extended Line 10226  Options: anchored caseless extended
10226  No first char  No first char
10227  Need char = ':'  Need char = ':'
10228  Subject length lower bound = 2  Subject length lower bound = 2
10229  No set of starting bytes  No starting char list
10230    
10231  /(?|(?<a>A)|(?<a>B))/I  /(?|(?<a>A)|(?<a>B))/I
10232  Capturing subpattern count = 1  Capturing subpattern count = 1
10233  Named capturing subpatterns:  Named capturing subpatterns:
10234    a   1    a   1
   a   1  
10235  No options  No options
10236  No first char  No first char
10237  No need char  No need char
# Line 10319  No match Line 10304  No match
10304          Ket          Ket
10305          Ket          Ket
10306          Cond          Cond
10307        4 Cond nref          Cond ref <D>2
10308          X          X
10309          Alt          Alt
10310          Y          Y
# Line 10365  No match Line 10350  No match
10350          CBra 4          CBra 4
10351          d          d
10352          Cond          Cond
10353          Cond nrecurse 1          Cond recurse <A>2
10354          $          $
10355          Alt          Alt
         Once  
10356          Recurse          Recurse
10357          Ket          Ket
10358          Ket          Ket
10359          Ket          Ket
         Ket  
10360          End          End
10361  ------------------------------------------------------------------  ------------------------------------------------------------------
10362  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 10429  Partial match: abca Line 10412  Partial match: abca
10412      xxxxabcde\P\P      xxxxabcde\P\P
10413  Partial match: abcde  Partial match: abcde
10414    
10415  /-- This is not in the Perl 5.10 test because Perl seems currently to be broken  /-- This is not in the Perl-compatible test because Perl seems currently to be
10416      and not behaving as specified in that it *does* bumpalong after hitting      broken and not behaving as specified in that it *does* bumpalong after
10417      (*COMMIT). --/      hitting (*COMMIT). --/
10418    
10419  /(?1)(A(*COMMIT)|B)D/  /(?1)(A(*COMMIT)|B)D/
10420      ABD      ABD
# Line 10467  Options: Line 10450  Options:
10450  No first char  No first char
10451  Need char = 'a'  Need char = 'a'
10452  Subject length lower bound = 1  Subject length lower bound = 1
10453  No set of starting bytes  No starting char list
10454      cat      cat
10455   0: a   0: a
10456   1:   1:
# Line 10481  No options Line 10464  No options
10464  No first char  No first char
10465  Need char = 'a'  Need char = 'a'
10466  Subject length lower bound = 3  Subject length lower bound = 3
10467  No set of starting bytes  No starting char list
10468      cat      cat
10469  No match  No match
10470    
# Line 10493  No options Line 10476  No options
10476  First char = 'i'  First char = 'i'
10477  No need char  No need char
10478  Subject length lower bound = 1  Subject length lower bound = 1
10479  No set of starting bytes  No starting char list
10480      i      i
10481   0: i   0: i
10482    
# Line 10503  No options Line 10486  No options
10486  No first char  No first char
10487  Need char = 'i'  Need char = 'i'
10488  Subject length lower bound = 1  Subject length lower bound = 1
10489  Starting byte set: i  Starting chars: i
10490      ia      ia
10491   0: ia   0: ia
10492   1:   1:
# Line 10511  Starting byte set: i Line 10494  Starting byte set: i
10494  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10495  ------------------------------------------------------------------  ------------------------------------------------------------------
10496          Bra          Bra
10497       NC a       /i a
      00 Opt  
10498          b          b
10499          Alt          Alt
      00 Opt  
10500          c          c
10501          Ket          Ket
10502          End          End
# Line 10534  No match Line 10515  No match
10515  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10516  ------------------------------------------------------------------  ------------------------------------------------------------------
10517          Bra          Bra
10518       NC a       /i ab
      05 Opt  
      NC b  
10519          Alt          Alt
10520       05 Opt       /i c
      NC c  
10521          Ket          Ket
10522          End          End
10523  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10547  No match Line 10525  No match
10525  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10526  ------------------------------------------------------------------  ------------------------------------------------------------------
10527          Bra          Bra
10528       NC a       /i a
      04 Opt  
10529          b          b
10530          Alt          Alt
      04 Opt  
10531          c          c
10532          Ket          Ket
10533          End          End
# Line 10598  No match Line 10574  No match
10574  ------------------------------------------------------------------  ------------------------------------------------------------------
10575          Bra          Bra
10576          ^          ^
10577          Once          Braposzero
10578          Brazero          SBraPos
         Once  
10579          Recurse          Recurse
10580          KetRmax          KetRpos
         Ket  
10581          Cond          Cond
10582          Cond def          Cond def
10583          CBra 1          CBra 1
# Line 10634  No match Line 10608  No match
10608          End          End
10609  ------------------------------------------------------------------  ------------------------------------------------------------------
10610    
10611  / -- The first four of these are not in the Perl 5.10 test because Perl  / -- This one is here because Perl gives the match as "b" rather than "ab". I
      documents that the use of \K in assertions is "not well defined". The  
      last is here because Perl gives the match as "b" rather than "ab". I  
10612       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
10613    
 /(?=a\Kb)ab/  
     ab  
  0: b  
   
 /(?!a\Kb)ac/  
     ac  
  0: ac  
   
 /^abc(?<=b\Kc)d/  
     abcd  
  0: cd  
   
 /^abc(?<!b\Kq)d/  
     abcd  
  0: abcd  
   
10614  /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
10615      ab      ab
10616   0: ab   0: ab
10617   1: ab   1: ab
10618    
 /----------------------/  
   
10619  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10620  Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
10621    
# Line 10681  Failed: an argument is not allowed for ( Line 10635  Failed: an argument is not allowed for (
10635      ACABX      ACABX
10636  No match  No match
10637    
10638  /--- These should be different, but in Perl 5.11 are not, which I think  /--- These should be different, but in Perl they are not, which I think
10639       is a bug in Perl. ---/       is a bug in Perl. ---/
10640    
10641  /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
# Line 10692  No match Line 10646  No match
10646      AC      AC
10647  No match  No match
10648    
10649  /--- A whole lot of tests of verbs with arguments are here rather than in test  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10650       11 because Perl doesn't seem to follow its specification entirely  though PCRE does. ---/
      correctly. ---/  
   
 /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is  
      not clear how Perl defines "involved in the failure of the match". ---/  
10651    
10652  /^(A(*THEN:A)B|C(*THEN:B)D)/K  /^A(*:A)B|^X(*:A)Y/K
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
10653      ** Failers      ** Failers
10654  No match  No match
10655      AC      XAQQ
10656  No match  No match, mark = A
     CB  
 No match, mark = B  
10657    
10658  /--- Check the use of names for success and failure. PCRE doesn't show these  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10659  names for success, though Perl does, contrary to its spec. ---/  optimizations defeat this. So does the PCRE optimization unless we disable it
10660    with \Y. ---/
10661    
10662  /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K  /(*COMMIT)ABC/
10663      AB      ABCDEFG
10664   0: AB   0: ABC
  1: AB  
     CD  
  0: CD  
  1: CD  
10665      ** Failers      ** Failers
10666  No match  No match
10667      AC      DEFGABC\Y
10668  No match, mark = A  No match
     CB  
 No match, mark = B  
10669    
10670  /--- An empty name does not pass back an empty string. It is the same as if no  /^(ab (c+(*THEN)cd) | xyz)/x
10671  name were given. ---/      abcccd
10672    No match
10673    
10674  /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K  /^(ab (c+(*PRUNE)cd) | xyz)/x
10675      AB      abcccd
10676   0: AB  No match
  1: AB  
     CD  
  0: CD  
  1: CD  
10677    
10678  /--- PRUNE goes to next bumpalong; COMMIT does not. ---/  /^(ab (c+(*FAIL)cd) | xyz)/x
10679        abcccd
10680    No match
10681    
10682  /A(*PRUNE:A)B/K  /--- Perl gets some of these wrong ---/
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/K  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
10683    
10684  /(*MARK:A)(*THEN:B)(C|X)/K  /(?>.(*ACCEPT))*?5/
10685      C      abcde
10686   0: C   0: a
  1: C  
 MK: A  
     D  
 No match, mark = B  
10687    
10688  /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/  /(.(*ACCEPT))*?5/
10689        abcde
10690     0: a
10691     1: a
10692    
10693  /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK  /(.(*ACCEPT))5/
10694      AAAC      abcde
10695  No match   0: a
10696     1: a
10697    
10698  /--- Same --/  /(.(*ACCEPT))*5/
10699        abcde
10700     0: a
10701     1: a
10702    
10703  /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK  /A\NB./BZ
10704      AAAC  ------------------------------------------------------------------
10705            Bra
10706            A
10707            Any
10708            B
10709            Any
10710            Ket
10711            End
10712    ------------------------------------------------------------------
10713        ACBD
10714     0: ACBD
10715        *** Failers
10716    No match
10717        A\nB
10718    No match
10719        ACB\n
10720  No match  No match
10721    
10722  /--- This should fail; the SKIP advances by one, but when we get to AC, the  /A\NB./sBZ
10723       PRUNE kills it. ---/  ------------------------------------------------------------------
10724            Bra
10725  /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK          A
10726      AAAC          Any
10727            B
10728            AllAny
10729            Ket
10730            End
10731    ------------------------------------------------------------------
10732        ACBD
10733     0: ACBD
10734        ACB\n
10735     0: ACB\x0a
10736        *** Failers
10737    No match
10738        A\nB
10739    No match
10740    
10741    /A\NB/<crlf>
10742        A\nB
10743     0: A\x0aB
10744        A\rB
10745     0: A\x0dB
10746        ** Failers
10747    No match
10748        A\r\nB
10749    No match
10750    
10751    /\R+b/BZ
10752    ------------------------------------------------------------------
10753            Bra
10754            \R++
10755            b
10756            Ket
10757            End
10758    ------------------------------------------------------------------
10759    
10760    /\R+\n/BZ
10761    ------------------------------------------------------------------
10762            Bra
10763            \R+
10764            \x0a
10765            Ket
10766            End
10767    ------------------------------------------------------------------
10768    
10769    /\R+\d/BZ
10770    ------------------------------------------------------------------
10771            Bra
10772            \R++
10773            \d
10774            Ket
10775            End
10776    ------------------------------------------------------------------
10777    
10778    /\d*\R/BZ
10779    ------------------------------------------------------------------
10780            Bra
10781            \d*+
10782            \R
10783            Ket
10784            End
10785    ------------------------------------------------------------------
10786    
10787    /\s*\R/BZ
10788    ------------------------------------------------------------------
10789            Bra
10790            \s*
10791            \R
10792            Ket
10793            End
10794    ------------------------------------------------------------------
10795        \x20\x0a
10796     0:  \x0a
10797        \x20\x0d
10798     0:  \x0d
10799        \x20\x0d\x0a
10800     0:  \x0d\x0a
10801    
10802    /\S*\R/BZ
10803    ------------------------------------------------------------------
10804            Bra
10805            \S*+
10806            \R
10807            Ket
10808            End
10809    ------------------------------------------------------------------
10810        a\x0a
10811     0: a\x0a
10812    
10813    /X\h*\R/BZ
10814    ------------------------------------------------------------------
10815            Bra
10816            X
10817            \h*+
10818            \R
10819            Ket
10820            End
10821    ------------------------------------------------------------------
10822        X\x20\x0a
10823     0: X \x0a
10824    
10825    /X\H*\R/BZ
10826    ------------------------------------------------------------------
10827            Bra
10828            X
10829            \H*
10830            \R
10831            Ket
10832            End
10833    ------------------------------------------------------------------
10834        X\x0d\x0a
10835     0: X\x0d\x0a
10836    
10837    /X\H+\R/BZ
10838    ------------------------------------------------------------------
10839            Bra
10840            X
10841            \H+
10842            \R
10843            Ket
10844            End
10845    ------------------------------------------------------------------
10846        X\x0d\x0a
10847     0: X\x0d\x0a
10848    
10849    /X\H++\R/BZ
10850    ------------------------------------------------------------------
10851            Bra
10852            X
10853            \H++
10854            \R
10855            Ket
10856            End
10857    ------------------------------------------------------------------
10858        X\x0d\x0a
10859    No match
10860    
10861    /(?<=abc)def/
10862        abc\P\P
10863    Partial match at offset 3: abc
10864    
10865    /abc$/
10866        abc
10867     0: abc
10868        abc\P
10869     0: abc
10870        abc\P\P
10871    Partial match: abc
10872    
10873    /abc$/m
10874        abc
10875     0: abc
10876        abc\n
10877     0: abc
10878        abc\P\P
10879    Partial match: abc
10880        abc\n\P\P
10881     0: abc
10882        abc\P
10883     0: abc
10884        abc\n\P
10885     0: abc
10886    
10887    /abc\z/
10888        abc
10889     0: abc
10890        abc\P
10891     0: abc
10892        abc\P\P
10893    Partial match: abc
10894    
10895    /abc\Z/
10896        abc
10897     0: abc
10898        abc\P
10899     0: abc
10900        abc\P\P
10901    Partial match: abc
10902    
10903    /abc\b/
10904        abc
10905     0: abc
10906        abc\P
10907     0: abc
10908        abc\P\P
10909    Partial match: abc
10910    
10911    /abc\B/
10912        abc
10913    No match
10914        abc\P
10915    Partial match: abc
10916        abc\P\P
10917    Partial match: abc
10918    
10919    /.+/
10920        abc\>0
10921     0: abc
10922        abc\>1
10923     0: bc
10924        abc\>2
10925     0: c
10926        abc\>3
10927    No match
10928        abc\>4
10929    Error -24 (bad offset value)
10930        abc\>-4
10931    Error -24 (bad offset value)
10932    
10933    /^\cģ/
10934    Failed: \c must be followed by an ASCII character at offset 3
10935    
10936    /(?P<abn>(?P=abn)xxx)/BZ
10937    ------------------------------------------------------------------
10938            Bra
10939            Once
10940            CBra 1
10941            \1
10942            xxx
10943            Ket
10944            Ket
10945            Ket
10946            End
10947    ------------------------------------------------------------------
10948    
10949    /(a\1z)/BZ
10950    ------------------------------------------------------------------
10951            Bra
10952            Once
10953            CBra 1
10954            a
10955            \1
10956            z
10957            Ket
10958            Ket
10959            Ket
10960            End
10961    ------------------------------------------------------------------
10962    
10963    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10964    Failed: syntax error in subpattern name (missing terminator) at offset 29
10965    
10966    /(?P<abn>(?P=axn)xxx)/BZ
10967    Failed: reference to non-existent subpattern at offset 15
10968    
10969    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10970    ------------------------------------------------------------------
10971            Bra
10972            CBra 1
10973            \2
10974            xxx
10975            Ket
10976            CBra 2
10977            yy
10978            Ket
10979            Ket
10980            End
10981    ------------------------------------------------------------------
10982    
10983    /-- These tests are here because Perl gets the first one wrong. --/
10984    
10985    /(\R*)(.)/s
10986        \r\n
10987     0: \x0d
10988     1:
10989     2: \x0d
10990        \r\r\n\n\r
10991     0: \x0d\x0d\x0a\x0a\x0d
10992     1: \x0d\x0d\x0a\x0a
10993     2: \x0d
10994        \r\r\n\n\r\n
10995     0: \x0d\x0d\x0a\x0a\x0d
10996     1: \x0d\x0d\x0a\x0a
10997     2: \x0d
10998    
10999    /(\R)*(.)/s
11000        \r\n
11001     0: \x0d
11002     1: <unset>
11003     2: \x0d
11004        \r\r\n\n\r
11005     0: \x0d\x0d\x0a\x0a\x0d
11006     1: \x0a
11007     2: \x0d
11008        \r\r\n\n\r\n
11009     0: \x0d\x0d\x0a\x0a\x0d
11010     1: \x0a
11011     2: \x0d
11012    
11013    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11014        \r\n
11015     0: \x0d
11016     1:
11017     2: \x0d
11018        \r\r\n\n\r
11019     0: \x0d\x0d\x0a\x0a\x0d
11020     1: \x0d\x0d\x0a\x0a
11021     2: \x0d
11022        \r\r\n\n\r\n
11023     0: \x0d\x0d\x0a\x0a\x0d
11024     1: \x0d\x0d\x0a\x0a
11025     2: \x0d
11026    
11027    /-- --/
11028    
11029    /^abc$/BZ
11030    ------------------------------------------------------------------
11031            Bra
11032            ^
11033            abc
11034            $
11035            Ket
11036            End
11037    ------------------------------------------------------------------
11038    
11039    /^abc$/BZm
11040    ------------------------------------------------------------------
11041            Bra
11042         /m ^
11043            abc
11044         /m $
11045            Ket
11046            End
11047    ------------------------------------------------------------------
11048    
11049    /^(a)*+(\w)/S
11050        aaaaX
11051     0: aaaaX
11052     1: a
11053     2: X
11054        ** Failers
11055    No match
11056        aaaa
11057    No match
11058    
11059    /^(?:a)*+(\w)/S
11060        aaaaX
11061     0: aaaaX
11062     1: X
11063        ** Failers
11064    No match
11065        aaaa
11066  No match  No match
11067    
11068  /A(*:A)A+(*SKIP)(B|Z) | AC/xK  /(a)++1234/SDZ
11069      AAAC  ------------------------------------------------------------------
11070  No match          Bra
11071            CBraPos 1
11072            a
11073            KetRpos
11074            1234
11075            Ket
11076            End
11077    ------------------------------------------------------------------
11078    Capturing subpattern count = 1
11079    No options
11080    First char = 'a'
11081    Need char = '4'
11082    Subject length lower bound = 5
11083    No starting char list
11084    
11085    /([abc])++1234/SI
11086    Capturing subpattern count = 1
11087    No options
11088    No first char
11089    Need char = '4'
11090    Subject length lower bound = 5
11091    Starting chars: a b c
11092    
11093    /(?<=(abc)+)X/
11094    Failed: lookbehind assertion is not fixed length at offset 10
11095    
11096    /(^ab)/I
11097    Capturing subpattern count = 1
11098    Options: anchored
11099    No first char
11100    No need char
11101    
11102    /(^ab)++/I
11103    Capturing subpattern count = 1
11104    Options: anchored
11105    No first char
11106    No need char
11107    
11108    /(^ab|^)+/I
11109    Capturing subpattern count = 1
11110    May match empty string
11111    Options: anchored
11112    No first char
11113    No need char
11114    
11115    /(^ab|^)++/I
11116    Capturing subpattern count = 1
11117    May match empty string
11118    Options: anchored
11119    No first char
11120    No need char
11121    
11122    /(?:^ab)/I
11123    Capturing subpattern count = 0
11124    Options: anchored
11125    No first char
11126    No need char
11127    
11128    /(?:^ab)++/I
11129    Capturing subpattern count = 0
11130    Options: anchored
11131    No first char
11132    No need char
11133    
11134    /(?:^ab|^)+/I
11135    Capturing subpattern count = 0
11136    May match empty string
11137    Options: anchored
11138    No first char
11139    No need char
11140    
11141    /(?:^ab|^)++/I
11142    Capturing subpattern count = 0
11143    May match empty string
11144    Options: anchored
11145    No first char
11146    No need char
11147    
11148    /(.*ab)/I
11149    Capturing subpattern count = 1
11150    No options
11151    First char at start or follows newline
11152    Need char = 'b'
11153    
11154    /(.*ab)++/I
11155    Capturing subpattern count = 1
11156    No options
11157    First char at start or follows newline
11158    Need char = 'b'
11159    
11160    /(.*ab|.*)+/I
11161    Capturing subpattern count = 1
11162    May match empty string
11163    No options
11164    First char at start or follows newline
11165    No need char
11166    
11167    /(.*ab|.*)++/I
11168    Capturing subpattern count = 1
11169    May match empty string
11170    No options
11171    First char at start or follows newline
11172    No need char
11173    
11174    /(?:.*ab)/I
11175    Capturing subpattern count = 0
11176    No options
11177    First char at start or follows newline
11178    Need char = 'b'
11179    
11180    /(?:.*ab)++/I
11181    Capturing subpattern count = 0
11182    No options
11183    First char at start or follows newline
11184    Need char = 'b'
11185    
11186    /(?:.*ab|.*)+/I
11187    Capturing subpattern count = 0
11188    May match empty string
11189    No options
11190    First char at start or follows newline
11191    No need char
11192    
11193    /(?:.*ab|.*)++/I
11194    Capturing subpattern count = 0
11195    May match empty string
11196    No options
11197    First char at start or follows newline
11198    No need char
11199    
11200    /(?=a)[bcd]/I
11201    Capturing subpattern count = 0
11202    No options
11203    First char = 'a'
11204    No need char
11205    
11206    /((?=a))[bcd]/I
11207    Capturing subpattern count = 1
11208    No options
11209    First char = 'a'
11210    No need char
11211    
11212    /((?=a))+[bcd]/I
11213    Capturing subpattern count = 1
11214    No options
11215    First char = 'a'
11216    No need char
11217    
11218    /((?=a))++[bcd]/I
11219    Capturing subpattern count = 1
11220    No options
11221    First char = 'a'
11222    No need char
11223    
11224    /(?=a+)[bcd]/iI
11225    Capturing subpattern count = 0
11226    Options: caseless
11227    First char = 'a' (caseless)
11228    No need char
11229    
11230    /(?=a+?)[bcd]/iI
11231    Capturing subpattern count = 0
11232    Options: caseless
11233    First char = 'a' (caseless)
11234    No need char
11235    
11236    /(?=a++)[bcd]/iI
11237    Capturing subpattern count = 0
11238    Options: caseless
11239    First char = 'a' (caseless)
11240    No need char
11241    
11242    /(?=a{3})[bcd]/iI
11243    Capturing subpattern count = 0
11244    Options: caseless
11245    First char = 'a' (caseless)
11246    Need char = 'a' (caseless)
11247    
11248    /(abc)\1+/S
11249    
11250    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11251    
11252    /(?1)(?:(b(*ACCEPT))){0}/
11253        b
11254     0: b
11255    
11256    /(?1)(?:(b(*ACCEPT))){0}c/
11257        bc
11258     0: bc
11259        ** Failers
11260    No match
11261        b
11262    No match
11263    
11264    /(?1)(?:((*ACCEPT))){0}c/
11265        c
11266     0: c
11267        c\N
11268     0: c
11269    
11270    /^.*?(?(?=a)a|b(*THEN)c)/
11271        ba
11272    No match
11273    
11274    /^.*?(?(?=a)a|bc)/
11275        ba
11276     0: ba
11277    
11278    /^.*?(?(?=a)a(*THEN)b|c)/
11279        ac
11280    No match
11281    
11282    /^.*?(?(?=a)a(*THEN)b)c/
11283        ac
11284    No match
11285    
11286    /^.*?(a(*THEN)b)c/
11287        aabc
11288    No match
11289    
11290    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11291        aabc
11292     0: aabc
11293    
11294    /^.*?(a(*THEN)b|z)c/
11295        aabc
11296     0: aabc
11297     1: ab
11298    
11299    /^.*?(z|a(*THEN)b)c/
11300        aabc
11301     0: aabc
11302     1: ab
11303    
11304    /-- --/
11305