/[pcre]/code/trunk/testdata/testoutput2
ViewVC logotype

Diff of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 621 by ph10, Mon Jul 18 10:14:09 2011 UTC revision 1480 by ph10, Tue May 27 18:02:51 2014 UTC
# Line 3  Line 3 
3      It also checks the non-Perl syntax the PCRE supports (Python, .NET,      It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4      Oniguruma). Finally, there are some tests where PCRE and Perl differ,      Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5      either because PCRE can't be compatible, or there is a possible Perl      either because PCRE can't be compatible, or there is a possible Perl
6      bug. --/      bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
11    < forbid 8W
12    
 /-- Originally, the Perl >= 5.10 things were in here too, but now I have  
     separated many (most?) of them out into test 11. However, there may still  
     be some that were overlooked. --/  
   
13  /(a)b|/I  /(a)b|/I
14  Capturing subpattern count = 1  Capturing subpattern count = 1
15    May match empty string
16  No options  No options
17  No first char  No first char
18  No need char  No need char
# Line 176  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 188  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 200  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 208  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 229  No options Line 231  No options
231  No first char  No first char
232  No need char  No need char
233  Subject length lower bound = 1  Subject length lower bound = 1
234  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting 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 377  No need char Line 379  No need char
379   2: <unset>   2: <unset>
380   3: def   3: def
381    
 /abc/P  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/P  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/P  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/P  
     the quick brown fox  
  0: the quick brown fox  
     *** Failers  
 No match: POSIX code 17: match failed  
     The Quick Brown Fox  
 No match: POSIX code 17: match failed  
   
 /the quick brown fox/Pi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/P  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/P  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/P  
     abc  
 No match: POSIX code 17: match failed  
   
382  /)/  /)/
383  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
384    
# Line 504  Need char = '=' Line 451  Need char = '='
451    
452  /(?<!bar|cattle)foo/I  /(?<!bar|cattle)foo/I
453  Capturing subpattern count = 0  Capturing subpattern count = 0
454    Max lookbehind = 6
455  No options  No options
456  First char = 'f'  First char = 'f'
457  Need char = 'o'  Need char = 'o'
# Line 553  No need char Line 501  No need char
501    
502  /(?s).*/I  /(?s).*/I
503  Capturing subpattern count = 0  Capturing subpattern count = 0
504    May match empty string
505  Options: anchored dotall  Options: anchored dotall
506  No first char  No first char
507  No need char  No need char
# Line 563  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 571  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 579  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 600  Failed: conditional group contains more Line 549  Failed: conditional group contains more
549  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
550    
551  /(?(1a)/  /(?(1a)/
552  Failed: missing ) at offset 6  Failed: malformed number or name after (?( at offset 4
553    
554  /(?(1a))/  /(?(1a))/
555  Failed: reference to non-existent subpattern at offset 6  Failed: malformed number or name after (?( at offset 4
556    
557  /(?(?i))/  /(?(?i))/
558  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
# Line 642  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 650  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 686  No match Line 635  No match
635    
636  /\Aabc/Im  /\Aabc/Im
637  Capturing subpattern count = 0  Capturing subpattern count = 0
638    Max lookbehind = 1
639  Options: anchored multiline  Options: anchored multiline
640  No first char  No first char
641  No need char  No need char
# Line 711  No need char Line 661  No need char
661    
662  /(?<=foo)[ab]/IS  /(?<=foo)[ab]/IS
663  Capturing subpattern count = 0  Capturing subpattern count = 0
664    Max lookbehind = 3
665  No options  No options
666  No first char  No first char
667  No need char  No need char
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 731  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 752  No match Line 705  No match
705    
706  /^(?<=foo\n)bar/Im  /^(?<=foo\n)bar/Im
707  Capturing subpattern count = 0  Capturing subpattern count = 0
708    Max lookbehind = 4
709  Contains explicit CR or LF match  Contains explicit CR or LF match
710  Options: multiline  Options: multiline
711  First char at start or follows newline  First char at start or follows newline
# Line 794  Failed: lookbehind assertion is not fixe Line 748  Failed: lookbehind assertion is not fixe
748    
749  /(?<=bullock|donkey)-cart/I  /(?<=bullock|donkey)-cart/I
750  Capturing subpattern count = 0  Capturing subpattern count = 0
751    Max lookbehind = 7
752  No options  No options
753  First char = '-'  First char = '-'
754  Need char = 't'  Need char = 't'
# Line 810  No match Line 765  No match
765    
766  /(?<=ab(?i)x|y|z)/I  /(?<=ab(?i)x|y|z)/I
767  Capturing subpattern count = 0  Capturing subpattern count = 0
768    Max lookbehind = 3
769    May match empty string
770  No options  No options
771  No first char  No first char
772  No need char  No need char
773    
774  /(?>.*)(?<=(abcd)|(xyz))/I  /(?>.*)(?<=(abcd)|(xyz))/I
775  Capturing subpattern count = 2  Capturing subpattern count = 2
776    Max lookbehind = 4
777    May match empty string
778  No options  No options
779  First char at start or follows newline  No first char
780  No need char  No need char
781      alphabetabcd      alphabetabcd
782   0: alphabetabcd   0: alphabetabcd
# Line 829  No need char Line 788  No need char
788    
789  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
790  Capturing subpattern count = 0  Capturing subpattern count = 0
791    Max lookbehind = 4
792  No options  No options
793  First char = 'Z'  First char = 'Z'
794  Need char = 'Z'  Need char = 'Z'
# Line 857  No match Line 817  No match
817    
818  /(?<!(foo)a)bar/I  /(?<!(foo)a)bar/I
819  Capturing subpattern count = 1  Capturing subpattern count = 1
820    Max lookbehind = 4
821  No options  No options
822  First char = 'b'  First char = 'b'
823  Need char = 'r'  Need char = 'r'
# Line 869  No match Line 830  No match
830      fooabar      fooabar
831  No match  No match
832    
 /This one is here because Perl 5.005_02 doesn't fail it/I  
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 't'  
   
 /^(a)?(?(1)a|b)+$/I  
 Capturing subpattern count = 1  
 Options: anchored  
 No first char  
 No need char  
     *** Failers  
 No match  
     a  
 No match  
   
833  /This one is here because Perl behaves differently; see also the following/I  /This one is here because Perl behaves differently; see also the following/I
834  Capturing subpattern count = 0  Capturing subpattern count = 0
835  No options  No options
# Line 1031  Failed: numbers out of order in {} quant Line 976  Failed: numbers out of order in {} quant
976  /abc/\  /abc/\
977  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
978    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
979  /abc/\i  /abc/\i
980  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
981    
# Line 1149  No first char Line 1091  No first char
1091  No need char  No need char
1092      abc\00def\L\C0      abc\00def\L\C0
1093   0: abc\x00def   0: abc\x00def
1094   0C abc (7)   0C abc\x00def (7)
1095   0L abc   0L abc
1096    
1097  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
# Line 1261  No need char Line 1203  No need char
1203    
1204  /\Biss\B/I+  /\Biss\B/I+
1205  Capturing subpattern count = 0  Capturing subpattern count = 0
1206    Max lookbehind = 1
1207  No options  No options
1208  First char = 'i'  First char = 'i'
1209  Need char = 's'  Need char = 's'
# Line 1268  Need char = 's' Line 1211  Need char = 's'
1211   0: iss   0: iss
1212   0+ issippi   0+ issippi
1213    
 /\Biss\B/I+P  
     Mississippi  
  0: iss  
  0+ issippi  
   
1214  /iss/IG+  /iss/IG+
1215  Capturing subpattern count = 0  Capturing subpattern count = 0
1216  No options  No options
# Line 1286  Need char = 's' Line 1224  Need char = 's'
1224    
1225  /\Biss\B/IG+  /\Biss\B/IG+
1226  Capturing subpattern count = 0  Capturing subpattern count = 0
1227    Max lookbehind = 1
1228  No options  No options
1229  First char = 'i'  First char = 'i'
1230  Need char = 's'  Need char = 's'
# Line 1295  Need char = 's' Line 1234  Need char = 's'
1234    
1235  /\Biss\B/Ig+  /\Biss\B/Ig+
1236  Capturing subpattern count = 0  Capturing subpattern count = 0
1237    Max lookbehind = 1
1238  No options  No options
1239  First char = 'i'  First char = 'i'
1240  Need char = 's'  Need char = 's'
# Line 1310  No match Line 1250  No match
1250    
1251  /(?<=[Ms])iss/Ig+  /(?<=[Ms])iss/Ig+
1252  Capturing subpattern count = 0  Capturing subpattern count = 0
1253    Max lookbehind = 1
1254  No options  No options
1255  First char = 'i'  First char = 'i'
1256  Need char = 's'  Need char = 's'
# Line 1321  Need char = 's' Line 1262  Need char = 's'
1262    
1263  /(?<=[Ms])iss/IG+  /(?<=[Ms])iss/IG+
1264  Capturing subpattern count = 0  Capturing subpattern count = 0
1265    Max lookbehind = 1
1266  No options  No options
1267  First char = 'i'  First char = 'i'
1268  Need char = 's'  Need char = 's'
# Line 1402  Capturing subpattern count = 0 Line 1344  Capturing subpattern count = 0
1344  Contains explicit CR or LF match  Contains explicit CR or LF match
1345  Options: multiline  Options: multiline
1346  First char at start or follows newline  First char at start or follows newline
1347  Need char = 10  Need char = \x0a
1348      ab\nab\ncd      ab\nab\ncd
1349   0: ab\x0a   0: ab\x0a
1350   0+ ab\x0acd   0+ ab\x0acd
# Line 1441  Need char = 'c' Line 1383  Need char = 'c'
1383    
1384  /a*/I  /a*/I
1385  Capturing subpattern count = 0  Capturing subpattern count = 0
1386    May match empty string
1387  No options  No options
1388  No first char  No first char
1389  No need char  No need char
# Line 1459  Need char = 'a' Line 1402  Need char = 'a'
1402    
1403  /a{0,3}/I  /a{0,3}/I
1404  Capturing subpattern count = 0  Capturing subpattern count = 0
1405    May match empty string
1406  No options  No options
1407  No first char  No first char
1408  No need char  No need char
# Line 1501  Need char = 'r' Line 1445  Need char = 'r'
1445    
1446  /...(?<=abc)/I  /...(?<=abc)/I
1447  Capturing subpattern count = 0  Capturing subpattern count = 0
1448    Max lookbehind = 3
1449  No options  No options
1450  No first char  No first char
1451  No need char  No need char
# Line 1657  Need char = 'e' Line 1602  Need char = 'e'
1602    
1603  /a?b?/I  /a?b?/I
1604  Capturing subpattern count = 0  Capturing subpattern count = 0
1605    May match empty string
1606  No options  No options
1607  No first char  No first char
1608  No need char  No need char
# Line 1675  No match Line 1621  No match
1621    
1622  /|-/I  /|-/I
1623  Capturing subpattern count = 0  Capturing subpattern count = 0
1624    May match empty string
1625  No options  No options
1626  No first char  No first char
1627  No need char  No need char
# Line 1689  No need char Line 1636  No need char
1636      \Nabc      \Nabc
1637  No match  No match
1638    
 /a*(b+)(z)(z)/P  
     aaaabbbbzzzz  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
  0: aaaabbbbzz  
     aaaabbbbzzzz\O2  
  0: aaaabbbbzz  
  1: bbbb  
     aaaabbbbzzzz\O3  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
     aaaabbbbzzzz\O4  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O5  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
   
1639  /^.?abcd/IS  /^.?abcd/IS
1640  Capturing subpattern count = 0  Capturing subpattern count = 0
1641  Options: anchored  Options: anchored
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 1955  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 2017  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 2715  Need char = '-' Line 2635  Need char = '-'
2635          End          End
2636  ------------------------------------------------------------------  ------------------------------------------------------------------
2637  Capturing subpattern count = 0  Capturing subpattern count = 0
2638    May match empty string
2639  Options: extended  Options: extended
2640  No first char  No first char
2641  No need char  No need char
# Line 2734  No need char Line 2655  No need char
2655  /[\s]/DZ  /[\s]/DZ
2656  ------------------------------------------------------------------  ------------------------------------------------------------------
2657          Bra          Bra
2658          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
2659          Ket          Ket
2660          End          End
2661  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2746  No need char Line 2667  No need char
2667  /[\S]/DZ  /[\S]/DZ
2668  ------------------------------------------------------------------  ------------------------------------------------------------------
2669          Bra          Bra
2670          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)          [\x00-\x08\x0e-\x1f!-\xff] (neg)
2671          Ket          Ket
2672          End          End
2673  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2857  Need char = '0' Line 2778  Need char = '0'
2778          End          End
2779  ------------------------------------------------------------------  ------------------------------------------------------------------
2780  Capturing subpattern count = 0  Capturing subpattern count = 0
2781    May match empty string
2782  No options  No options
2783  No first char  No first char
2784  No need char  No need char
# Line 2956  No match Line 2878  No match
2878          End          End
2879  ------------------------------------------------------------------  ------------------------------------------------------------------
2880  Capturing subpattern count = 0  Capturing subpattern count = 0
2881    May match empty string
2882  No options  No options
2883  No first char  No first char
2884  No need char  No need char
# Line 2972  No options Line 2895  No options
2895  First char = 'x'  First char = 'x'
2896  No need char  No need char
2897    
2898  /x{1,3}+/DZ  /x{1,3}+/BZO
2899  ------------------------------------------------------------------  ------------------------------------------------------------------
2900          Bra          Bra
         Once  
2901          x          x
2902          x{0,2}          x{0,2}+
2903          Ket          Ket
2904            End
2905    ------------------------------------------------------------------
2906    
2907    /x{1,3}+/BZOi
2908    ------------------------------------------------------------------
2909            Bra
2910         /i x
2911         /i x{0,2}+
2912            Ket
2913            End
2914    ------------------------------------------------------------------
2915    
2916    /[^x]{1,3}+/BZO
2917    ------------------------------------------------------------------
2918            Bra
2919            [^x]
2920            [^x]{0,2}+
2921            Ket
2922            End
2923    ------------------------------------------------------------------
2924    
2925    /[^x]{1,3}+/BZOi
2926    ------------------------------------------------------------------
2927            Bra
2928         /i [^x]
2929         /i [^x]{0,2}+
2930          Ket          Ket
2931          End          End
2932  ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  
 No options  
 First char = 'x'  
 No need char  
2933    
2934  /(x)*+/DZ  /(x)*+/DZ
2935  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2998  No need char Line 2942  No need char
2942          End          End
2943  ------------------------------------------------------------------  ------------------------------------------------------------------
2944  Capturing subpattern count = 1  Capturing subpattern count = 1
2945    May match empty string
2946  No options  No options
2947  No first char  No first char
2948  No need char  No need char
2949    
2950  /^(\w++|\s++)*$/I  /^(\w++|\s++)*$/I
2951  Capturing subpattern count = 1  Capturing subpattern count = 1
2952    May match empty string
2953  Options: anchored  Options: anchored
2954  No first char  No first char
2955  No need char  No need char
# Line 3165  Need char = 'b' Line 3111  Need char = 'b'
3111          [bc]+          [bc]+
3112          Ket          Ket
3113          CBra 5          CBra 5
3114          \w*          \w*+
3115          Ket          Ket
3116          Ket          Ket
3117          Ket          Ket
# Line 3232  Failed: PCRE does not support \L, \l, \N Line 3178  Failed: PCRE does not support \L, \l, \N
3178  /\U/I  /\U/I
3179  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3180    
3181    /a{1,3}b/U
3182        ab
3183     0: ab
3184    
3185  /[/I  /[/I
3186  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3187    
# Line 3244  Failed: missing terminating ] for charac Line 3194  Failed: missing terminating ] for charac
3194  /[\s]/IDZ  /[\s]/IDZ
3195  ------------------------------------------------------------------  ------------------------------------------------------------------
3196          Bra          Bra
3197          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
3198          Ket          Ket
3199          End          End
3200  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3308  No match Line 3258  No match
3258          End          End
3259  ------------------------------------------------------------------  ------------------------------------------------------------------
3260  Capturing subpattern count = 0  Capturing subpattern count = 0
3261    Max lookbehind = 1
3262  No options  No options
3263  First char = '8'  First char = '8'
3264  Need char = 'X'  Need char = 'X'
# Line 3321  Need char = 'X' Line 3272  Need char = 'X'
3272          End          End
3273  ------------------------------------------------------------------  ------------------------------------------------------------------
3274  Capturing subpattern count = 0  Capturing subpattern count = 0
3275    Max lookbehind = 1
3276  No options  No options
3277  First char = '$'  First char = '$'
3278  Need char = 'X'  Need char = 'X'
# Line 3377  Need char = 'b' Line 3329  Need char = 'b'
3329    
3330  /(?=a).*/I  /(?=a).*/I
3331  Capturing subpattern count = 0  Capturing subpattern count = 0
3332    May match empty string
3333  No options  No options
3334  First char = 'a'  First char = 'a'
3335  No need char  No need char
# Line 3395  Need char = 'z' (caseless) Line 3348  Need char = 'z' (caseless)
3348    
3349  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3350  Capturing subpattern count = 0  Capturing subpattern count = 0
3351    May match empty string
3352  No options  No options
3353  First char = 'a'  First char = 'a'
3354  No need char  No need char
# Line 3461  Need char = 'a' Line 3415  Need char = 'a'
3415    
3416  /(a)*/I  /(a)*/I
3417  Capturing subpattern count = 1  Capturing subpattern count = 1
3418    May match empty string
3419  No options  No options
3420  No first char  No first char
3421  No need char  No need char
# Line 3483  No options Line 3438  No options
3438  No first char  No first char
3439  No need char  No need char
3440  Subject length lower bound = 1  Subject length lower bound = 1
3441  Starting byte set: a b  Starting chars: a b
3442    
3443  /[^a]/I  /[^a]/I
3444  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3503  No options Line 3458  No options
3458  No first char  No first char
3459  Need char = '6'  Need char = '6'
3460  Subject length lower bound = 4  Subject length lower bound = 4
3461  Starting byte set: 0 1 2 3 4 5 6 7 8 9  Starting chars: 0 1 2 3 4 5 6 7 8 9
3462    
3463  /a^b/I  /a^b/I
3464  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3537  Options: caseless Line 3492  Options: caseless
3492  No first char  No first char
3493  No need char  No need char
3494  Subject length lower bound = 1  Subject length lower bound = 1
3495  Starting byte set: A B a b  Starting chars: A B a b
3496    
3497  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3498  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3545  No options Line 3500  No options
3500  No first char  No first char
3501  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3502  Subject length lower bound = 3  Subject length lower bound = 3
3503  Starting byte set: a b  Starting chars: a b
3504    
3505  /abc(?C)def/I  /abc(?C)def/I
3506  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3586  No options Line 3541  No options
3541  No first char  No first char
3542  Need char = 'f'  Need char = 'f'
3543  Subject length lower bound = 7  Subject length lower bound = 7
3544  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
3545      1234abcdef      1234abcdef
3546  --->1234abcdef  --->1234abcdef
3547    1 ^              \d    1 ^              \d
# Line 3689  No match Line 3644  No match
3644    
3645  /(?C0)(abc(?C1))*/I  /(?C0)(abc(?C1))*/I
3646  Capturing subpattern count = 1  Capturing subpattern count = 1
3647    May match empty string
3648  No options  No options
3649  No first char  No first char
3650  No need char  No need char
# Line 3722  No need char Line 3678  No need char
3678    
3679  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3680  Capturing subpattern count = 1  Capturing subpattern count = 1
3681    May match empty string
3682  No options  No options
3683  No first char  No first char
3684  No need char  No need char
# Line 3836  Callout 2: last capture = -1 Line 3793  Callout 2: last capture = -1
3793    
3794  /(?<=(abc)(?C))xyz/I  /(?<=(abc)(?C))xyz/I
3795  Capturing subpattern count = 1  Capturing subpattern count = 1
3796    Max lookbehind = 3
3797  No options  No options
3798  First char = 'x'  First char = 'x'
3799  Need char = 'z'  Need char = 'z'
# Line 3857  Need char = 'b' Line 3815  Need char = 'b'
3815  --->abbbbbccc  --->abbbbbccc
3816    1 ^        ^    1 ^        ^
3817  Callout data = 1  Callout data = 1
   1 ^       ^  
 Callout data = 1  
   1 ^      ^  
 Callout data = 1  
   1 ^     ^  
 Callout data = 1  
   1 ^    ^  
 Callout data = 1  
   1 ^   ^  
 Callout data = 1  
   1 ^  ^  
 Callout data = 1  
   1 ^ ^  
 Callout data = 1  
3818  No match  No match
3819    
3820  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
# Line 3916  No options Line 3860  No options
3860  No first char  No first char
3861  No need char  No need char
3862  Subject length lower bound = 1  Subject length lower bound = 1
3863  Starting byte set: a b  Starting chars: a b
3864    
3865  /(?R)/I  /(?R)/I
3866  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
# Line 3967  Failed: recursive call could loop indefi Line 3911  Failed: recursive call could loop indefi
3911    
3912  /^([^()]|\((?1)*\))*$/I  /^([^()]|\((?1)*\))*$/I
3913  Capturing subpattern count = 1  Capturing subpattern count = 1
3914    May match empty string
3915  Options: anchored  Options: anchored
3916  No first char  No first char
3917  No need char  No need char
# Line 4246  Named capturing subpatterns: Line 4191  Named capturing subpatterns:
4191    one     1    one     1
4192    three   3    three   3
4193    two     2    two     2
4194    May match empty string
4195  Options: anchored caseless  Options: anchored caseless
4196  No first char  No first char
4197  No need char  No need char
# Line 4345  Need char = 'z' Line 4291  Need char = 'z'
4291    
4292  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4293  Capturing subpattern count = 31  Capturing subpattern count = 31
4294    May match empty string
4295  Options: anchored dotall  Options: anchored dotall
4296  No first char  No first char
4297  No need char  No need char
# Line 4352  No need char Line 4299  No need char
4299  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4300  Capturing subpattern count = 31  Capturing subpattern count = 31
4301  Max back reference = 31  Max back reference = 31
4302    May match empty string
4303  Options: dotall  Options: dotall
4304  No first char  No first char
4305  No need char  No need char
# Line 4359  No need char Line 4307  No need char
4307  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4308  Capturing subpattern count = 32  Capturing subpattern count = 32
4309  Max back reference = 32  Max back reference = 32
4310    May match empty string
4311  Options: dotall  Options: dotall
4312  No first char  No first char
4313  No need char  No need char
# Line 4430  No first char Line 4379  No first char
4379  Need char = 'z'  Need char = 'z'
4380    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4381  Minimum match() limit = 8  Minimum match() limit = 8
4382  Minimum match() recursion limit = 7  Minimum match() recursion limit = 6
4383   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4384   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4385    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4386  Minimum match() limit = 32768  Minimum match() limit = 32768
4387  Minimum match() recursion limit = 43  Minimum match() recursion limit = 29
4388  No match  No match
4389    
4390  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4510  Capturing subpattern count = 2 Line 4459  Capturing subpattern count = 2
4459  Named capturing subpatterns:  Named capturing subpatterns:
4460    Tes    1    Tes    1
4461    Test   2    Test   2
4462    May match empty string
4463  No options  No options
4464  No first char  No first char
4465  No need char  No need char
# Line 4528  Capturing subpattern count = 2 Line 4478  Capturing subpattern count = 2
4478  Named capturing subpatterns:  Named capturing subpatterns:
4479    Tes    2    Tes    2
4480    Test   1    Test   1
4481    May match empty string
4482  No options  No options
4483  No first char  No first char
4484  No need char  No need char
# Line 4605  Need char = ']' Line 4556  Need char = ']'
4556          End          End
4557  ------------------------------------------------------------------  ------------------------------------------------------------------
4558  Capturing subpattern count = 2  Capturing subpattern count = 2
4559    May match empty string
4560  No options  No options
4561  No first char  No first char
4562  No need char  No need char
# Line 4625  No need char Line 4577  No need char
4577          End          End
4578  ------------------------------------------------------------------  ------------------------------------------------------------------
4579  Capturing subpattern count = 2  Capturing subpattern count = 2
4580    May match empty string
4581  No options  No options
4582  No first char  No first char
4583  No need char  No need char
# Line 4656  No need char Line 4609  No need char
4609          End          End
4610  ------------------------------------------------------------------  ------------------------------------------------------------------
4611  Capturing subpattern count = 2  Capturing subpattern count = 2
4612    May match empty string
4613  No options  No options
4614  No first char  No first char
4615  No need char  No need char
# Line 4663  No need char Line 4617  No need char
4617  /[ab]{1}+/DZ  /[ab]{1}+/DZ
4618  ------------------------------------------------------------------  ------------------------------------------------------------------
4619          Bra          Bra
4620          Once          [ab]{1,1}+
         [ab]{1,1}  
         Ket  
4621          Ket          Ket
4622          End          End
4623  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4689  Options: caseless Line 4641  Options: caseless
4641  No first char  No first char
4642  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4643  Subject length lower bound = 8  Subject length lower bound = 8
4644  No set of starting bytes  No starting char list
4645       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4646   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4647   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4708  No options Line 4660  No options
4660  No first char  No first char
4661  Need char = 'b'  Need char = 'b'
4662  Subject length lower bound = 1  Subject length lower bound = 1
4663  No set of starting bytes  No starting char list
4664    
4665  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4666  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4729  No options Line 4681  No options
4681  No first char  No first char
4682  Need char = 'c'  Need char = 'c'
4683  Subject length lower bound = 1  Subject length lower bound = 1
4684  No set of starting bytes  No starting char list
4685    
4686  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4687  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4802  Options: Line 4754  Options:
4754  No first char  No first char
4755  Need char = 'b'  Need char = 'b'
4756  Subject length lower bound = 1  Subject length lower bound = 1
4757  Starting byte set: a b  Starting chars: a b
4758    ab    ab
4759  --->ab  --->ab
4760   +0 ^      a*   +0 ^      a*
# Line 4945  Options: Line 4897  Options:
4897  No first char  No first char
4898  Need char = 'x'  Need char = 'x'
4899  Subject length lower bound = 4  Subject length lower bound = 4
4900  Starting byte set: a d  Starting chars: a d
4901    abcx    abcx
4902  --->abcx  --->abcx
4903   +0 ^        (abc|def)   +0 ^        (abc|def)
# Line 5179  Options: Line 5131  Options:
5131  No first char  No first char
5132  No need char  No need char
5133  Subject length lower bound = 2  Subject length lower bound = 2
5134  Starting byte set: a b x  Starting chars: a b x
5135      Note: that { does NOT introduce a quantifier      Note: that { does NOT introduce a quantifier
5136  --->Note: that { does NOT introduce a quantifier  --->Note: that { does NOT introduce a quantifier
5137   +0         ^                                        ([ab]{,4}c|xy)   +0         ^                                        ([ab]{,4}c|xy)
# Line 5377  No match Line 5329  No match
5329          Callout 255 0 21          Callout 255 0 21
5330          CBra 1          CBra 1
5331          Callout 255 1 9          Callout 255 1 9
5332          [ab]{1,4}          [ab]{1,4}+
5333          Callout 255 10 1          Callout 255 10 1
5334          c          c
5335          Callout 255 11 0          Callout 255 11 0
# Line 5390  No match Line 5342  No match
5342          Ket          Ket
5343          CBra 1          CBra 1
5344          Callout 255 1 9          Callout 255 1 9
5345          [ab]{1,4}          [ab]{1,4}+
5346          Callout 255 10 1          Callout 255 10 1
5347          c          c
5348          Callout 255 11 0          Callout 255 11 0
# Line 5403  No match Line 5355  No match
5355          Ket          Ket
5356          CBra 1          CBra 1
5357          Callout 255 1 9          Callout 255 1 9
5358          [ab]{1,4}          [ab]{1,4}+
5359          Callout 255 10 1          Callout 255 10 1
5360          c          c
5361          Callout 255 11 0          Callout 255 11 0
# Line 5416  No match Line 5368  No match
5368          Ket          Ket
5369          CBra 1          CBra 1
5370          Callout 255 1 9          Callout 255 1 9
5371          [ab]{1,4}          [ab]{1,4}+
5372          Callout 255 10 1          Callout 255 10 1
5373          c          c
5374          Callout 255 11 0          Callout 255 11 0
# Line 5430  No match Line 5382  No match
5382          Braminzero          Braminzero
5383          CBra 1          CBra 1
5384          Callout 255 1 9          Callout 255 1 9
5385          [ab]{1,4}          [ab]{1,4}+
5386          Callout 255 10 1          Callout 255 10 1
5387          c          c
5388          Callout 255 11 0          Callout 255 11 0
# Line 5483  Need char = '3' Line 5435  Need char = '3'
5435    
5436  /\b.*/I  /\b.*/I
5437  Capturing subpattern count = 0  Capturing subpattern count = 0
5438    Max lookbehind = 1
5439    May match empty string
5440  No options  No options
5441  No first char  No first char
5442  No need char  No need char
# Line 5491  No need char Line 5445  No need char
5445    
5446  /\b.*/Is  /\b.*/Is
5447  Capturing subpattern count = 0  Capturing subpattern count = 0
5448    Max lookbehind = 1
5449    May match empty string
5450  Options: dotall  Options: dotall
5451  No first char  No first char
5452  No need char  No need char
# Line 5499  No need char Line 5455  No need char
5455    
5456  /(?!.bcd).*/I  /(?!.bcd).*/I
5457  Capturing subpattern count = 0  Capturing subpattern count = 0
5458    May match empty string
5459  No options  No options
5460  No first char  No first char
5461  No need char  No need char
# Line 5654  No options Line 5611  No options
5611  First char = 'a'  First char = 'a'
5612  Need char = 'c'  Need char = 'c'
5613  Subject length lower bound = 3  Subject length lower bound = 3
5614  No set of starting bytes  No starting char list
5615  Compiled pattern written to testsavedregex  Compiled pattern written to testsavedregex
5616  Study data written to testsavedregex  Study data written to testsavedregex
5617  <testsavedregex  <testsavedregex
# Line 5689  No options Line 5646  No options
5646  First char = 'a'  First char = 'a'
5647  Need char = 'c'  Need char = 'c'
5648  Subject length lower bound = 3  Subject length lower bound = 3
5649  No set of starting bytes  No starting char list
5650  Compiled pattern written to testsavedregex  Compiled pattern written to testsavedregex
5651  Study data written to testsavedregex  Study data written to testsavedregex
5652  <testsavedregex  <testsavedregex
# Line 5724  No options Line 5681  No options
5681  No first char  No first char
5682  No need char  No need char
5683  Subject length lower bound = 1  Subject length lower bound = 1
5684  Starting byte set: a b  Starting chars: a b
5685  Compiled pattern written to testsavedregex  Compiled pattern written to testsavedregex
5686  Study data written to testsavedregex  Study data written to testsavedregex
5687  <testsavedregex  <testsavedregex
# Line 5763  No options Line 5720  No options
5720  No first char  No first char
5721  No need char  No need char
5722  Subject length lower bound = 1  Subject length lower bound = 1
5723  Starting byte set: a b  Starting chars: a b
5724  Compiled pattern written to testsavedregex  Compiled pattern written to testsavedregex
5725  Study data written to testsavedregex  Study data written to testsavedregex
5726  <testsavedregex  <testsavedregex
# Line 5802  Max back reference = 1 Line 5759  Max back reference = 1
5759  Options: multiline dotall  Options: multiline dotall
5760  First char = '<'  First char = '<'
5761  Need char = '>'  Need char = '>'
5762      <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>      \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
5763   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
5764   1: seite   1: seite
5765   2: \x0a   2: \x0a
# Line 5851  No match Line 5808  No match
5808      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5809  No match  No match
5810    
 /ab.cd/P  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ** Failers  
 No match: POSIX code 17: match failed  
     ab\ncd  
 No match: POSIX code 17: match failed  
   
 /ab.cd/Ps  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ab\ncd  
  0: ab\x0acd  
   
5811  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5812  Capturing subpattern count = 0  Capturing subpattern count = 0
5813  No options  No options
# Line 5882  No match Line 5821  No match
5821  No match  No match
5822    
5823  /a{11111111111111111111}/I  /a{11111111111111111111}/I
5824  Failed: number too big in {} quantifier at offset 22  Failed: number too big in {} quantifier at offset 8
5825    
5826  /(){64294967295}/I  /(){64294967295}/I
5827  Failed: number too big in {} quantifier at offset 14  Failed: number too big in {} quantifier at offset 9
5828    
5829  /(){2,4294967295}/I  /(){2,4294967295}/I
5830  Failed: number too big in {} quantifier at offset 15  Failed: number too big in {} quantifier at offset 11
5831    
5832  "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I  "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I
5833  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6105  Matched, but too many substrings Line 6044  Matched, but too many substrings
6044    
6045  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
6046  Capturing subpattern count = 0  Capturing subpattern count = 0
6047    May match empty string
6048  No options  No options
6049  No first char  No first char
6050  No need char  No need char
# Line 6117  No need char Line 6057  No need char
6057    
6058  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6059  Capturing subpattern count = 0  Capturing subpattern count = 0
6060    May match empty string
6061  No options  No options
6062  No first char  No first char
6063  No need char  No need char
# Line 6127  No need char Line 6068  No need char
6068    
6069  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
6070  Capturing subpattern count = 0  Capturing subpattern count = 0
6071    May match empty string
6072  No options  No options
6073  No first char  No first char
6074  No need char  No need char
# Line 6137  No need char Line 6079  No need char
6079    
6080  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
6081  Capturing subpattern count = 0  Capturing subpattern count = 0
6082    May match empty string
6083  No options  No options
6084  No first char  No first char
6085  No need char  No need char
# Line 6149  No need char Line 6092  No need char
6092    
6093  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
6094  Capturing subpattern count = 0  Capturing subpattern count = 0
6095    May match empty string
6096  No options  No options
6097  No first char  No first char
6098  No need char  No need char
# Line 6161  No need char Line 6105  No need char
6105      ((this))      ((this))
6106   0: ((this))   0: ((this))
6107    
 /a(b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /a(?P<name>b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /\x{100}/I  
 Failed: character value in \x{...} sequence is too large at offset 6  
   
6108  /\x{0000ff}/I  /\x{0000ff}/I
6109  Capturing subpattern count = 0  Capturing subpattern count = 0
6110  No options  No options
6111  First char = 255  First char = \xff
6112  No need char  No need char
6113    
6114  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 6209  no parentheses with name "Z" Line 6142  no parentheses with name "Z"
6142   2: a1   2: a1
6143  copy substring Z failed -7  copy substring Z failed -7
6144    C a1 (2) A    C a1 (2) A
6145    
6146    /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
6147    Capturing subpattern count = 3
6148    Named capturing subpatterns:
6149      a   1
6150      a   3
6151      b   2
6152    May match empty string
6153    Options: dupnames
6154    No first char
6155    No need char
6156    
6157  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
6158  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 6285  no parentheses with name "Z" Line 6229  no parentheses with name "Z"
6229   0: a1   0: a1
6230   1: a1   1: a1
6231   2: a1   2: a1
6232  copy substring Z failed -7  get substring Z failed -7
6233    G a1 (2) A    G a1 (2) A
6234    
6235  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6317  No need char Line 6261  No need char
6261    G a (1) A    G a (1) A
6262      cd\GA      cd\GA
6263   0: cd   0: cd
6264  copy substring A failed -7  get substring A failed -7
6265    
6266  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6267  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6419  Need char = 'X' Line 6363  Need char = 'X'
6363   1: X   1: X
6364    
6365  /(?:(?(2y)a|b)(X))+/I  /(?:(?(2y)a|b)(X))+/I
6366  Failed: reference to non-existent subpattern at offset 9  Failed: malformed number or name after (?( at offset 7
6367    
6368  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6369  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 6485  No need char Line 6429  No need char
6429   9:   9:
6430  10: Y  10: Y
6431    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6432  /\s*,\s*/IS  /\s*,\s*/IS
6433  Capturing subpattern count = 0  Capturing subpattern count = 0
6434  No options  No options
6435  No first char  No first char
6436  Need char = ','  Need char = ','
6437  Subject length lower bound = 1  Subject length lower bound = 1
6438  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 ,
6439      \x0b,\x0b      \x0b,\x0b
6440   0: ,   0: \x0b,\x0b
6441      \x0c,\x0d      \x0c,\x0d
6442   0: \x0c,\x0d   0: \x0c,\x0d
6443    
# Line 6605  No match Line 6546  No match
6546  No match  No match
6547    
6548  /^abc/Im<bad>  /^abc/Im<bad>
6549  Unknown newline type at: <bad>  Unknown modifier at: <bad>
6550    
6551    
6552  /abc/I  /abc/I
# Line 6614  No options Line 6555  No options
6555  First char = 'a'  First char = 'a'
6556  Need char = 'c'  Need char = 'c'
6557      xyz\rabc\<bad>      xyz\rabc\<bad>
6558  Unknown newline type at: <bad>  Unknown escape sequence at: <bad>
6559      abc      abc
6560   0: abc   0: abc
6561    
6562  /.*/I<lf>  /.*/I<lf>
6563  Capturing subpattern count = 0  Capturing subpattern count = 0
6564    May match empty string
6565  Options:  Options:
6566  Forced newline sequence: LF  Forced newline sequence: LF
6567  First char at start or follows newline  First char at start or follows newline
# Line 6661  Need char = 'f' Line 6603  Need char = 'f'
6603    
6604  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6605  Capturing subpattern count = 1  Capturing subpattern count = 1
6606    May match empty string
6607  No options  No options
6608  No first char  No first char
6609  No need char  No need char
6610     /* this is a C style comment */\M     /* this is a C style comment */\M
6611  Minimum match() limit = 120  Minimum match() limit = 120
6612  Minimum match() recursion limit = 35  Minimum match() recursion limit = 6
6613   0: /* this is a C style comment */   0: /* this is a C style comment */
6614   1: /* this is a C style comment */   1: /* this is a C style comment */
6615    
# Line 6799  No options Line 6742  No options
6742  No first char  No first char
6743  No need char  No need char
6744  Subject length lower bound = 1  Subject length lower bound = 1
6745  Starting byte set: C a b c d  Starting chars: C a b c d
6746    
6747  /()[ab]xyz/IS  /()[ab]xyz/IS
6748  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6807  No options Line 6750  No options
6750  No first char  No first char
6751  Need char = 'z'  Need char = 'z'
6752  Subject length lower bound = 4  Subject length lower bound = 4
6753  Starting byte set: a b  Starting chars: a b
6754    
6755  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
6756  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6815  No options Line 6758  No options
6758  No first char  No first char
6759  Need char = 'z'  Need char = 'z'
6760  Subject length lower bound = 4  Subject length lower bound = 4
6761  Starting byte set: a b  Starting chars: a b
6762    
6763  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
6764  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6823  No options Line 6766  No options
6766  No first char  No first char
6767  Need char = 'z'  Need char = 'z'
6768  Subject length lower bound = 4  Subject length lower bound = 4
6769  Starting byte set: a b c  Starting chars: a b c
6770    
6771  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
6772  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6831  No options Line 6774  No options
6774  No first char  No first char
6775  Need char = 'z'  Need char = 'z'
6776  Subject length lower bound = 4  Subject length lower bound = 4
6777  Starting byte set: a b c  Starting chars: a b c
6778    
6779  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
6780  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6839  No options Line 6782  No options
6782  No first char  No first char
6783  Need char = 'z'  Need char = 'z'
6784  Subject length lower bound = 4  Subject length lower bound = 4
6785  Starting byte set: a b c d  Starting chars: a b c d
6786    
6787  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
6788  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6847  No options Line 6790  No options
6790  No first char  No first char
6791  Need char = 'z'  Need char = 'z'
6792  Subject length lower bound = 4  Subject length lower bound = 4
6793  Starting byte set: a b c d  Starting chars: a b c d
6794    
6795  /^a*b\d/DZ  /^a*b\d/DZ
6796  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 6940  No options Line 6883  No options
6883  No first char  No first char
6884  No need char  No need char
6885  Subject length lower bound = 1  Subject length lower bound = 1
6886  Starting byte set: a b c d  Starting chars: a b c d
6887    
6888  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6889  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6948  No options Line 6891  No options
6891  No first char  No first char
6892  No need char  No need char
6893  Subject length lower bound = 1  Subject length lower bound = 1
6894  Starting byte set: a b c d  Starting chars: a b c d
6895    
6896  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6897  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6956  No options Line 6899  No options
6899  No first char  No first char
6900  No need char  No need char
6901  Subject length lower bound = 1  Subject length lower bound = 1
6902  Starting byte set: a b c d  Starting chars: a b c d
6903    
6904  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6905  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6964  No options Line 6907  No options
6907  No first char  No first char
6908  No need char  No need char
6909  Subject length lower bound = 2  Subject length lower bound = 2
6910  Starting byte set: a b  Starting chars: a b
6911    
6912  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6913   ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((   ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7548  Matched, but too many substrings Line 7491  Matched, but too many substrings
7491  /[^a]+a/BZi  /[^a]+a/BZi
7492  ------------------------------------------------------------------  ------------------------------------------------------------------
7493          Bra          Bra
7494       /i [^A]++       /i [^a]++
7495       /i a       /i a
7496          Ket          Ket
7497          End          End
# Line 7557  Matched, but too many substrings Line 7500  Matched, but too many substrings
7500  /[^a]+A/BZi  /[^a]+A/BZi
7501  ------------------------------------------------------------------  ------------------------------------------------------------------
7502          Bra          Bra
7503       /i [^A]++       /i [^a]++
7504       /i A       /i A
7505          Ket          Ket
7506          End          End
# Line 7584  Matched, but too many substrings Line 7527  Matched, but too many substrings
7527  /a*[^a]/BZ  /a*[^a]/BZ
7528  ------------------------------------------------------------------  ------------------------------------------------------------------
7529          Bra          Bra
7530          a*          a*+
7531          [^a]          [^a]
7532          Ket          Ket
7533          End          End
# Line 7726  No match Line 7669  No match
7669  ------------------------------------------------------------------  ------------------------------------------------------------------
7670          Bra          Bra
7671          ^          ^
7672          [a-z]+          [a-z]++
7673          Ket          Ket
7674          End          End
7675  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7767  No match Line 7710  No match
7710          ^          ^
7711          CBra 1          CBra 1
7712          Cond          Cond
7713        2 Cond nref        2 Cond ref
7714          y          y
7715          Ket          Ket
7716          [()]          [()]
# Line 7827  Named capturing subpatterns: Line 7770  Named capturing subpatterns:
7770    one     1    one     1
7771    three   3    three   3
7772    two     2    two     2
7773    May match empty string
7774  Options: anchored caseless  Options: anchored caseless
7775  No first char  No first char
7776  No need char  No need char
# Line 7926  Failed: reference to non-existent subpat Line 7870  Failed: reference to non-existent subpat
7870   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7871   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7872    
7873  /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  /(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
7874  Failed: reference to non-existent subpattern at offset 29  Failed: reference to non-existent subpattern at offset 29
7875    
 /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  
     abcabc1Xabc2XabcXabcabc  
  0: abcabc1Xabc2XabcX  
  1: abcabc1Xabc2XabcX  
  2: abcabc1Xabc2XabcX  
   
7876  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7877  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7878    
# Line 7944  Options: extended Line 7882  Options: extended
7882  First char = 'x'  First char = 'x'
7883  Need char = 'z'  Need char = 'z'
7884    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7885  /(a|)*\d/  /(a|)*\d/
7886    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7887  No match  No match
# Line 8161  Failed: a numbered reference must not be Line 8096  Failed: a numbered reference must not be
8096  /^(a)\g{3/  /^(a)\g{3/
8097  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8098    
8099  /^(a)\g{4a}/  /^(a)\g{aa}/
8100  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
8101    
8102  /^a.b/<lf>  /^a.b/<lf>
# Line 8506  Failed: syntax error in subpattern name Line 8441  Failed: syntax error in subpattern name
8441   3: <unset>   3: <unset>
8442   4: x   4: x
8443    
 /[\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09<  
  0: \x09  
   
 /[\h]+/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]+  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09\x20\xa0<  
  0: \x09 \xa0  
   
 /[\v]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x0a-\x0d\x85]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\H]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[^\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x09\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\x0a\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x0a\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
8444  /\H++X/BZ  /\H++X/BZ
8445  ------------------------------------------------------------------  ------------------------------------------------------------------
8446          Bra          Bra
# Line 8726  No match Line 8601  No match
8601          \d          \d
8602          \v++          \v++
8603          \w          \w
8604          \v+          \v++
8605          \S          \S
8606          \v++          \v++
8607          \V          \V
# Line 8757  No match Line 8632  No match
8632  ------------------------------------------------------------------  ------------------------------------------------------------------
8633    
8634  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8635  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)  \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8636   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8637    
8638  /[\E]AAA/  /[\E]AAA/
# Line 8824  No match Line 8699  No match
8699   +6 ^      ^    (*FAIL)   +6 ^      ^    (*FAIL)
8700   +6 ^     ^     (*FAIL)   +6 ^     ^     (*FAIL)
8701   +6 ^    ^      (*FAIL)   +6 ^    ^      (*FAIL)
  +4 ^  ^        c+  
  +2 ^ ^         b?  
  +4 ^ ^         c+  
  +2 ^^          b?  
  +4 ^^          c+  
8702   +0  ^          a+   +0  ^          a+
8703   +2  ^ ^        b?   +2  ^ ^        b?
8704   +4  ^  ^       c+   +4  ^  ^       c+
8705   +6  ^     ^    (*FAIL)   +6  ^     ^    (*FAIL)
8706   +6  ^    ^     (*FAIL)   +6  ^    ^     (*FAIL)
8707   +6  ^   ^      (*FAIL)   +6  ^   ^      (*FAIL)
  +4  ^ ^        c+  
  +2  ^^         b?  
  +4  ^^         c+  
8708   +0   ^         a+   +0   ^         a+
8709   +2   ^^        b?   +2   ^^        b?
8710   +4   ^ ^       c+   +4   ^ ^       c+
8711   +6   ^    ^    (*FAIL)   +6   ^    ^    (*FAIL)
8712   +6   ^   ^     (*FAIL)   +6   ^   ^     (*FAIL)
8713   +6   ^  ^      (*FAIL)   +6   ^  ^      (*FAIL)
  +4   ^^        c+  
8714  No match  No match
8715    
8716  /a+b?(*PRUNE)c+(*FAIL)/C  /a+b?(*PRUNE)c+(*FAIL)/C
# Line 8939  Failed: number is too big at offset 19 Line 8805  Failed: number is too big at offset 19
8805  /\g6666666666/  /\g6666666666/
8806  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8807    
8808  /[\g6666666666]/  /[\g6666666666]/BZ
8809  Failed: number is too big at offset 12  ------------------------------------------------------------------
8810            Bra
8811            [6g]
8812            Ket
8813            End
8814    ------------------------------------------------------------------
8815    
8816  /(?1)\c[/  /(?1)\c[/
8817  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8963  No match Line 8834  No match
8834   1: \x0a   1: \x0a
8835    
8836  /a(*CR)b/  /a(*CR)b/
8837  Failed: (*VERB) not recognized at offset 5  Failed: (*VERB) not recognized or malformed at offset 5
8838    
8839  /(*CR)a.b/  /(*CR)a.b/
8840      a\nb      a\nb
# Line 9246  Failed: subpattern name expected at offs Line 9117  Failed: subpattern name expected at offs
9117  /\k{}/  /\k{}/
9118  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9119    
9120    /\k/
9121    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9122    
9123    /\kabc/
9124    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9125    
9126  /(?P=)/  /(?P=)/
9127  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9128    
# Line 9402  No match Line 9279  No match
9279      ab      ab
9280  No match  No match
9281    
9282  /a(?!)+b/  /a(?!)b/BZ
9283  Failed: nothing to repeat at offset 5  ------------------------------------------------------------------
9284            Bra
9285            a
9286            *FAIL
9287            b
9288            Ket
9289            End
9290    ------------------------------------------------------------------
9291    
9292    /(?!)?a/BZ
9293    ------------------------------------------------------------------
9294            Bra
9295            Brazero
9296            Assert not
9297            Ket
9298            a
9299            Ket
9300            End
9301    ------------------------------------------------------------------
9302        ab
9303     0: a
9304    
9305  /a(*FAIL)+b/  /a(*FAIL)+b/
9306  Failed: nothing to repeat at offset 8  Failed: nothing to repeat at offset 8
# Line 9414  No options Line 9311  No options
9311  No first char  No first char
9312  No need char  No need char
9313  Subject length lower bound = 1  Subject length lower bound = 1
9314  Starting byte set: x y z  Starting chars: x y z
9315    
9316  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
9317  Capturing subpattern count = 0  Capturing subpattern count = 0
9318    May match empty string
9319  Options:  Options:
9320  No first char  No first char
9321  No need char  No need char
# Line 9430  No need char Line 9328  No need char
9328   +7 ^ ^     b   +7 ^ ^     b
9329   +7 ^^      b   +7 ^^      b
9330   +7 ^       b   +7 ^       b
9331    +11 ^       ^
9332  +12 ^       )  +12 ^       )
9333  +13 ^  +13 ^
9334   0:   0:
# Line 9467  No options Line 9366  No options
9366  First char at start or follows newline  First char at start or follows newline
9367  No need char  No need char
9368    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9369  /xyz/C  /xyz/C
9370    xyz    xyz
9371  --->xyz  --->xyz
# Line 9529  No match Line 9420  No match
9420  No match  No match
9421    
9422  /(*NO_START_OPT)xyz/C  /(*NO_START_OPT)xyz/C
9423    abcxyz    abcxyz
9424  --->abcxyz  --->abcxyz
9425  +15 ^          x  +15 ^          x
9426  +15  ^         x  +15  ^         x
# Line 9539  No match Line 9430  No match
9430  +17    ^ ^     z  +17    ^ ^     z
9431  +18    ^  ^  +18    ^  ^
9432   0: xyz   0: xyz
9433    
9434    /(*NO_AUTO_POSSESS)a+b/BZ
9435    ------------------------------------------------------------------
9436            Bra
9437            a+
9438            b
9439            Ket
9440            End
9441    ------------------------------------------------------------------
9442    
9443  /xyz/CY  /xyz/CY
9444    abcxyz    abcxyz
# Line 9568  No match Line 9468  No match
9468   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9469   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9470   +8 ^ ^      [a]   +8 ^ ^      [a]
9471    +17 ^ ^      |
9472  +21 ^ ^      "  +21 ^ ^      "
9473  +18 ^ ^      b  +18 ^ ^      b
9474  +19 ^  ^     )  +19 ^  ^     )
9475   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9476   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9477   +8 ^  ^     [a]   +8 ^  ^     [a]
9478    +17 ^  ^     |
9479  +21 ^  ^     "  +21 ^  ^     "
9480  +22 ^   ^    $  +22 ^   ^    $
9481  +23 ^   ^  +23 ^   ^
# Line 9869  Partial match: the cat Line 9771  Partial match: the cat
9771     abc\P\P     abc\P\P
9772   0: abc   0: abc
9773    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9774  /abc\K123/  /abc\K123/
9775      xyzabc123pqr      xyzabc123pqr
9776   0: 123   0: 123
# Line 9889  Partial match: abc12 Line 9783  Partial match: abc12
9783      xyzabc123pqr      xyzabc123pqr
9784   0: 123   0: 123
9785      xyzabc12\P      xyzabc12\P
9786  Partial match: abc12  Partial match at offset 6: abc12
9787      xyzabc12\P\P      xyzabc12\P\P
9788  Partial match: abc12  Partial match at offset 6: abc12
9789    
9790  /\babc\b/  /\babc\b/
9791      +++abc+++      +++abc+++
9792   0: abc   0: abc
9793      +++ab\P      +++ab\P
9794  Partial match: +ab  Partial match at offset 3: +ab
9795      +++ab\P\P      +++ab\P\P
9796  Partial match: +ab  Partial match at offset 3: +ab
9797    
9798  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9799  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10206  No options Line 10100  No options
10100  No first char  No first char
10101  No need char  No need char
10102  Subject length lower bound = 2  Subject length lower bound = 2
10103  Starting byte set: a b  Starting chars: a b
10104    
10105  /(a|bc)\1{2,3}/SI  /(a|bc)\1{2,3}/SI
10106  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10215  No options Line 10109  No options
10109  No first char  No first char
10110  No need char  No need char
10111  Subject length lower bound = 3  Subject length lower bound = 3
10112  Starting byte set: a b  Starting chars: a b
10113    
10114  /(a|bc)(?1)/SI  /(a|bc)(?1)/SI
10115  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10223  No options Line 10117  No options
10117  No first char  No first char
10118  No need char  No need char
10119  Subject length lower bound = 2  Subject length lower bound = 2
10120  Starting byte set: a b  Starting chars: a b
10121    
10122  /(a|b\1)(a|b\1)/SI  /(a|b\1)(a|b\1)/SI
10123  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 10232  No options Line 10126  No options
10126  No first char  No first char
10127  No need char  No need char
10128  Subject length lower bound = 2  Subject length lower bound = 2
10129  Starting byte set: a b  Starting chars: a b
10130    
10131  /(a|b\1){2}/SI  /(a|b\1){2}/SI
10132  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10241  No options Line 10135  No options
10135  No first char  No first char
10136  No need char  No need char
10137  Subject length lower bound = 2  Subject length lower bound = 2
10138  Starting byte set: a b  Starting chars: a b
10139    
10140  /(a|bbbb\1)(a|bbbb\1)/SI  /(a|bbbb\1)(a|bbbb\1)/SI
10141  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 10250  No options Line 10144  No options
10144  No first char  No first char
10145  No need char  No need char
10146  Subject length lower bound = 2  Subject length lower bound = 2
10147  Starting byte set: a b  Starting chars: a b
10148    
10149  /(a|bbbb\1){2}/SI  /(a|bbbb\1){2}/SI
10150  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10259  No options Line 10153  No options
10153  No first char  No first char
10154  No need char  No need char
10155  Subject length lower bound = 2  Subject length lower bound = 2
10156  Starting byte set: a b  Starting chars: a b
10157    
10158  /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI  /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
10159  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10267  Options: anchored Line 10161  Options: anchored
10161  No first char  No first char
10162  Need char = ':'  Need char = ':'
10163  Subject length lower bound = 22  Subject length lower bound = 22
10164  No set of starting bytes  No starting char list
   
 /  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                          # optional leading comment  
 (?:    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 # address  
 |                     #  or  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )             # one word, optionally followed by....  
 (?:  
 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...  
 \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)       |  # comments, or...  
   
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 # quoted strings  
 )*  
 <  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                     # leading <  
 (?:  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
   
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  ,  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 )* # further okay, if led by comma  
 :                                # closing colon  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  )? #       optional route  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 #       address spec  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  > #                  trailing >  
 # name and address  
 )  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                       # optional trailing comment  
 /xSI  
 Capturing subpattern count = 0  
 Contains explicit CR or LF match  
 Options: extended  
 No first char  
 No need char  
 Subject length lower bound = 3  
 Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8  
   9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e  
   f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f  
10165    
10166  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10167  Capturing subpattern count = 11  Capturing subpattern count = 11
# Line 10479  Options: caseless dotall Line 10169  Options: caseless dotall
10169  First char = '<'  First char = '<'
10170  Need char = '>'  Need char = '>'
10171  Subject length lower bound = 47  Subject length lower bound = 47
10172  No set of starting bytes  No starting char list
10173    
10174  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10175  Capturing subpattern count = 0  Capturing subpattern count = 0
10176  No options  No options
10177  First char at start or follows newline  No first char
10178  Need char = 'o'  Need char = 'o'
10179  Subject length lower bound = 4  Subject length lower bound = 4
10180  No set of starting bytes  No starting char list
10181    
10182  /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI  /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10183  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 10495  Options: extended Line 10185  Options: extended
10185  No first char  No first char
10186  Need char = '-'  Need char = '-'
10187  Subject length lower bound = 8  Subject length lower bound = 8
10188  No set of starting bytes  No starting char list
10189    
10190  /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI  /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10191  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10503  Options: caseless Line 10193  Options: caseless
10193  No first char  No first char
10194  No need char  No need char
10195  Subject length lower bound = 1  Subject length lower bound = 1
10196  Starting byte set: A B C a b c  Starting chars: A B C a b c
10197    
10198  /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI  /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10199  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 10511  No options Line 10201  No options
10201  No first char  No first char
10202  Need char = 'b'  Need char = 'b'
10203  Subject length lower bound = 41  Subject length lower bound = 41
10204  Starting byte set: c d  Starting chars: c d
10205    
10206  /<a[\s]+href[\s]*=[\s]*          # find <a href=  /<a[\s]+href[\s]*=[\s]*          # find <a href=
10207   ([\"\'])?                       # find single or double quote   ([\"\'])?                       # find single or double quote
# Line 10524  Options: caseless extended dotall Line 10214  Options: caseless extended dotall
10214  First char = '<'  First char = '<'
10215  Need char = '='  Need char = '='
10216  Subject length lower bound = 9  Subject length lower bound = 9
10217  No set of starting bytes  No starting char list
10218    
10219  /^(?!:)                       # colon disallowed at start  /^(?!:)                       # colon disallowed at start
10220    (?:                         # start of item    (?:                         # start of item
# Line 10540  Options: anchored caseless extended Line 10230  Options: anchored caseless extended
10230  No first char  No first char
10231  Need char = ':'  Need char = ':'
10232  Subject length lower bound = 2  Subject length lower bound = 2
10233  No set of starting bytes  No starting char list
10234    
10235  /(?|(?<a>A)|(?<a>B))/I  /(?|(?<a>A)|(?<a>B))/I
10236  Capturing subpattern count = 1  Capturing subpattern count = 1
10237  Named capturing subpatterns:  Named capturing subpatterns:
10238    a   1    a   1
   a   1  
10239  No options  No options
10240  No first char  No first char
10241  No need char  No need char
# Line 10619  No match Line 10308  No match
10308          Ket          Ket
10309          Ket          Ket
10310          Cond          Cond
10311        4 Cond nref          Cond ref <D>2
10312          X          X
10313          Alt          Alt
10314          Y          Y
# Line 10665  No match Line 10354  No match
10354          CBra 4          CBra 4
10355          d          d
10356          Cond          Cond
10357          Cond nrecurse 1          Cond recurse <A>2
10358          $          $
10359          Alt          Alt
10360          Recurse          Recurse
# Line 10727  Partial match: abca Line 10416  Partial match: abca
10416      xxxxabcde\P\P      xxxxabcde\P\P
10417  Partial match: abcde  Partial match: abcde
10418    
10419  /-- This is not in the Perl >= 5.10 test because Perl seems currently to be  /-- This is not in the Perl-compatible test because Perl seems currently to be
10420      broken and not behaving as specified in that it *does* bumpalong after      broken and not behaving as specified in that it *does* bumpalong after
10421      hitting (*COMMIT). --/      hitting (*COMMIT). --/
10422    
# Line 10765  Options: Line 10454  Options:
10454  No first char  No first char
10455  Need char = 'a'  Need char = 'a'
10456  Subject length lower bound = 1  Subject length lower bound = 1
10457  No set of starting bytes  No starting char list
10458      cat      cat
10459   0: a   0: a
10460   1:   1:
# Line 10779  No options Line 10468  No options
10468  No first char  No first char
10469  Need char = 'a'  Need char = 'a'
10470  Subject length lower bound = 3  Subject length lower bound = 3
10471  No set of starting bytes  No starting char list
10472      cat      cat
10473  No match  No match
10474    
# Line 10791  No options Line 10480  No options
10480  First char = 'i'  First char = 'i'
10481  No need char  No need char
10482  Subject length lower bound = 1  Subject length lower bound = 1
10483  No set of starting bytes  No starting char list
10484      i      i
10485   0: i   0: i
10486    
# Line 10801  No options Line 10490  No options
10490  No first char  No first char
10491  Need char = 'i'  Need char = 'i'
10492  Subject length lower bound = 1  Subject length lower bound = 1
10493  Starting byte set: i  Starting chars: i
10494      ia      ia
10495   0: ia   0: ia
10496   1:   1:
# Line 10923  No match Line 10612  No match
10612          End          End
10613  ------------------------------------------------------------------  ------------------------------------------------------------------
10614    
10615  / -- The first four of these are not in the Perl >= 5.10 test because Perl  / -- This one is here because Perl gives the match as "b" rather than "ab". I
      documents that the use of \K in assertions is "not well defined". The  
      last is here because Perl gives the match as "b" rather than "ab". I  
10616       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
10617    
 /(?=a\Kb)ab/  
     ab  
  0: b  
   
 /(?!a\Kb)ac/  
     ac  
  0: ac  
   
 /^abc(?<=b\Kc)d/  
     abcd  
  0: cd  
   
 /^abc(?<!b\Kq)d/  
     abcd  
  0: abcd  
   
10618  /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
10619      ab      ab
10620   0: ab   0: ab
10621   1: ab   1: ab
10622    
 /----------------------/  
   
10623  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10624  Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
10625    
# Line 10970  Failed: an argument is not allowed for ( Line 10639  Failed: an argument is not allowed for (
10639      ACABX      ACABX
10640  No match  No match
10641    
10642  /--- These should be different, but in Perl 5.11 are not, which I think  /--- These should be different, but in Perl they are not, which I think
10643       is a bug in Perl. ---/       is a bug in Perl. ---/
10644    
10645  /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
# Line 10981  No match Line 10650  No match
10650      AC      AC
10651  No match  No match
10652    
10653  /--- A whole lot of tests of verbs with arguments are here rather than in test  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10654       11 because Perl doesn't seem to follow its specification entirely  though PCRE does. ---/
      correctly. ---/  
10655    
10656  /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is  /^A(*:A)B|^X(*:A)Y/K
      not clear how Perl defines "involved in the failure of the match". ---/  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
10657      ** Failers      ** Failers
10658  No match  No match
10659      AC      XAQQ
10660  No match  No match, mark = A
     CB  
 No match, mark = B  
   
 /--- Check the use of names for success and failure. PCRE doesn't show these  
 names for success, though Perl does, contrary to its spec. ---/  
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /--- An empty name does not pass back an empty string. It is the same as if no  
 name were given. ---/  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /--- PRUNE goes to next bumpalong; COMMIT does not. ---/  
   
 /A(*PRUNE:A)B/K  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KSS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /(*MARK:A)(*THEN:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*THEN:B)(C|X)/KSS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- Same --/  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This should fail; the SKIP advances by one, but when we get to AC, the  
      PRUNE kills it. ---/  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This should fail, as a null name is the same as no name ---/  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This fails in PCRE, and I think that is in accordance with Perl's  
      documentation, though in Perl it succeeds. ---/  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK  
     AAAC  
 No match  
   
 /--- Mark names can be duplicated ---/  
   
 /A(*:A)B|X(*:A)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XY  
 MK: A  
   
 /^A(*:A)B|^X(*:A)Y/K  
     ** Failers  
 No match  
     XAQQ  
 No match, mark = A  
   
 /--- A check on what happens after hitting a mark and them bumping along to  
 something that does not even start. Perl reports tags after the failures here,  
 though it does not when the individual letters are made into something  
 more complicated. ---/  
   
 /A(*:A)B|XX(*:B)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
10661    
10662  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10663  optimizations defeat this. So does the PCRE optimization unless we disable it  optimizations defeat this. So does the PCRE optimization unless we disable it
# Line 11155  No match Line 10671  No match
10671      DEFGABC\Y      DEFGABC\Y
10672  No match  No match
10673    
 /--- Repeat some tests with added studying. ---/  
   
 /A(*COMMIT)B/+KS  
     ACABX  
 No match  
   
 /A(*THEN)B|A(*THEN)C/KS  
     AC  
  0: AC  
   
 /A(*PRUNE)B|A(*PRUNE)C/KS  
     AC  
 No match  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /A(*PRUNE:A)B/KS  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*THEN:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS  
     AAAC  
 No match  
   
 /A(*:A)B|XX(*:B)Y/KS  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
 /(*COMMIT)ABC/  
     ABCDEFG  
  0: ABC  
     ** Failers  
 No match  
     DEFGABC\Y  
 No match  
   
10674  /^(ab (c+(*THEN)cd) | xyz)/x  /^(ab (c+(*THEN)cd) | xyz)/x
10675      abcccd      abcccd
10676  No match  No match
# Line 11287  No match Line 10683  No match
10683      abcccd      abcccd
10684  No match  No match
10685    
10686  /--- Perl 5.11 gets some of these wrong ---/  /--- Perl gets some of these wrong ---/
10687    
10688  /(?>.(*ACCEPT))*?5/  /(?>.(*ACCEPT))*?5/
10689      abcde      abcde
# Line 11395  No match Line 10791  No match
10791  /\s*\R/BZ  /\s*\R/BZ
10792  ------------------------------------------------------------------  ------------------------------------------------------------------
10793          Bra          Bra
10794          \s*+          \s*
10795          \R          \R
10796          Ket          Ket
10797          End          End
10798  ------------------------------------------------------------------  ------------------------------------------------------------------
10799        \x20\x0a
10800     0:  \x0a
10801        \x20\x0d
10802     0:  \x0d
10803        \x20\x0d\x0a
10804     0:  \x0d\x0a
10805    
10806  /-- Perl treats this one differently, not failing the second string. I believe  /\S*\R/BZ
10807      that is a bug in Perl. --/  ------------------------------------------------------------------
10808            Bra
10809            \S*+
10810            \R
10811            Ket
10812            End
10813    ------------------------------------------------------------------
10814        a\x0a
10815     0: a\x0a
10816    
10817  /^((abc|abcx)(*THEN)y|abcd)/  /X\h*\R/BZ
10818      abcd  ------------------------------------------------------------------
10819   0: abcd          Bra
10820   1: abcd          X
10821      *** Failers          \h*+
10822  No match          \R
10823      abcxy          Ket
10824            End
10825    ------------------------------------------------------------------
10826        X\x20\x0a
10827     0: X \x0a
10828    
10829    /X\H*\R/BZ
10830    ------------------------------------------------------------------
10831            Bra
10832            X
10833            \H*
10834            \R
10835            Ket
10836            End
10837    ------------------------------------------------------------------
10838        X\x0d\x0a
10839     0: X\x0d\x0a
10840    
10841    /X\H+\R/BZ
10842    ------------------------------------------------------------------
10843            Bra
10844            X
10845            \H+
10846            \R
10847            Ket
10848            End
10849    ------------------------------------------------------------------
10850        X\x0d\x0a
10851     0: X\x0d\x0a
10852    
10853    /X\H++\R/BZ
10854    ------------------------------------------------------------------
10855            Bra
10856            X
10857            \H++
10858            \R
10859            Ket
10860            End
10861    ------------------------------------------------------------------
10862        X\x0d\x0a
10863  No match  No match
10864    
10865  /(?<=abc)def/  /(?<=abc)def/
10866      abc\P\P      abc\P\P
10867  Partial match: abc  Partial match at offset 3: abc
10868    
10869  /abc$/  /abc$/
10870      abc      abc
# Line 11635  No options Line 11084  No options
11084  First char = 'a'  First char = 'a'
11085  Need char = '4'  Need char = '4'
11086  Subject length lower bound = 5  Subject length lower bound = 5
11087  No set of starting bytes  No starting char list
11088    
11089  /([abc])++1234/SI  /([abc])++1234/SI
11090  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 11643  No options Line 11092  No options
11092  No first char  No first char
11093  Need char = '4'  Need char = '4'
11094  Subject length lower bound = 5  Subject length lower bound = 5
11095  Starting byte set: a b c  Starting chars: a b c
11096    
11097  /(?<=(abc)+)X/  /(?<=(abc)+)X/
11098  Failed: lookbehind assertion is not fixed length at offset 10  Failed: lookbehind assertion is not fixed length at offset 10
# Line 11662  No need char Line 11111  No need char
11111    
11112  /(^ab|^)+/I  /(^ab|^)+/I
11113  Capturing subpattern count = 1  Capturing subpattern count = 1
11114    May match empty string
11115  Options: anchored  Options: anchored
11116  No first char  No first char
11117  No need char  No need char
11118    
11119  /(^ab|^)++/I  /(^ab|^)++/I
11120  Capturing subpattern count = 1  Capturing subpattern count = 1
11121    May match empty string
11122  Options: anchored  Options: anchored
11123  No first char  No first char
11124  No need char  No need char
# Line 11686  No need char Line 11137  No need char
11137    
11138  /(?:^ab|^)+/I  /(?:^ab|^)+/I
11139  Capturing subpattern count = 0  Capturing subpattern count = 0
11140    May match empty string
11141  Options: anchored  Options: anchored
11142  No first char  No first char
11143  No need char  No need char
11144    
11145  /(?:^ab|^)++/I  /(?:^ab|^)++/I
11146  Capturing subpattern count = 0  Capturing subpattern count = 0
11147    May match empty string
11148  Options: anchored  Options: anchored
11149  No first char  No first char
11150  No need char  No need char
# Line 11710  Need char = 'b' Line 11163  Need char = 'b'
11163    
11164  /(.*ab|.*)+/I  /(.*ab|.*)+/I
11165  Capturing subpattern count = 1  Capturing subpattern count = 1
11166    May match empty string
11167  No options  No options
11168  First char at start or follows newline  First char at start or follows newline
11169  No need char  No need char
11170    
11171  /(.*ab|.*)++/I  /(.*ab|.*)++/I
11172  Capturing subpattern count = 1  Capturing subpattern count = 1
11173    May match empty string
11174  No options  No options
11175  First char at start or follows newline  First char at start or follows newline
11176  No need char  No need char
# Line 11734  Need char = 'b' Line 11189  Need char = 'b'
11189    
11190  /(?:.*ab|.*)+/I  /(?:.*ab|.*)+/I
11191  Capturing subpattern count = 0  Capturing subpattern count = 0
11192    May match empty string
11193  No options  No options
11194  First char at start or follows newline  First char at start or follows newline
11195  No need char  No need char
11196    
11197  /(?:.*ab|.*)++/I  /(?:.*ab|.*)++/I
11198  Capturing subpattern count = 0  Capturing subpattern count = 0
11199    May match empty string
11200  No options  No options
11201  First char at start or follows newline  First char at start or follows newline
11202  No need char  No need char
# Line 11816  No match Line 11273  No match
11273    
11274  /^.*?(?(?=a)a|b(*THEN)c)/  /^.*?(?(?=a)a|b(*THEN)c)/
11275      ba      ba
11276   0: ba  No match
11277    
11278  /^.*?(?(?=a)a|bc)/  /^.*?(?(?=a)a|bc)/
11279      ba      ba
11280   0: ba   0: ba
11281    
11282    /^.*?(?(?=a)a(*THEN)b|c)/
11283        ac
11284    No match
11285    
11286    /^.*?(?(?=a)a(*THEN)b)c/
11287        ac
11288    No match
11289    
11290    /^.*?(a(*THEN)b)c/
11291        aabc
11292    No match
11293    
11294    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11295        aabc
11296     0: aabc
11297    
11298    /^.*?(a(*THEN)b|z)c/
11299        aabc
11300     0: aabc
11301     1: ab
11302    
11303    /^.*?(z|a(*THEN)b)c/
11304        aabc
11305     0: aabc
11306     1: ab
11307    
11308  /-- --/  /-- --/
11309    
11310  /-- These studied versions are here because they are not Perl-compatible; the  /-- These studied versions are here because they are not Perl-compatible; the
# Line 11833  No match Line 11316  No match
11316   1: C   1: C
11317  MK: A  MK: A
11318      D      D
11319  No match  No match, mark = A
11320    
11321  /(*:A)A+(*SKIP:A)(B|Z)/KS  /(*:A)A+(*SKIP:A)(B|Z)/KS
11322      AAAC      AAAC
11323  No match  No match, mark = A
11324    
11325  /-- --/  /-- --/
11326    
# Line 11866  No match Line 11349  No match
11349   1: a   1: a
11350   1+ a%   1+ a%
11351    
11352  /(a)b|ac/++  /(a)b|ac/++SS
11353      ac\O3      ac\O3
 Matched, but too many substrings  
11354   0: ac   0: ac
11355   0+   0+
11356    
11357    /(a)(b)x|abc/++
11358         abc\O6
11359     0: abc
11360     0+
11361    
11362  /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI  /(a)bc|(a)(b)\2/
11363  Capturing subpattern count = 2      \O3abc
11364  No options  Matched, but too many substrings
11365  No first char   0: abc
11366        \O4abc
11367    Matched, but too many substrings
11368     0: abc
11369    
11370    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11371    Capturing subpattern count = 2
11372    No options
11373    No first char
11374  No need char  No need char
11375  Subject length lower bound = 1  Subject length lower bound = 1
11376  No set of starting bytes  No starting char list
11377    
11378  /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI  /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11379  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 11886  No options Line 11381  No options
11381  No first char  No first char
11382  No need char  No need char
11383  Subject length lower bound = 3  Subject length lower bound = 3
11384  Starting byte set: a b  Starting chars: a b
11385    
11386  /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI  /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11387  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 11894  No options Line 11389  No options
11389  No first char  No first char
11390  No need char  No need char
11391  Subject length lower bound = 4  Subject length lower bound = 4
11392  Starting byte set: a b  Starting chars: a b
11393    
11394  /(abc)(?1)/SI  /(abc)(?1)/SI
11395  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 11902  No options Line 11397  No options
11397  First char = 'a'  First char = 'a'
11398  Need char = 'c'  Need char = 'c'
11399  Subject length lower bound = 6  Subject length lower bound = 6
11400  No set of starting bytes  No starting char list
11401    
11402  /^(?>a)++/  /^(?>a)++/
11403      aa\M      aa\M
11404  Minimum match() limit = 5  Minimum match() limit = 5
11405  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11406   0: aa   0: aa
11407      aaaaaaaaa\M      aaaaaaaaa\M
11408  Minimum match() limit = 12  Minimum match() limit = 12
11409  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11410   0: aaaaaaaaa   0: aaaaaaaaa
11411    
11412  /(a)(?1)++/  /(a)(?1)++/
11413      aa\M      aa\M
11414  Minimum match() limit = 7  Minimum match() limit = 7
11415  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11416   0: aa   0: aa
11417   1: a   1: a
11418      aaaaaaaaa\M      aaaaaaaaa\M
11419  Minimum match() limit = 21  Minimum match() limit = 21
11420  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11421   0: aaaaaaaaa   0: aaaaaaaaa
11422   1: a   1: a
11423    
11424    /(?:(foo)|(bar)|(baz))X/SS=
11425        bazfooX
11426     0: fooX
11427     1: foo
11428     2: <unset>
11429     3: <unset>
11430        foobazbarX
11431     0: barX
11432     1: <unset>
11433     2: bar
11434     3: <unset>
11435        barfooX
11436     0: fooX
11437     1: foo
11438     2: <unset>
11439     3: <unset>
11440        bazX
11441     0: bazX
11442     1: <unset>
11443     2: <unset>
11444     3: baz
11445        foobarbazX
11446     0: bazX
11447     1: <unset>
11448     2: <unset>
11449     3: baz
11450        bazfooX\O0
11451    Matched, but too many substrings
11452        bazfooX\O2
11453    Matched, but too many substrings
11454     0: fooX
11455        bazfooX\O4
11456    Matched, but too many substrings
11457     0: fooX
11458     1: <unset>
11459        bazfooX\O6
11460    Matched, but too many substrings
11461     0: fooX
11462     1: foo
11463     2: <unset>
11464        bazfooX\O8
11465    Matched, but too many substrings
11466     0: fooX
11467     1: foo
11468     2: <unset>
11469     3: <unset>
11470        bazfooX\O10
11471     0: fooX
11472     1: foo
11473     2: <unset>
11474     3: <unset>
11475    
11476    /(?=abc){3}abc/BZ
11477    ------------------------------------------------------------------
11478            Bra
11479            Assert
11480            abc
11481            Ket
11482            abc
11483            Ket
11484            End
11485    ------------------------------------------------------------------
11486    
11487    /(?=abc)+abc/BZ
11488    ------------------------------------------------------------------
11489            Bra
11490            Assert
11491            abc
11492            Ket
11493            abc
11494            Ket
11495            End
11496    ------------------------------------------------------------------
11497    
11498    /(?=abc)++abc/BZ
11499    ------------------------------------------------------------------
11500            Bra
11501            Assert
11502            abc
11503            Ket
11504            abc
11505            Ket
11506            End
11507    ------------------------------------------------------------------
11508    
11509    /(?=abc){0}xyz/BZ
11510    ------------------------------------------------------------------
11511            Bra
11512            Skip zero
11513            Assert
11514            abc
11515            Ket
11516            xyz
11517            Ket
11518            End
11519    ------------------------------------------------------------------
11520    
11521    /(?=(a))?./BZ
11522    ------------------------------------------------------------------
11523            Bra
11524            Brazero
11525            Assert
11526            CBra 1
11527            a
11528            Ket
11529            Ket
11530            Any
11531            Ket
11532            End
11533    ------------------------------------------------------------------
11534    
11535    /(?=(a))??./BZ
11536    ------------------------------------------------------------------
11537            Bra
11538            Braminzero
11539            Assert
11540            CBra 1
11541            a
11542            Ket
11543            Ket
11544            Any
11545            Ket
11546            End
11547    ------------------------------------------------------------------
11548    
11549    /^(?=(a)){0}b(?1)/BZ
11550    ------------------------------------------------------------------
11551            Bra
11552            ^
11553            Skip zero
11554            Assert
11555            CBra 1
11556            a
11557            Ket
11558            Ket
11559            b
11560            Recurse
11561            Ket
11562            End
11563    ------------------------------------------------------------------
11564    
11565    /(?(DEFINE)(a))?b(?1)/BZ
11566    ------------------------------------------------------------------
11567            Bra
11568            Cond
11569            Cond def
11570            CBra 1
11571            a
11572            Ket
11573            Ket
11574            b
11575            Recurse
11576            Ket
11577            End
11578    ------------------------------------------------------------------
11579    
11580    /^(?=(?1))?[az]([abc])d/BZ
11581    ------------------------------------------------------------------
11582            Bra
11583            ^
11584            Brazero
11585            Assert
11586            Recurse
11587            Ket
11588            [az]
11589            CBra 1
11590            [a-c]
11591            Ket
11592            d
11593            Ket
11594            End
11595    ------------------------------------------------------------------
11596    
11597    /^(?!a){0}\w+/BZ
11598    ------------------------------------------------------------------
11599            Bra
11600            ^
11601            Skip zero
11602            Assert not
11603            a
11604            Ket
11605            \w++
11606            Ket
11607            End
11608    ------------------------------------------------------------------
11609    
11610    /(?<=(abc))?xyz/BZ
11611    ------------------------------------------------------------------
11612            Bra
11613            Brazero
11614            AssertB
11615            Reverse
11616            CBra 1
11617            abc
11618            Ket
11619            Ket
11620            xyz
11621            Ket
11622            End
11623    ------------------------------------------------------------------
11624    
11625    /[:a[:abc]b:]/BZ
11626    ------------------------------------------------------------------
11627            Bra
11628            [:[a-c]
11629            b:]
11630            Ket
11631            End
11632    ------------------------------------------------------------------
11633    
11634    /((?2))((?1))/SS
11635        abc
11636    Error -26 (nested recursion at the same subject position)
11637    
11638    /((?(R2)a+|(?1)b))/SS
11639        aaaabcde
11640    Error -26 (nested recursion at the same subject position)
11641    
11642    /(?(R)a*(?1)|((?R))b)/SS
11643        aaaabcde
11644    Error -26 (nested recursion at the same subject position)
11645    
11646    /(a+|(?R)b)/
11647    Failed: recursive call could loop indefinitely at offset 7
11648    
11649    /^(a(*:A)(d|e(*:B))z|aeq)/C
11650        adz
11651    --->adz
11652     +0 ^       ^
11653     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11654     +2 ^       a
11655     +3 ^^      (*:A)
11656     +8 ^^      (d|e(*:B))
11657    Latest Mark: A
11658     +9 ^^      d
11659    +10 ^ ^     |
11660    +18 ^ ^     z
11661    +19 ^  ^    |
11662    +24 ^  ^
11663     0: adz
11664     1: adz
11665     2: d
11666        aez
11667    --->aez
11668     +0 ^       ^
11669     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11670     +2 ^       a
11671     +3 ^^      (*:A)
11672     +8 ^^      (d|e(*:B))
11673    Latest Mark: A
11674     +9 ^^      d
11675    +11 ^^      e
11676    +12 ^ ^     (*:B)
11677    +17 ^ ^     )
11678    Latest Mark: B
11679    +18 ^ ^     z
11680    +19 ^  ^    |
11681    +24 ^  ^
11682     0: aez
11683     1: aez
11684     2: e
11685        aeqwerty
11686    --->aeqwerty
11687     +0 ^            ^
11688     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11689     +2 ^            a
11690     +3 ^^           (*:A)
11691     +8 ^^           (d|e(*:B))
11692    Latest Mark: A
11693     +9 ^^           d
11694    +11 ^^           e
11695    +12 ^ ^          (*:B)
11696    +17 ^ ^          )
11697    Latest Mark: B
11698    +18 ^ ^          z
11699    +20 ^            a
11700    +21 ^^           e
11701    +22 ^ ^          q
11702    +23 ^  ^         )
11703    +24 ^  ^
11704     0: aeq
11705     1: aeq
11706    
11707    /.(*F)/
11708        \P\Pabc
11709    No match
11710    
11711    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11712    Capturing subpattern count = 0
11713    Max lookbehind = 1
11714    No options
11715    First char = 't'
11716    Need char = 't'
11717    Subject length lower bound = 18
11718    No starting char list
11719    
11720    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11721    Capturing subpattern count = 0
11722    Max lookbehind = 1
11723    No options
11724    No first char
11725    No need char
11726    Subject length lower bound = 8
11727    Starting chars: < o t u
11728    
11729    /a(*SKIP)c|b(*ACCEPT)|/+S!I
11730    Capturing subpattern count = 0
11731    May match empty string
11732    No options
11733    No first char
11734    No need char
11735    Subject length lower bound = -1
11736    No starting char list
11737        a
11738     0:
11739     0+
11740    
11741    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11742    Capturing subpattern count = 0
11743    No options
11744    No first char
11745    No need char
11746    Subject length lower bound = -1
11747    Starting chars: a b x
11748        ax
11749     0: x
11750    
11751    'a*(*ACCEPT)b'+
11752        \N\N
11753    No match
11754        abc\N\N
11755     0: a
11756     0+ bc
11757        bbb\N\N
11758     0:
11759     0+ bb
11760    
11761    /(*ACCEPT)a/+I
11762    Capturing subpattern count = 0
11763    No options
11764    No first char
11765    No need char
11766        bax
11767     0:
11768     0+ bax
11769    
11770    /z(*ACCEPT)a/+I
11771    Capturing subpattern count = 0
11772    No options
11773    First char = 'z'
11774    No need char
11775        baxzbx
11776     0: z
11777     0+ bx
11778    
11779    /a(?:.)*?a/ims
11780        \Mabbbbbbbbbbbbbbbbbbbbba
11781    Minimum match() limit = 65
11782    Minimum match() recursion limit = 2
11783     0: abbbbbbbbbbbbbbbbbbbbba
11784    
11785    /a(?:.(*THEN))*?a/ims
11786        \Mabbbbbbbbbbbbbbbbbbbbba
11787    Minimum match() limit = 86
11788    Minimum match() recursion limit = 45
11789     0: abbbbbbbbbbbbbbbbbbbbba
11790    
11791    /a(?:.(*THEN:ABC))*?a/ims
11792        \Mabbbbbbbbbbbbbbbbbbbbba
11793    Minimum match() limit = 86
11794    Minimum match() recursion limit = 45
11795     0: abbbbbbbbbbbbbbbbbbbbba
11796    
11797    /^(?>a+)(?>(z+))\w/BZ
11798    ------------------------------------------------------------------
11799            Bra
11800            ^
11801            Once_NC
11802            a++
11803            Ket
11804            Once
11805            CBra 1
11806            z++
11807            Ket
11808            Ket
11809            \w
11810            Ket
11811            End
11812    ------------------------------------------------------------------
11813        aaaazzzzb
11814     0: aaaazzzzb
11815     1: zzzz
11816        ** Failers
11817    No match
11818        aazz
11819    No match
11820    
11821    /(.)(\1|a(?2))/
11822        bab
11823     0: bab
11824     1: b
11825     2: ab
11826    
11827    /\1|(.)(?R)\1/
11828        cbbbc
11829     0: cbbbc
11830     1: c
11831    
11832    /(.)((?(1)c|a)|a(?2))/
11833        baa
11834    No match
11835    
11836    /(?P<abn>(?P=abn)xxx)/BZ
11837    ------------------------------------------------------------------
11838            Bra
11839            Once
11840            CBra 1
11841            \1
11842            xxx
11843            Ket
11844            Ket
11845            Ket
11846            End
11847    ------------------------------------------------------------------
11848    
11849    /(a\1z)/BZ
11850    ------------------------------------------------------------------
11851            Bra
11852            Once
11853            CBra 1
11854            a
11855            \1
11856            z
11857            Ket
11858            Ket
11859            Ket
11860            End
11861    ------------------------------------------------------------------
11862    
11863    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11864         \Maabbccddee
11865    Minimum match() limit = 7
11866    Minimum match() recursion limit = 2
11867     0: aabbccddee
11868    
11869    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11870         \Maabbccddee
11871    Minimum match() limit = 17
11872    Minimum match() recursion limit = 16
11873     0: aabbccddee
11874     1: aa
11875     2: bb
11876     3: cc
11877     4: dd
11878     5: ee
11879    
11880    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11881         \Maabbccddee
11882    Minimum match() limit = 13
11883    Minimum match() recursion limit = 10
11884     0: aabbccddee
11885     1: aa
11886     2: cc
11887     3: ee
11888    
11889    /^a\x41z/<JS>
11890        aAz
11891     0: aAz
11892        *** Failers
11893    No match
11894        ax41z
11895    No match
11896    
11897    /^a[m\x41]z/<JS>
11898        aAz
11899     0: aAz
11900    
11901    /^a\x1z/<JS>
11902        ax1z
11903     0: ax1z
11904    
11905    /^a\u0041z/<JS>
11906        aAz
11907     0: aAz
11908        *** Failers
11909    No match
11910        au0041z
11911    No match
11912    
11913    /^a[m\u0041]z/<JS>
11914        aAz
11915     0: aAz
11916    
11917    /^a\u041z/<JS>
11918        au041z
11919     0: au041z
11920        *** Failers
11921    No match
11922        aAz
11923    No match
11924    
11925    /^a\U0041z/<JS>
11926        aU0041z
11927     0: aU0041z
11928        *** Failers
11929    No match
11930        aAz
11931    No match
11932    
11933    /(?(?=c)c|d)++Y/BZ
11934    ------------------------------------------------------------------
11935            Bra
11936            BraPos
11937            Cond
11938            Assert
11939            c
11940            Ket
11941            c
11942            Alt
11943            d
11944            Ket
11945            KetRpos
11946            Y
11947            Ket
11948            End
11949    ------------------------------------------------------------------
11950    
11951    /(?(?=c)c|d)*+Y/BZ
11952    ------------------------------------------------------------------
11953            Bra
11954            Braposzero
11955            BraPos
11956            Cond
11957            Assert
11958            c
11959            Ket
11960            c
11961            Alt
11962            d
11963            Ket
11964            KetRpos
11965            Y
11966            Ket
11967            End
11968    ------------------------------------------------------------------
11969    
11970    /a[\NB]c/
11971    Failed: \N is not supported in a class at offset 3
11972    
11973    /a[B-\Nc]/
11974    Failed: invalid range in character class at offset 5
11975    
11976    /a[B\Nc]/
11977    Failed: \N is not supported in a class at offset 4
11978    
11979    /(a)(?2){0,1999}?(b)/
11980    
11981    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11982    
11983    /--- This test, with something more complicated than individual letters, causes
11984    different behaviour in Perl. Perhaps it disables some optimization; no tag is
11985    passed back for the failures, whereas in PCRE there is a tag. ---/
11986    
11987    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11988        AABC
11989     0: AB
11990     1: A
11991     2: B
11992    MK: A
11993        XXYZ
11994     0: XXY
11995     1: <unset>
11996     2: <unset>
11997     3: X
11998     4: X
11999     5: Y
12000    MK: B
12001        ** Failers
12002    No match
12003        XAQQ
12004    No match, mark = A
12005        XAQQXZZ
12006    No match, mark = A
12007        AXQQQ
12008    No match, mark = A
12009        AXXQQQ
12010    No match, mark = B
12011    
12012    /-- Perl doesn't give marks for these, though it does if the alternatives are
12013    replaced by single letters. --/
12014    
12015    /(b|q)(*:m)f|a(*:n)w/K
12016        aw
12017     0: aw
12018    MK: n
12019        ** Failers
12020    No match, mark = n
12021        abc
12022    No match, mark = m
12023    
12024    /(q|b)(*:m)f|a(*:n)w/K
12025        aw
12026     0: aw
12027    MK: n
12028        ** Failers
12029    No match, mark = n
12030        abc
12031    No match, mark = m
12032    
12033    /-- After a partial match, the behaviour is as for a failure. --/
12034    
12035    /^a(*:X)bcde/K
12036       abc\P
12037    Partial match, mark=X: abc
12038    
12039    /-- These are here because Perl doesn't return a mark, except for the first --/
12040    
12041    /(?=(*:x))(q|)/K+
12042        abc
12043     0:
12044     0+ abc
12045     1:
12046    MK: x
12047    
12048    /(?=(*:x))((*:y)q|)/K+
12049        abc
12050     0:
12051     0+ abc
12052     1:
12053    MK: x
12054    
12055    /(?=(*:x))(?:(*:y)q|)/K+
12056        abc
12057     0:
12058     0+ abc
12059    MK: x
12060    
12061    /(?=(*:x))(?>(*:y)q|)/K+
12062        abc
12063     0:
12064     0+ abc
12065    MK: x
12066    
12067    /(?=a(*:x))(?!a(*:y)c)/K+
12068        ab
12069     0:
12070     0+ ab
12071    MK: x
12072    
12073    /(?=a(*:x))(?=a(*:y)c|)/K+
12074        ab
12075     0:
12076     0+ ab
12077    MK: x
12078    
12079    /(..)\1/
12080        ab\P
12081    Partial match: ab
12082        aba\P
12083    Partial match: aba
12084        abab\P
12085     0: abab
12086     1: ab
12087    
12088    /(..)\1/i
12089        ab\P
12090    Partial match: ab
12091        abA\P
12092    Partial match: abA
12093        aBAb\P
12094     0: aBAb
12095     1: aB
12096    
12097    /(..)\1{2,}/
12098        ab\P
12099    Partial match: ab
12100        aba\P
12101    Partial match: aba
12102        abab\P
12103    Partial match: abab
12104        ababa\P
12105    Partial match: ababa
12106        ababab\P
12107     0: ababab
12108     1: ab
12109        ababab\P\P
12110    Partial match: ababab
12111        abababa\P
12112     0: ababab
12113     1: ab
12114        abababa\P\P
12115    Partial match: abababa
12116    
12117    /(..)\1{2,}/i
12118        ab\P
12119    Partial match: ab
12120        aBa\P
12121    Partial match: aBa
12122        aBAb\P
12123    Partial match: aBAb
12124        AbaBA\P
12125    Partial match: AbaBA
12126        abABAb\P
12127     0: abABAb
12128     1: ab
12129        aBAbaB\P\P
12130    Partial match: aBAbaB
12131        abABabA\P
12132     0: abABab
12133     1: ab
12134        abaBABa\P\P
12135    Partial match: abaBABa
12136    
12137    /(..)\1{2,}?x/i
12138        ab\P
12139    Partial match: ab
12140        abA\P
12141    Partial match: abA
12142        aBAb\P
12143    Partial match: aBAb
12144        abaBA\P
12145    Partial match: abaBA
12146        abAbaB\P
12147    Partial match: abAbaB
12148        abaBabA\P
12149    Partial match: abaBabA
12150        abAbABaBx\P
12151     0: abAbABaBx
12152     1: ab
12153    
12154    /^(..)\1/
12155        aba\P
12156    Partial match: aba
12157    
12158    /^(..)\1{2,3}x/
12159        aba\P
12160    Partial match: aba
12161        ababa\P
12162    Partial match: ababa
12163        ababa\P\P
12164    Partial match: ababa
12165        abababx
12166     0: abababx
12167     1: ab
12168        ababababx
12169     0: ababababx
12170     1: ab
12171    
12172    /^(..)\1{2,3}?x/
12173        aba\P
12174    Partial match: aba
12175        ababa\P
12176    Partial match: ababa
12177        ababa\P\P
12178    Partial match: ababa
12179        abababx
12180     0: abababx
12181     1: ab
12182        ababababx
12183     0: ababababx
12184     1: ab
12185    
12186    /^(..)(\1{2,3})ab/
12187        abababab
12188     0: abababab
12189     1: ab
12190     2: abab
12191    
12192    /^\R/
12193        \r\P
12194     0: \x0d
12195        \r\P\P
12196    Partial match: \x0d
12197    
12198    /^\R{2,3}x/
12199        \r\P
12200    Partial match: \x0d
12201        \r\P\P
12202    Partial match: \x0d
12203        \r\r\P
12204    Partial match: \x0d\x0d
12205        \r\r\P\P
12206    Partial match: \x0d\x0d
12207        \r\r\r\P
12208    Partial match: \x0d\x0d\x0d
12209        \r\r\r\P\P
12210    Partial match: \x0d\x0d\x0d
12211        \r\rx
12212     0: \x0d\x0dx
12213        \r\r\rx
12214     0: \x0d\x0d\x0dx
12215    
12216    /^\R{2,3}?x/
12217        \r\P
12218    Partial match: \x0d
12219        \r\P\P
12220    Partial match: \x0d
12221        \r\r\P
12222    Partial match: \x0d\x0d
12223        \r\r\P\P
12224    Partial match: \x0d\x0d
12225        \r\r\r\P
12226    Partial match: \x0d\x0d\x0d
12227        \r\r\r\P\P
12228    Partial match: \x0d\x0d\x0d
12229        \r\rx
12230     0: \x0d\x0dx
12231        \r\r\rx
12232     0: \x0d\x0d\x0dx
12233    
12234    /^\R?x/
12235        \r\P
12236    Partial match: \x0d
12237        \r\P\P
12238    Partial match: \x0d
12239        x
12240     0: x
12241        \rx
12242     0: \x0dx
12243    
12244    /^\R+x/
12245        \r\P
12246    Partial match: \x0d
12247        \r\P\P
12248    Partial match: \x0d
12249        \r\n\P
12250    Partial match: \x0d\x0a
12251        \r\n\P\P
12252    Partial match: \x0d\x0a
12253        \rx
12254     0: \x0dx
12255    
12256    /^a$/<CRLF>
12257        a\r\P
12258    Partial match: a\x0d
12259        a\r\P\P
12260    Partial match: a\x0d
12261    
12262    /^a$/m<CRLF>
12263        a\r\P
12264    Partial match: a\x0d
12265        a\r\P\P
12266    Partial match: a\x0d
12267    
12268    /^(a$|a\r)/<CRLF>
12269        a\r\P
12270     0: a\x0d
12271     1: a\x0d
12272        a\r\P\P
12273    Partial match: a\x0d
12274    
12275    /^(a$|a\r)/m<CRLF>
12276        a\r\P
12277     0: a\x0d
12278     1: a\x0d
12279        a\r\P\P
12280    Partial match: a\x0d
12281    
12282    /./<CRLF>
12283        \r\P
12284     0: \x0d
12285        \r\P\P
12286    Partial match: \x0d
12287    
12288    /.{2,3}/<CRLF>
12289        \r\P
12290    Partial match: \x0d
12291        \r\P\P
12292    Partial match: \x0d
12293        \r\r\P
12294     0: \x0d\x0d
12295        \r\r\P\P
12296    Partial match: \x0d\x0d
12297        \r\r\r\P
12298     0: \x0d\x0d\x0d
12299        \r\r\r\P\P
12300    Partial match: \x0d\x0d\x0d
12301    
12302    /.{2,3}?/<CRLF>
12303        \r\P
12304    Partial match: \x0d
12305        \r\P\P
12306    Partial match: \x0d
12307        \r\r\P
12308     0: \x0d\x0d
12309        \r\r\P\P
12310    Partial match: \x0d\x0d
12311        \r\r\r\P
12312     0: \x0d\x0d
12313        \r\r\r\P\P
12314     0: \x0d\x0d
12315    
12316    "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12317        ABCDGHI\O03
12318    Matched, but too many substrings
12319     0: ABCD
12320    
12321    /-- These are all run as real matches in test 1; here we are just checking the
12322    settings of the anchored and startline bits. --/
12323    
12324    /(?>.*?a)(?<=ba)/I
12325    Capturing subpattern count = 0
12326    Max lookbehind = 2
12327    No options
12328    No first char
12329    Need char = 'a'
12330    
12331    /(?:.*?a)(?<=ba)/I
12332    Capturing subpattern count = 0
12333    Max lookbehind = 2
12334    No options
12335    First char at start or follows newline
12336    Need char = 'a'
12337    
12338    /.*?a(*PRUNE)b/I
12339    Capturing subpattern count = 0
12340    No options
12341    No first char
12342    Need char = 'b'
12343    
12344    /.*?a(*PRUNE)b/sI
12345    Capturing subpattern count = 0
12346    Options: dotall
12347    No first char
12348    Need char = 'b'
12349    
12350    /^a(*PRUNE)b/sI
12351    Capturing subpattern count = 0
12352    Options: anchored dotall
12353    No first char
12354    No need char
12355    
12356    /.*?a(*SKIP)b/I
12357    Capturing subpattern count = 0
12358    No options
12359    No first char
12360    Need char = 'b'
12361    
12362    /(?>.*?a)b/sI
12363    Capturing subpattern count = 0
12364    Options: dotall
12365    No first char
12366    Need char = 'b'
12367    
12368    /(?>.*?a)b/I
12369    Capturing subpattern count = 0
12370    No options
12371    No first char
12372    Need char = 'b'
12373    
12374    /(?>^a)b/sI
12375    Capturing subpattern count = 0
12376    Options: anchored dotall
12377    No first char
12378    No need char
12379    
12380    /(?>.*?)(?<=(abcd)|(wxyz))/I
12381    Capturing subpattern count = 2
12382    Max lookbehind = 4
12383    May match empty string
12384    No options
12385    No first char
12386    No need char
12387    
12388    /(?>.*)(?<=(abcd)|(wxyz))/I
12389    Capturing subpattern count = 2
12390    Max lookbehind = 4
12391    May match empty string
12392    No options
12393    No first char
12394    No need char
12395    
12396    "(?>.*)foo"I
12397    Capturing subpattern count = 0
12398    No options
12399    No first char
12400    Need char = 'o'
12401    
12402    "(?>.*?)foo"I
12403    Capturing subpattern count = 0
12404    No options
12405    No first char
12406    Need char = 'o'
12407    
12408    /(?>^abc)/mI
12409    Capturing subpattern count = 0
12410    Options: multiline
12411    First char at start or follows newline
12412    Need char = 'c'
12413    
12414    /(?>.*abc)/mI
12415    Capturing subpattern count = 0
12416    Options: multiline
12417    No first char
12418    Need char = 'c'
12419    
12420    /(?:.*abc)/mI
12421    Capturing subpattern count = 0
12422    Options: multiline
12423    First char at start or follows newline
12424    Need char = 'c'
12425    
12426    /-- Check PCRE_STUDY_EXTRA_NEEDED --/
12427    
12428    /.?/S-I
12429    Capturing subpattern count = 0
12430    May match empty string
12431    No options
12432    No first char
12433    No need char
12434    Study returned NULL
12435    
12436    /.?/S!I
12437    Capturing subpattern count = 0
12438    May match empty string
12439    No options
12440    No first char
12441    No need char
12442    Subject length lower bound = -1
12443    No starting char list
12444    
12445    /(?:(a)+(?C1)bb|aa(?C2)b)/
12446        aab\C+
12447    Callout 1: last capture = 1
12448     0: <unset>
12449     1: a
12450    --->aab
12451        ^ ^     b
12452    Callout 1: last capture = 1
12453     0: <unset>
12454     1: a
12455    --->aab
12456        ^^      b
12457    Callout 2: last capture = -1
12458     0: <unset>
12459    --->aab
12460        ^ ^     b
12461     0: aab
12462    
12463    /(?:(a)++(?C1)bb|aa(?C2)b)/
12464        aab\C+
12465    Callout 1: last capture = 1
12466     0: <unset>
12467     1: a
12468    --->aab
12469        ^ ^     b
12470    Callout 2: last capture = -1
12471     0: <unset>
12472    --->aab
12473        ^ ^     b
12474     0: aab
12475    
12476    /(?:(?>(a))(?C1)bb|aa(?C2)b)/
12477        aab\C+
12478    Callout 1: last capture = 1
12479     0: <unset>
12480     1: a
12481    --->aab
12482        ^^      b
12483    Callout 2: last capture = -1
12484     0: <unset>
12485    --->aab
12486        ^ ^     b
12487     0: aab
12488    
12489    /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
12490        aab\C+
12491    Callout 1: last capture = -1
12492     0: <unset>
12493    --->aab
12494        ^^      x
12495    Callout 1: last capture = -1
12496     0: <unset>
12497    --->aab
12498         ^^     x
12499    Callout 2: last capture = -1
12500     0: <unset>
12501    --->aab
12502         ^ ^    )
12503     0: ab
12504    
12505    /(?1)(?C1)((a)(?C2)){0}/
12506        aab\C+
12507    Callout 2: last capture = 2
12508     0: <unset>
12509     1: <unset>
12510     2: a
12511    --->aab
12512        ^^      )
12513    Callout 1: last capture = -1
12514     0: <unset>
12515    --->aab
12516        ^^      ((a)(?C2)){0}
12517     0: a
12518    
12519    /(?:(a)+(?C1)bb|aa(?C2)b)++/
12520        aab\C+
12521    Callout 1: last capture = 1
12522     0: <unset>
12523     1: a
12524    --->aab
12525        ^ ^     b
12526    Callout 1: last capture = 1
12527     0: <unset>
12528     1: a
12529    --->aab
12530        ^^      b
12531    Callout 2: last capture = -1
12532     0: <unset>
12533    --->aab
12534        ^ ^     b
12535     0: aab
12536        aab\C+\O2
12537    Callout 1: last capture = 1
12538     0: <unset>
12539    --->aab
12540        ^ ^     b
12541    Callout 1: last capture = 1
12542     0: <unset>
12543    --->aab
12544        ^^      b
12545    Callout 2: last capture = -1
12546     0: <unset>
12547    --->aab
12548        ^ ^     b
12549     0: aab
12550    
12551    /(ab)x|ab/
12552        ab\O3
12553     0: ab
12554        ab\O2
12555     0: ab
12556    
12557    /(ab)/
12558        ab\O3
12559    Matched, but t