/[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 1440 by zherczeg, Sat Jan 11 21:54:20 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 3244  Failed: missing terminating ] for charac Line 3190  Failed: missing terminating ] for charac
3190  /[\s]/IDZ  /[\s]/IDZ
3191  ------------------------------------------------------------------  ------------------------------------------------------------------
3192          Bra          Bra
3193          [\x09\x0a\x0c\x0d ]          [\x09-\x0d ]
3194          Ket          Ket
3195          End          End
3196  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3308  No match Line 3254  No match
3254          End          End
3255  ------------------------------------------------------------------  ------------------------------------------------------------------
3256  Capturing subpattern count = 0  Capturing subpattern count = 0
3257    Max lookbehind = 1
3258  No options  No options
3259  First char = '8'  First char = '8'
3260  Need char = 'X'  Need char = 'X'
# Line 3321  Need char = 'X' Line 3268  Need char = 'X'
3268          End          End
3269  ------------------------------------------------------------------  ------------------------------------------------------------------
3270  Capturing subpattern count = 0  Capturing subpattern count = 0
3271    Max lookbehind = 1
3272  No options  No options
3273  First char = '$'  First char = '$'
3274  Need char = 'X'  Need char = 'X'
# Line 3377  Need char = 'b' Line 3325  Need char = 'b'
3325    
3326  /(?=a).*/I  /(?=a).*/I
3327  Capturing subpattern count = 0  Capturing subpattern count = 0
3328    May match empty string
3329  No options  No options
3330  First char = 'a'  First char = 'a'
3331  No need char  No need char
# Line 3395  Need char = 'z' (caseless) Line 3344  Need char = 'z' (caseless)
3344    
3345  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3346  Capturing subpattern count = 0  Capturing subpattern count = 0
3347    May match empty string
3348  No options  No options
3349  First char = 'a'  First char = 'a'
3350  No need char  No need char
# Line 3461  Need char = 'a' Line 3411  Need char = 'a'
3411    
3412  /(a)*/I  /(a)*/I
3413  Capturing subpattern count = 1  Capturing subpattern count = 1
3414    May match empty string
3415  No options  No options
3416  No first char  No first char
3417  No need char  No need char
# Line 3483  No options Line 3434  No options
3434  No first char  No first char
3435  No need char  No need char
3436  Subject length lower bound = 1  Subject length lower bound = 1
3437  Starting byte set: a b  Starting chars: a b
3438    
3439  /[^a]/I  /[^a]/I
3440  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3503  No options Line 3454  No options
3454  No first char  No first char
3455  Need char = '6'  Need char = '6'
3456  Subject length lower bound = 4  Subject length lower bound = 4
3457  Starting byte set: 0 1 2 3 4 5 6 7 8 9  Starting chars: 0 1 2 3 4 5 6 7 8 9
3458    
3459  /a^b/I  /a^b/I
3460  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3537  Options: caseless Line 3488  Options: caseless
3488  No first char  No first char
3489  No need char  No need char
3490  Subject length lower bound = 1  Subject length lower bound = 1
3491  Starting byte set: A B a b  Starting chars: A B a b
3492    
3493  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3494  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3545  No options Line 3496  No options
3496  No first char  No first char
3497  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3498  Subject length lower bound = 3  Subject length lower bound = 3
3499  Starting byte set: a b  Starting chars: a b
3500    
3501  /abc(?C)def/I  /abc(?C)def/I
3502  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3586  No options Line 3537  No options
3537  No first char  No first char
3538  Need char = 'f'  Need char = 'f'
3539  Subject length lower bound = 7  Subject length lower bound = 7
3540  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
3541      1234abcdef      1234abcdef
3542  --->1234abcdef  --->1234abcdef
3543    1 ^              \d    1 ^              \d
# Line 3689  No match Line 3640  No match
3640    
3641  /(?C0)(abc(?C1))*/I  /(?C0)(abc(?C1))*/I
3642  Capturing subpattern count = 1  Capturing subpattern count = 1
3643    May match empty string
3644  No options  No options
3645  No first char  No first char
3646  No need char  No need char
# Line 3722  No need char Line 3674  No need char
3674    
3675  /(\d{3}(?C))*/I  /(\d{3}(?C))*/I
3676  Capturing subpattern count = 1  Capturing subpattern count = 1
3677    May match empty string
3678  No options  No options
3679  No first char  No first char
3680  No need char  No need char
# Line 3836  Callout 2: last capture = -1 Line 3789  Callout 2: last capture = -1
3789    
3790  /(?<=(abc)(?C))xyz/I  /(?<=(abc)(?C))xyz/I
3791  Capturing subpattern count = 1  Capturing subpattern count = 1
3792    Max lookbehind = 3
3793  No options  No options
3794  First char = 'x'  First char = 'x'
3795  Need char = 'z'  Need char = 'z'
# Line 3857  Need char = 'b' Line 3811  Need char = 'b'
3811  --->abbbbbccc  --->abbbbbccc
3812    1 ^        ^    1 ^        ^
3813  Callout data = 1  Callout data = 1
   1 ^       ^  
 Callout data = 1  
   1 ^      ^  
 Callout data = 1  
   1 ^     ^  
 Callout data = 1  
   1 ^    ^  
 Callout data = 1  
   1 ^   ^  
 Callout data = 1  
   1 ^  ^  
 Callout data = 1  
   1 ^ ^  
 Callout data = 1  
3814  No match  No match
3815    
3816  /a(b+?)(c*?)(?C1)/I  /a(b+?)(c*?)(?C1)/I
# Line 3916  No options Line 3856  No options
3856  No first char  No first char
3857  No need char  No need char
3858  Subject length lower bound = 1  Subject length lower bound = 1
3859  Starting byte set: a b  Starting chars: a b
3860    
3861  /(?R)/I  /(?R)/I
3862  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
# Line 3967  Failed: recursive call could loop indefi Line 3907  Failed: recursive call could loop indefi
3907    
3908  /^([^()]|\((?1)*\))*$/I  /^([^()]|\((?1)*\))*$/I
3909  Capturing subpattern count = 1  Capturing subpattern count = 1
3910    May match empty string
3911  Options: anchored  Options: anchored
3912  No first char  No first char
3913  No need char  No need char
# Line 4246  Named capturing subpatterns: Line 4187  Named capturing subpatterns:
4187    one     1    one     1
4188    three   3    three   3
4189    two     2    two     2
4190    May match empty string
4191  Options: anchored caseless  Options: anchored caseless
4192  No first char  No first char
4193  No need char  No need char
# Line 4345  Need char = 'z' Line 4287  Need char = 'z'
4287    
4288  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4289  Capturing subpattern count = 31  Capturing subpattern count = 31
4290    May match empty string
4291  Options: anchored dotall  Options: anchored dotall
4292  No first char  No first char
4293  No need char  No need char
# Line 4352  No need char Line 4295  No need char
4295  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4296  Capturing subpattern count = 31  Capturing subpattern count = 31
4297  Max back reference = 31  Max back reference = 31
4298    May match empty string
4299  Options: dotall  Options: dotall
4300  No first char  No first char
4301  No need char  No need char
# Line 4359  No need char Line 4303  No need char
4303  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4304  Capturing subpattern count = 32  Capturing subpattern count = 32
4305  Max back reference = 32  Max back reference = 32
4306    May match empty string
4307  Options: dotall  Options: dotall
4308  No first char  No first char
4309  No need char  No need char
# Line 4430  No first char Line 4375  No first char
4375  Need char = 'z'  Need char = 'z'
4376    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4377  Minimum match() limit = 8  Minimum match() limit = 8
4378  Minimum match() recursion limit = 7  Minimum match() recursion limit = 6
4379   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4380   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4381    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4382  Minimum match() limit = 32768  Minimum match() limit = 32768
4383  Minimum match() recursion limit = 43  Minimum match() recursion limit = 29
4384  No match  No match
4385    
4386  /(aaa(?C1)bbb|ab)/I  /(aaa(?C1)bbb|ab)/I
# Line 4510  Capturing subpattern count = 2 Line 4455  Capturing subpattern count = 2
4455  Named capturing subpatterns:  Named capturing subpatterns:
4456    Tes    1    Tes    1
4457    Test   2    Test   2
4458    May match empty string
4459  No options  No options
4460  No first char  No first char
4461  No need char  No need char
# Line 4528  Capturing subpattern count = 2 Line 4474  Capturing subpattern count = 2
4474  Named capturing subpatterns:  Named capturing subpatterns:
4475    Tes    2    Tes    2
4476    Test   1    Test   1
4477    May match empty string
4478  No options  No options
4479  No first char  No first char
4480  No need char  No need char
# Line 4605  Need char = ']' Line 4552  Need char = ']'
4552          End          End
4553  ------------------------------------------------------------------  ------------------------------------------------------------------
4554  Capturing subpattern count = 2  Capturing subpattern count = 2
4555    May match empty string
4556  No options  No options
4557  No first char  No first char
4558  No need char  No need char
# Line 4625  No need char Line 4573  No need char
4573          End          End
4574  ------------------------------------------------------------------  ------------------------------------------------------------------
4575  Capturing subpattern count = 2  Capturing subpattern count = 2
4576    May match empty string
4577  No options  No options
4578  No first char  No first char
4579  No need char  No need char
# Line 4656  No need char Line 4605  No need char
4605          End          End
4606  ------------------------------------------------------------------  ------------------------------------------------------------------
4607  Capturing subpattern count = 2  Capturing subpattern count = 2
4608    May match empty string
4609  No options  No options
4610  No first char  No first char
4611  No need char  No need char
# Line 4663  No need char Line 4613  No need char
4613  /[ab]{1}+/DZ  /[ab]{1}+/DZ
4614  ------------------------------------------------------------------  ------------------------------------------------------------------
4615          Bra          Bra
4616          Once          [ab]{1,1}+
         [ab]{1,1}  
         Ket  
4617          Ket          Ket
4618          End          End
4619  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4689  Options: caseless Line 4637  Options: caseless
4637  No first char  No first char
4638  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4639  Subject length lower bound = 8  Subject length lower bound = 8
4640  No set of starting bytes  No starting char list
4641       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4642   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4643   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4708  No options Line 4656  No options
4656  No first char  No first char
4657  Need char = 'b'  Need char = 'b'
4658  Subject length lower bound = 1  Subject length lower bound = 1
4659  No set of starting bytes  No starting char list
4660    
4661  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4662  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4729  No options Line 4677  No options
4677  No first char  No first char
4678  Need char = 'c'  Need char = 'c'
4679  Subject length lower bound = 1  Subject length lower bound = 1
4680  No set of starting bytes  No starting char list
4681    
4682  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4683  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4802  Options: Line 4750  Options:
4750  No first char  No first char
4751  Need char = 'b'  Need char = 'b'
4752  Subject length lower bound = 1  Subject length lower bound = 1
4753  Starting byte set: a b  Starting chars: a b
4754    ab    ab
4755  --->ab  --->ab
4756   +0 ^      a*   +0 ^      a*
# Line 4945  Options: Line 4893  Options:
4893  No first char  No first char
4894  Need char = 'x'  Need char = 'x'
4895  Subject length lower bound = 4  Subject length lower bound = 4
4896  Starting byte set: a d  Starting chars: a d
4897    abcx    abcx
4898  --->abcx  --->abcx
4899   +0 ^        (abc|def)   +0 ^        (abc|def)
# Line 5179  Options: Line 5127  Options:
5127  No first char  No first char
5128  No need char  No need char
5129  Subject length lower bound = 2  Subject length lower bound = 2
5130  Starting byte set: a b x  Starting chars: a b x
5131      Note: that { does NOT introduce a quantifier      Note: that { does NOT introduce a quantifier
5132  --->Note: that { does NOT introduce a quantifier  --->Note: that { does NOT introduce a quantifier
5133   +0         ^                                        ([ab]{,4}c|xy)   +0         ^                                        ([ab]{,4}c|xy)
# Line 5377  No match Line 5325  No match
5325          Callout 255 0 21          Callout 255 0 21
5326          CBra 1          CBra 1
5327          Callout 255 1 9          Callout 255 1 9
5328          [ab]{1,4}          [ab]{1,4}+
5329          Callout 255 10 1          Callout 255 10 1
5330          c          c
5331          Callout 255 11 0          Callout 255 11 0
# Line 5390  No match Line 5338  No match
5338          Ket          Ket
5339          CBra 1          CBra 1
5340          Callout 255 1 9          Callout 255 1 9
5341          [ab]{1,4}          [ab]{1,4}+
5342          Callout 255 10 1          Callout 255 10 1
5343          c          c
5344          Callout 255 11 0          Callout 255 11 0
# Line 5403  No match Line 5351  No match
5351          Ket          Ket
5352          CBra 1          CBra 1
5353          Callout 255 1 9          Callout 255 1 9
5354          [ab]{1,4}          [ab]{1,4}+
5355          Callout 255 10 1          Callout 255 10 1
5356          c          c
5357          Callout 255 11 0          Callout 255 11 0
# Line 5416  No match Line 5364  No match
5364          Ket          Ket
5365          CBra 1          CBra 1
5366          Callout 255 1 9          Callout 255 1 9
5367          [ab]{1,4}          [ab]{1,4}+
5368          Callout 255 10 1          Callout 255 10 1
5369          c          c
5370          Callout 255 11 0          Callout 255 11 0
# Line 5430  No match Line 5378  No match
5378          Braminzero          Braminzero
5379          CBra 1          CBra 1
5380          Callout 255 1 9          Callout 255 1 9
5381          [ab]{1,4}          [ab]{1,4}+
5382          Callout 255 10 1          Callout 255 10 1
5383          c          c
5384          Callout 255 11 0          Callout 255 11 0
# Line 5483  Need char = '3' Line 5431  Need char = '3'
5431    
5432  /\b.*/I  /\b.*/I
5433  Capturing subpattern count = 0  Capturing subpattern count = 0
5434    Max lookbehind = 1
5435    May match empty string
5436  No options  No options
5437  No first char  No first char
5438  No need char  No need char
# Line 5491  No need char Line 5441  No need char
5441    
5442  /\b.*/Is  /\b.*/Is
5443  Capturing subpattern count = 0  Capturing subpattern count = 0
5444    Max lookbehind = 1
5445    May match empty string
5446  Options: dotall  Options: dotall
5447  No first char  No first char
5448  No need char  No need char
# Line 5499  No need char Line 5451  No need char
5451    
5452  /(?!.bcd).*/I  /(?!.bcd).*/I
5453  Capturing subpattern count = 0  Capturing subpattern count = 0
5454    May match empty string
5455  No options  No options
5456  No first char  No first char
5457  No need char  No need char
# Line 5654  No options Line 5607  No options
5607  First char = 'a'  First char = 'a'
5608  Need char = 'c'  Need char = 'c'
5609  Subject length lower bound = 3  Subject length lower bound = 3
5610  No set of starting bytes  No starting char list
5611  Compiled pattern written to testsavedregex  Compiled pattern written to testsavedregex
5612  Study data written to testsavedregex  Study data written to testsavedregex
5613  <testsavedregex  <testsavedregex
# Line 5689  No options Line 5642  No options
5642  First char = 'a'  First char = 'a'
5643  Need char = 'c'  Need char = 'c'
5644  Subject length lower bound = 3  Subject length lower bound = 3
5645  No set of starting bytes  No starting char list
5646  Compiled pattern written to testsavedregex  Compiled pattern written to testsavedregex
5647  Study data written to testsavedregex  Study data written to testsavedregex
5648  <testsavedregex  <testsavedregex
# Line 5724  No options Line 5677  No options
5677  No first char  No first char
5678  No need char  No need char
5679  Subject length lower bound = 1  Subject length lower bound = 1
5680  Starting byte set: a b  Starting chars: a b
5681  Compiled pattern written to testsavedregex  Compiled pattern written to testsavedregex
5682  Study data written to testsavedregex  Study data written to testsavedregex
5683  <testsavedregex  <testsavedregex
# Line 5763  No options Line 5716  No options
5716  No first char  No first char
5717  No need char  No need char
5718  Subject length lower bound = 1  Subject length lower bound = 1
5719  Starting byte set: a b  Starting chars: a b
5720  Compiled pattern written to testsavedregex  Compiled pattern written to testsavedregex
5721  Study data written to testsavedregex  Study data written to testsavedregex
5722  <testsavedregex  <testsavedregex
# Line 5802  Max back reference = 1 Line 5755  Max back reference = 1
5755  Options: multiline dotall  Options: multiline dotall
5756  First char = '<'  First char = '<'
5757  Need char = '>'  Need char = '>'
5758      <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>      \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
5759   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
5760   1: seite   1: seite
5761   2: \x0a   2: \x0a
# Line 5851  No match Line 5804  No match
5804      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5805  No match  No match
5806    
 /ab.cd/P  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ** Failers  
 No match: POSIX code 17: match failed  
     ab\ncd  
 No match: POSIX code 17: match failed  
   
 /ab.cd/Ps  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ab\ncd  
  0: ab\x0acd  
   
5807  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5808  Capturing subpattern count = 0  Capturing subpattern count = 0
5809  No options  No options
# Line 6105  Matched, but too many substrings Line 6040  Matched, but too many substrings
6040    
6041  /[^()]*(?:\((?R)\)[^()]*)*/I  /[^()]*(?:\((?R)\)[^()]*)*/I
6042  Capturing subpattern count = 0  Capturing subpattern count = 0
6043    May match empty string
6044  No options  No options
6045  No first char  No first char
6046  No need char  No need char
# Line 6117  No need char Line 6053  No need char
6053    
6054  /[^()]*(?:\((?>(?R))\)[^()]*)*/I  /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6055  Capturing subpattern count = 0  Capturing subpattern count = 0
6056    May match empty string
6057  No options  No options
6058  No first char  No first char
6059  No need char  No need char
# Line 6127  No need char Line 6064  No need char
6064    
6065  /[^()]*(?:\((?R)\))*[^()]*/I  /[^()]*(?:\((?R)\))*[^()]*/I
6066  Capturing subpattern count = 0  Capturing subpattern count = 0
6067    May match empty string
6068  No options  No options
6069  No first char  No first char
6070  No need char  No need char
# Line 6137  No need char Line 6075  No need char
6075    
6076  /(?:\((?R)\))*[^()]*/I  /(?:\((?R)\))*[^()]*/I
6077  Capturing subpattern count = 0  Capturing subpattern count = 0
6078    May match empty string
6079  No options  No options
6080  No first char  No first char
6081  No need char  No need char
# Line 6149  No need char Line 6088  No need char
6088    
6089  /(?:\((?R)\))|[^()]*/I  /(?:\((?R)\))|[^()]*/I
6090  Capturing subpattern count = 0  Capturing subpattern count = 0
6091    May match empty string
6092  No options  No options
6093  No first char  No first char
6094  No need char  No need char
# Line 6161  No need char Line 6101  No need char
6101      ((this))      ((this))
6102   0: ((this))   0: ((this))
6103    
 /a(b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /a(?P<name>b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /\x{100}/I  
 Failed: character value in \x{...} sequence is too large at offset 6  
   
6104  /\x{0000ff}/I  /\x{0000ff}/I
6105  Capturing subpattern count = 0  Capturing subpattern count = 0
6106  No options  No options
6107  First char = 255  First char = \xff
6108  No need char  No need char
6109    
6110  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 6209  no parentheses with name "Z" Line 6138  no parentheses with name "Z"
6138   2: a1   2: a1
6139  copy substring Z failed -7  copy substring Z failed -7
6140    C a1 (2) A    C a1 (2) A
6141    
6142    /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
6143    Capturing subpattern count = 3
6144    Named capturing subpatterns:
6145      a   1
6146      a   3
6147      b   2
6148    May match empty string
6149    Options: dupnames
6150    No first char
6151    No need char
6152    
6153  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
6154  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 6285  no parentheses with name "Z" Line 6225  no parentheses with name "Z"
6225   0: a1   0: a1
6226   1: a1   1: a1
6227   2: a1   2: a1
6228  copy substring Z failed -7  get substring Z failed -7
6229    G a1 (2) A    G a1 (2) A
6230    
6231  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6317  No need char Line 6257  No need char
6257    G a (1) A    G a (1) A
6258      cd\GA      cd\GA
6259   0: cd   0: cd
6260  copy substring A failed -7  get substring A failed -7
6261    
6262  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6263  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6419  Need char = 'X' Line 6359  Need char = 'X'
6359   1: X   1: X
6360    
6361  /(?:(?(2y)a|b)(X))+/I  /(?:(?(2y)a|b)(X))+/I
6362  Failed: reference to non-existent subpattern at offset 9  Failed: malformed number or name after (?( at offset 7
6363    
6364  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I  /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6365  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
# Line 6485  No need char Line 6425  No need char
6425   9:   9:
6426  10: Y  10: Y
6427    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6428  /\s*,\s*/IS  /\s*,\s*/IS
6429  Capturing subpattern count = 0  Capturing subpattern count = 0
6430  No options  No options
6431  No first char  No first char
6432  Need char = ','  Need char = ','
6433  Subject length lower bound = 1  Subject length lower bound = 1
6434  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 ,
6435      \x0b,\x0b      \x0b,\x0b
6436   0: ,   0: \x0b,\x0b
6437      \x0c,\x0d      \x0c,\x0d
6438   0: \x0c,\x0d   0: \x0c,\x0d
6439    
# Line 6605  No match Line 6542  No match
6542  No match  No match
6543    
6544  /^abc/Im<bad>  /^abc/Im<bad>
6545  Unknown newline type at: <bad>  Unknown modifier at: <bad>
6546    
6547    
6548  /abc/I  /abc/I
# Line 6614  No options Line 6551  No options
6551  First char = 'a'  First char = 'a'
6552  Need char = 'c'  Need char = 'c'
6553      xyz\rabc\<bad>      xyz\rabc\<bad>
6554  Unknown newline type at: <bad>  Unknown escape sequence at: <bad>
6555      abc      abc
6556   0: abc   0: abc
6557    
6558  /.*/I<lf>  /.*/I<lf>
6559  Capturing subpattern count = 0  Capturing subpattern count = 0
6560    May match empty string
6561  Options:  Options:
6562  Forced newline sequence: LF  Forced newline sequence: LF
6563  First char at start or follows newline  First char at start or follows newline
# Line 6661  Need char = 'f' Line 6599  Need char = 'f'
6599    
6600  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I  +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6601  Capturing subpattern count = 1  Capturing subpattern count = 1
6602    May match empty string
6603  No options  No options
6604  No first char  No first char
6605  No need char  No need char
6606     /* this is a C style comment */\M     /* this is a C style comment */\M
6607  Minimum match() limit = 120  Minimum match() limit = 120
6608  Minimum match() recursion limit = 35  Minimum match() recursion limit = 6
6609   0: /* this is a C style comment */   0: /* this is a C style comment */
6610   1: /* this is a C style comment */   1: /* this is a C style comment */
6611    
# Line 6799  No options Line 6738  No options
6738  No first char  No first char
6739  No need char  No need char
6740  Subject length lower bound = 1  Subject length lower bound = 1
6741  Starting byte set: C a b c d  Starting chars: C a b c d
6742    
6743  /()[ab]xyz/IS  /()[ab]xyz/IS
6744  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6807  No options Line 6746  No options
6746  No first char  No first char
6747  Need char = 'z'  Need char = 'z'
6748  Subject length lower bound = 4  Subject length lower bound = 4
6749  Starting byte set: a b  Starting chars: a b
6750    
6751  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
6752  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6815  No options Line 6754  No options
6754  No first char  No first char
6755  Need char = 'z'  Need char = 'z'
6756  Subject length lower bound = 4  Subject length lower bound = 4
6757  Starting byte set: a b  Starting chars: a b
6758    
6759  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
6760  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6823  No options Line 6762  No options
6762  No first char  No first char
6763  Need char = 'z'  Need char = 'z'
6764  Subject length lower bound = 4  Subject length lower bound = 4
6765  Starting byte set: a b c  Starting chars: a b c
6766    
6767  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
6768  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6831  No options Line 6770  No options
6770  No first char  No first char
6771  Need char = 'z'  Need char = 'z'
6772  Subject length lower bound = 4  Subject length lower bound = 4
6773  Starting byte set: a b c  Starting chars: a b c
6774    
6775  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
6776  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6839  No options Line 6778  No options
6778  No first char  No first char
6779  Need char = 'z'  Need char = 'z'
6780  Subject length lower bound = 4  Subject length lower bound = 4
6781  Starting byte set: a b c d  Starting chars: a b c d
6782    
6783  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
6784  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6847  No options Line 6786  No options
6786  No first char  No first char
6787  Need char = 'z'  Need char = 'z'
6788  Subject length lower bound = 4  Subject length lower bound = 4
6789  Starting byte set: a b c d  Starting chars: a b c d
6790    
6791  /^a*b\d/DZ  /^a*b\d/DZ
6792  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 6940  No options Line 6879  No options
6879  No first char  No first char
6880  No need char  No need char
6881  Subject length lower bound = 1  Subject length lower bound = 1
6882  Starting byte set: a b c d  Starting chars: a b c d
6883    
6884  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
6885  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6948  No options Line 6887  No options
6887  No first char  No first char
6888  No need char  No need char
6889  Subject length lower bound = 1  Subject length lower bound = 1
6890  Starting byte set: a b c d  Starting chars: a b c d
6891    
6892  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
6893  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6956  No options Line 6895  No options
6895  No first char  No first char
6896  No need char  No need char
6897  Subject length lower bound = 1  Subject length lower bound = 1
6898  Starting byte set: a b c d  Starting chars: a b c d
6899    
6900  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
6901  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 6964  No options Line 6903  No options
6903  No first char  No first char
6904  No need char  No need char
6905  Subject length lower bound = 2  Subject length lower bound = 2
6906  Starting byte set: a b  Starting chars: a b
6907    
6908  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6909   ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((   ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7548  Matched, but too many substrings Line 7487  Matched, but too many substrings
7487  /[^a]+a/BZi  /[^a]+a/BZi
7488  ------------------------------------------------------------------  ------------------------------------------------------------------
7489          Bra          Bra
7490       /i [^A]++       /i [^a]++
7491       /i a       /i a
7492          Ket          Ket
7493          End          End
# Line 7557  Matched, but too many substrings Line 7496  Matched, but too many substrings
7496  /[^a]+A/BZi  /[^a]+A/BZi
7497  ------------------------------------------------------------------  ------------------------------------------------------------------
7498          Bra          Bra
7499       /i [^A]++       /i [^a]++
7500       /i A       /i A
7501          Ket          Ket
7502          End          End
# Line 7584  Matched, but too many substrings Line 7523  Matched, but too many substrings
7523  /a*[^a]/BZ  /a*[^a]/BZ
7524  ------------------------------------------------------------------  ------------------------------------------------------------------
7525          Bra          Bra
7526          a*          a*+
7527          [^a]          [^a]
7528          Ket          Ket
7529          End          End
# Line 7726  No match Line 7665  No match
7665  ------------------------------------------------------------------  ------------------------------------------------------------------
7666          Bra          Bra
7667          ^          ^
7668          [a-z]+          [a-z]++
7669          Ket          Ket
7670          End          End
7671  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7767  No match Line 7706  No match
7706          ^          ^
7707          CBra 1          CBra 1
7708          Cond          Cond
7709        2 Cond nref        2 Cond ref
7710          y          y
7711          Ket          Ket
7712          [()]          [()]
# Line 7827  Named capturing subpatterns: Line 7766  Named capturing subpatterns:
7766    one     1    one     1
7767    three   3    three   3
7768    two     2    two     2
7769    May match empty string
7770  Options: anchored caseless  Options: anchored caseless
7771  No first char  No first char
7772  No need char  No need char
# Line 7926  Failed: reference to non-existent subpat Line 7866  Failed: reference to non-existent subpat
7866   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7867   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7868    
7869  /(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  /(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
7870  Failed: reference to non-existent subpattern at offset 29  Failed: reference to non-existent subpattern at offset 29
7871    
 /(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x  
     abcabc1Xabc2XabcXabcabc  
  0: abcabc1Xabc2XabcX  
  1: abcabc1Xabc2XabcX  
  2: abcabc1Xabc2XabcX  
   
7872  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7873  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7874    
# Line 7944  Options: extended Line 7878  Options: extended
7878  First char = 'x'  First char = 'x'
7879  Need char = 'z'  Need char = 'z'
7880    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7881  /(a|)*\d/  /(a|)*\d/
7882    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7883  No match  No match
# Line 8161  Failed: a numbered reference must not be Line 8092  Failed: a numbered reference must not be
8092  /^(a)\g{3/  /^(a)\g{3/
8093  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8094    
8095  /^(a)\g{4a}/  /^(a)\g{aa}/
8096  Failed: reference to non-existent subpattern at offset 9  Failed: reference to non-existent subpattern at offset 9
8097    
8098  /^a.b/<lf>  /^a.b/<lf>
# Line 8506  Failed: syntax error in subpattern name Line 8437  Failed: syntax error in subpattern name
8437   3: <unset>   3: <unset>
8438   4: x   4: x
8439    
 /[\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  
 ------------------------------------------------------------------  
   
8440  /\H++X/BZ  /\H++X/BZ
8441  ------------------------------------------------------------------  ------------------------------------------------------------------
8442          Bra          Bra
# Line 8726  No match Line 8597  No match
8597          \d          \d
8598          \v++          \v++
8599          \w          \w
8600          \v+          \v++
8601          \S          \S
8602          \v++          \v++
8603          \V          \V
# Line 8757  No match Line 8628  No match
8628  ------------------------------------------------------------------  ------------------------------------------------------------------
8629    
8630  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8631  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)  \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8632   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8633    
8634  /[\E]AAA/  /[\E]AAA/
# Line 8824  No match Line 8695  No match
8695   +6 ^      ^    (*FAIL)   +6 ^      ^    (*FAIL)
8696   +6 ^     ^     (*FAIL)   +6 ^     ^     (*FAIL)
8697   +6 ^    ^      (*FAIL)   +6 ^    ^      (*FAIL)
  +4 ^  ^        c+  
  +2 ^ ^         b?  
  +4 ^ ^         c+  
  +2 ^^          b?  
  +4 ^^          c+  
8698   +0  ^          a+   +0  ^          a+
8699   +2  ^ ^        b?   +2  ^ ^        b?
8700   +4  ^  ^       c+   +4  ^  ^       c+
8701   +6  ^     ^    (*FAIL)   +6  ^     ^    (*FAIL)
8702   +6  ^    ^     (*FAIL)   +6  ^    ^     (*FAIL)
8703   +6  ^   ^      (*FAIL)   +6  ^   ^      (*FAIL)
  +4  ^ ^        c+  
  +2  ^^         b?  
  +4  ^^         c+  
8704   +0   ^         a+   +0   ^         a+
8705   +2   ^^        b?   +2   ^^        b?
8706   +4   ^ ^       c+   +4   ^ ^       c+
8707   +6   ^    ^    (*FAIL)   +6   ^    ^    (*FAIL)
8708   +6   ^   ^     (*FAIL)   +6   ^   ^     (*FAIL)
8709   +6   ^  ^      (*FAIL)   +6   ^  ^      (*FAIL)
  +4   ^^        c+  
8710  No match  No match
8711    
8712  /a+b?(*PRUNE)c+(*FAIL)/C  /a+b?(*PRUNE)c+(*FAIL)/C
# Line 8939  Failed: number is too big at offset 19 Line 8801  Failed: number is too big at offset 19
8801  /\g6666666666/  /\g6666666666/
8802  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8803    
8804  /[\g6666666666]/  /[\g6666666666]/BZ
8805  Failed: number is too big at offset 12  ------------------------------------------------------------------
8806            Bra
8807            [6g]
8808            Ket
8809            End
8810    ------------------------------------------------------------------
8811    
8812  /(?1)\c[/  /(?1)\c[/
8813  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8963  No match Line 8830  No match
8830   1: \x0a   1: \x0a
8831    
8832  /a(*CR)b/  /a(*CR)b/
8833  Failed: (*VERB) not recognized at offset 5  Failed: (*VERB) not recognized or malformed at offset 5
8834    
8835  /(*CR)a.b/  /(*CR)a.b/
8836      a\nb      a\nb
# Line 9246  Failed: subpattern name expected at offs Line 9113  Failed: subpattern name expected at offs
9113  /\k{}/  /\k{}/
9114  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9115    
9116    /\k/
9117    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9118    
9119    /\kabc/
9120    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9121    
9122  /(?P=)/  /(?P=)/
9123  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9124    
# Line 9402  No match Line 9275  No match
9275      ab      ab
9276  No match  No match
9277    
9278  /a(?!)+b/  /a(?!)b/BZ
9279  Failed: nothing to repeat at offset 5  ------------------------------------------------------------------
9280            Bra
9281            a
9282            *FAIL
9283            b
9284            Ket
9285            End
9286    ------------------------------------------------------------------
9287    
9288    /(?!)?a/BZ
9289    ------------------------------------------------------------------
9290            Bra
9291            Brazero
9292            Assert not
9293            Ket
9294            a
9295            Ket
9296            End
9297    ------------------------------------------------------------------
9298        ab
9299     0: a
9300    
9301  /a(*FAIL)+b/  /a(*FAIL)+b/
9302  Failed: nothing to repeat at offset 8  Failed: nothing to repeat at offset 8
# Line 9414  No options Line 9307  No options
9307  No first char  No first char
9308  No need char  No need char
9309  Subject length lower bound = 1  Subject length lower bound = 1
9310  Starting byte set: x y z  Starting chars: x y z
9311    
9312  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
9313  Capturing subpattern count = 0  Capturing subpattern count = 0
9314    May match empty string
9315  Options:  Options:
9316  No first char  No first char
9317  No need char  No need char
# Line 9430  No need char Line 9324  No need char
9324   +7 ^ ^     b   +7 ^ ^     b
9325   +7 ^^      b   +7 ^^      b
9326   +7 ^       b   +7 ^       b
9327    +11 ^       ^
9328  +12 ^       )  +12 ^       )
9329  +13 ^  +13 ^
9330   0:   0:
# Line 9467  No options Line 9362  No options
9362  First char at start or follows newline  First char at start or follows newline
9363  No need char  No need char
9364    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9365  /xyz/C  /xyz/C
9366    xyz    xyz
9367  --->xyz  --->xyz
# Line 9529  No match Line 9416  No match
9416  No match  No match
9417    
9418  /(*NO_START_OPT)xyz/C  /(*NO_START_OPT)xyz/C
9419    abcxyz    abcxyz
9420  --->abcxyz  --->abcxyz
9421  +15 ^          x  +15 ^          x
9422  +15  ^         x  +15  ^         x
# Line 9539  No match Line 9426  No match
9426  +17    ^ ^     z  +17    ^ ^     z
9427  +18    ^  ^  +18    ^  ^
9428   0: xyz   0: xyz
9429    
9430    /(*NO_AUTO_POSSESS)a+b/BZ
9431    ------------------------------------------------------------------
9432            Bra
9433            a+
9434            b
9435            Ket
9436            End
9437    ------------------------------------------------------------------
9438    
9439  /xyz/CY  /xyz/CY
9440    abcxyz    abcxyz
# Line 9568  No match Line 9464  No match
9464   +3 ^ ^      (?(?=[a])[^"])   +3 ^ ^      (?(?=[a])[^"])
9465   +5 ^ ^      (?=[a])   +5 ^ ^      (?=[a])
9466   +8 ^ ^      [a]   +8 ^ ^      [a]
9467    +17 ^ ^      |
9468  +21 ^ ^      "  +21 ^ ^      "
9469  +18 ^ ^      b  +18 ^ ^      b
9470  +19 ^  ^     )  +19 ^  ^     )
9471   +3 ^  ^     (?(?=[a])[^"])   +3 ^  ^     (?(?=[a])[^"])
9472   +5 ^  ^     (?=[a])   +5 ^  ^     (?=[a])
9473   +8 ^  ^     [a]   +8 ^  ^     [a]
9474    +17 ^  ^     |
9475  +21 ^  ^     "  +21 ^  ^     "
9476  +22 ^   ^    $  +22 ^   ^    $
9477  +23 ^   ^  +23 ^   ^
# Line 9869  Partial match: the cat Line 9767  Partial match: the cat
9767     abc\P\P     abc\P\P
9768   0: abc   0: abc
9769    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9770  /abc\K123/  /abc\K123/
9771      xyzabc123pqr      xyzabc123pqr
9772   0: 123   0: 123
# Line 9889  Partial match: abc12 Line 9779  Partial match: abc12
9779      xyzabc123pqr      xyzabc123pqr
9780   0: 123   0: 123
9781      xyzabc12\P      xyzabc12\P
9782  Partial match: abc12  Partial match at offset 6: abc12
9783      xyzabc12\P\P      xyzabc12\P\P
9784  Partial match: abc12  Partial match at offset 6: abc12
9785    
9786  /\babc\b/  /\babc\b/
9787      +++abc+++      +++abc+++
9788   0: abc   0: abc
9789      +++ab\P      +++ab\P
9790  Partial match: +ab  Partial match at offset 3: +ab
9791      +++ab\P\P      +++ab\P\P
9792  Partial match: +ab  Partial match at offset 3: +ab
9793    
9794  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9795  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10206  No options Line 10096  No options
10096  No first char  No first char
10097  No need char  No need char
10098  Subject length lower bound = 2  Subject length lower bound = 2
10099  Starting byte set: a b  Starting chars: a b
10100    
10101  /(a|bc)\1{2,3}/SI  /(a|bc)\1{2,3}/SI
10102  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10215  No options Line 10105  No options
10105  No first char  No first char
10106  No need char  No need char
10107  Subject length lower bound = 3  Subject length lower bound = 3
10108  Starting byte set: a b  Starting chars: a b
10109    
10110  /(a|bc)(?1)/SI  /(a|bc)(?1)/SI
10111  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10223  No options Line 10113  No options
10113  No first char  No first char
10114  No need char  No need char
10115  Subject length lower bound = 2  Subject length lower bound = 2
10116  Starting byte set: a b  Starting chars: a b
10117    
10118  /(a|b\1)(a|b\1)/SI  /(a|b\1)(a|b\1)/SI
10119  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 10232  No options Line 10122  No options
10122  No first char  No first char
10123  No need char  No need char
10124  Subject length lower bound = 2  Subject length lower bound = 2
10125  Starting byte set: a b  Starting chars: a b
10126    
10127  /(a|b\1){2}/SI  /(a|b\1){2}/SI
10128  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10241  No options Line 10131  No options
10131  No first char  No first char
10132  No need char  No need char
10133  Subject length lower bound = 2  Subject length lower bound = 2
10134  Starting byte set: a b  Starting chars: a b
10135    
10136  /(a|bbbb\1)(a|bbbb\1)/SI  /(a|bbbb\1)(a|bbbb\1)/SI
10137  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 10250  No options Line 10140  No options
10140  No first char  No first char
10141  No need char  No need char
10142  Subject length lower bound = 2  Subject length lower bound = 2
10143  Starting byte set: a b  Starting chars: a b
10144    
10145  /(a|bbbb\1){2}/SI  /(a|bbbb\1){2}/SI
10146  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10259  No options Line 10149  No options
10149  No first char  No first char
10150  No need char  No need char
10151  Subject length lower bound = 2  Subject length lower bound = 2
10152  Starting byte set: a b  Starting chars: a b
10153    
10154  /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI  /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
10155  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10267  Options: anchored Line 10157  Options: anchored
10157  No first char  No first char
10158  Need char = ':'  Need char = ':'
10159  Subject length lower bound = 22  Subject length lower bound = 22
10160  No set of starting bytes  No starting char list
   
 /  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                          # optional leading comment  
 (?:    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 # address  
 |                     #  or  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )             # one word, optionally followed by....  
 (?:  
 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...  
 \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)       |  # comments, or...  
   
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 # quoted strings  
 )*  
 <  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                     # leading <  
 (?:  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
   
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  ,  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 )* # further okay, if led by comma  
 :                                # closing colon  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  )? #       optional route  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 #       address spec  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  > #                  trailing >  
 # name and address  
 )  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                       # optional trailing comment  
 /xSI  
 Capturing subpattern count = 0  
 Contains explicit CR or LF match  
 Options: extended  
 No first char  
 No need char  
 Subject length lower bound = 3  
 Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8  
   9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e  
   f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f  
10161    
10162  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS  /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10163  Capturing subpattern count = 11  Capturing subpattern count = 11
# Line 10479  Options: caseless dotall Line 10165  Options: caseless dotall
10165  First char = '<'  First char = '<'
10166  Need char = '>'  Need char = '>'
10167  Subject length lower bound = 47  Subject length lower bound = 47
10168  No set of starting bytes  No starting char list
10169    
10170  "(?>.*/)foo"SI  "(?>.*/)foo"SI
10171  Capturing subpattern count = 0  Capturing subpattern count = 0
10172  No options  No options
10173  First char at start or follows newline  No first char
10174  Need char = 'o'  Need char = 'o'
10175  Subject length lower bound = 4  Subject length lower bound = 4
10176  No set of starting bytes  No starting char list
10177    
10178  /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI  /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10179  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 10495  Options: extended Line 10181  Options: extended
10181  No first char  No first char
10182  Need char = '-'  Need char = '-'
10183  Subject length lower bound = 8  Subject length lower bound = 8
10184  No set of starting bytes  No starting char list
10185    
10186  /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI  /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10187  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 10503  Options: caseless Line 10189  Options: caseless
10189  No first char  No first char
10190  No need char  No need char
10191  Subject length lower bound = 1  Subject length lower bound = 1
10192  Starting byte set: A B C a b c  Starting chars: A B C a b c
10193    
10194  /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI  /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10195  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 10511  No options Line 10197  No options
10197  No first char  No first char
10198  Need char = 'b'  Need char = 'b'
10199  Subject length lower bound = 41  Subject length lower bound = 41
10200  Starting byte set: c d  Starting chars: c d
10201    
10202  /<a[\s]+href[\s]*=[\s]*          # find <a href=  /<a[\s]+href[\s]*=[\s]*          # find <a href=
10203   ([\"\'])?                       # find single or double quote   ([\"\'])?                       # find single or double quote
# Line 10524  Options: caseless extended dotall Line 10210  Options: caseless extended dotall
10210  First char = '<'  First char = '<'
10211  Need char = '='  Need char = '='
10212  Subject length lower bound = 9  Subject length lower bound = 9
10213  No set of starting bytes  No starting char list
10214    
10215  /^(?!:)                       # colon disallowed at start  /^(?!:)                       # colon disallowed at start
10216    (?:                         # start of item    (?:                         # start of item
# Line 10540  Options: anchored caseless extended Line 10226  Options: anchored caseless extended
10226  No first char  No first char
10227  Need char = ':'  Need char = ':'
10228  Subject length lower bound = 2  Subject length lower bound = 2
10229  No set of starting bytes  No starting char list
10230    
10231  /(?|(?<a>A)|(?<a>B))/I  /(?|(?<a>A)|(?<a>B))/I
10232  Capturing subpattern count = 1  Capturing subpattern count = 1
10233  Named capturing subpatterns:  Named capturing subpatterns:
10234    a   1    a   1
   a   1  
10235  No options  No options
10236  No first char  No first char
10237  No need char  No need char
# Line 10619  No match Line 10304  No match
10304          Ket          Ket
10305          Ket          Ket
10306          Cond          Cond
10307        4 Cond nref          Cond ref <D>2
10308          X          X
10309          Alt          Alt
10310          Y          Y
# Line 10665  No match Line 10350  No match
10350          CBra 4          CBra 4
10351          d          d
10352          Cond          Cond
10353          Cond nrecurse 1          Cond recurse <A>2
10354          $          $
10355          Alt          Alt
10356          Recurse          Recurse
# Line 10727  Partial match: abca Line 10412  Partial match: abca
10412      xxxxabcde\P\P      xxxxabcde\P\P
10413  Partial match: abcde  Partial match: abcde
10414    
10415  /-- This is not in the Perl >= 5.10 test because Perl seems currently to be  /-- This is not in the Perl-compatible test because Perl seems currently to be
10416      broken and not behaving as specified in that it *does* bumpalong after      broken and not behaving as specified in that it *does* bumpalong after
10417      hitting (*COMMIT). --/      hitting (*COMMIT). --/
10418    
# Line 10765  Options: Line 10450  Options:
10450  No first char  No first char
10451  Need char = 'a'  Need char = 'a'
10452  Subject length lower bound = 1  Subject length lower bound = 1
10453  No set of starting bytes  No starting char list
10454      cat      cat
10455   0: a   0: a
10456   1:   1:
# Line 10779  No options Line 10464  No options
10464  No first char  No first char
10465  Need char = 'a'  Need char = 'a'
10466  Subject length lower bound = 3  Subject length lower bound = 3
10467  No set of starting bytes  No starting char list
10468      cat      cat
10469  No match  No match
10470    
# Line 10791  No options Line 10476  No options
10476  First char = 'i'  First char = 'i'
10477  No need char  No need char
10478  Subject length lower bound = 1  Subject length lower bound = 1
10479  No set of starting bytes  No starting char list
10480      i      i
10481   0: i   0: i
10482    
# Line 10801  No options Line 10486  No options
10486  No first char  No first char
10487  Need char = 'i'  Need char = 'i'
10488  Subject length lower bound = 1  Subject length lower bound = 1
10489  Starting byte set: i  Starting chars: i
10490      ia      ia
10491   0: ia   0: ia
10492   1:   1:
# Line 10923  No match Line 10608  No match
10608          End          End
10609  ------------------------------------------------------------------  ------------------------------------------------------------------
10610    
10611  / -- The first four of these are not in the Perl >= 5.10 test because Perl  / -- This one is here because Perl gives the match as "b" rather than "ab". I
      documents that the use of \K in assertions is "not well defined". The  
      last is here because Perl gives the match as "b" rather than "ab". I  
10612       believe this to be a Perl bug. --/       believe this to be a Perl bug. --/
10613    
 /(?=a\Kb)ab/  
     ab  
  0: b  
   
 /(?!a\Kb)ac/  
     ac  
  0: ac  
   
 /^abc(?<=b\Kc)d/  
     abcd  
  0: cd  
   
 /^abc(?<!b\Kq)d/  
     abcd  
  0: abcd  
   
10614  /(?>a\Kb)z|(ab)/  /(?>a\Kb)z|(ab)/
10615      ab      ab
10616   0: ab   0: ab
10617   1: ab   1: ab
10618    
 /----------------------/  
   
10619  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/  /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10620  Failed: recursive call could loop indefinitely at offset 31  Failed: recursive call could loop indefinitely at offset 31
10621    
# Line 10970  Failed: an argument is not allowed for ( Line 10635  Failed: an argument is not allowed for (
10635      ACABX      ACABX
10636  No match  No match
10637    
10638  /--- These should be different, but in Perl 5.11 are not, which I think  /--- These should be different, but in Perl they are not, which I think
10639       is a bug in Perl. ---/       is a bug in Perl. ---/
10640    
10641  /A(*THEN)B|A(*THEN)C/K  /A(*THEN)B|A(*THEN)C/K
# Line 10981  No match Line 10646  No match
10646      AC      AC
10647  No match  No match
10648    
10649  /--- A whole lot of tests of verbs with arguments are here rather than in test  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10650       11 because Perl doesn't seem to follow its specification entirely  though PCRE does. ---/
      correctly. ---/  
   
 /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is  
      not clear how Perl defines "involved in the failure of the match". ---/  
10651    
10652  /^(A(*THEN:A)B|C(*THEN:B)D)/K  /^A(*:A)B|^X(*:A)Y/K
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
10653      ** Failers      ** Failers
10654  No match  No match
10655      AC      XAQQ
10656  No match  No match, mark = A
     CB  
 No match, mark = B  
10657    
10658  /--- Check the use of names for success and failure. PCRE doesn't show these  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10659  names for success, though Perl does, contrary to its spec. ---/  optimizations defeat this. So does the PCRE optimization unless we disable it
10660    with \Y. ---/
 /^(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  
   
 /--- COMMIT at the start of a pattern should be the same as an anchor. Perl  
 optimizations defeat this. So does the PCRE optimization unless we disable it  
 with \Y. ---/  
10661    
10662  /(*COMMIT)ABC/  /(*COMMIT)ABC/
10663      ABCDEFG      ABCDEFG
# Line 11155  No match Line 10667  No match
10667      DEFGABC\Y      DEFGABC\Y
10668  No match  No match
10669    
 /--- 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  
   
10670  /^(ab (c+(*THEN)cd) | xyz)/x  /^(ab (c+(*THEN)cd) | xyz)/x
10671      abcccd      abcccd
10672  No match  No match
# Line 11287  No match Line 10679  No match
10679      abcccd      abcccd
10680  No match  No match
10681    
10682  /--- Perl 5.11 gets some of these wrong ---/  /--- Perl gets some of these wrong ---/
10683    
10684  /(?>.(*ACCEPT))*?5/  /(?>.(*ACCEPT))*?5/
10685      abcde      abcde
# Line 11395  No match Line 10787  No match
10787  /\s*\R/BZ  /\s*\R/BZ
10788  ------------------------------------------------------------------  ------------------------------------------------------------------
10789          Bra          Bra
10790          \s*+          \s*
10791            \R
10792            Ket
10793            End
10794    ------------------------------------------------------------------
10795        \x20\x0a
10796     0:  \x0a
10797        \x20\x0d
10798     0:  \x0d
10799        \x20\x0d\x0a
10800     0:  \x0d\x0a
10801    
10802    /\S*\R/BZ
10803    ------------------------------------------------------------------
10804            Bra
10805            \S*+
10806          \R          \R
10807          Ket          Ket
10808          End          End
10809  ------------------------------------------------------------------  ------------------------------------------------------------------
10810        a\x0a
10811     0: a\x0a
10812    
10813  /-- Perl treats this one differently, not failing the second string. I believe  /X\h*\R/BZ
10814      that is a bug in Perl. --/  ------------------------------------------------------------------
10815            Bra
10816            X
10817            \h*+
10818            \R
10819            Ket
10820            End
10821    ------------------------------------------------------------------
10822        X\x20\x0a
10823     0: X \x0a
10824    
10825  /^((abc|abcx)(*THEN)y|abcd)/  /X\H*\R/BZ
10826      abcd  ------------------------------------------------------------------
10827   0: abcd          Bra
10828   1: abcd          X
10829      *** Failers          \H*
10830  No match          \R
10831      abcxy          Ket
10832            End
10833    ------------------------------------------------------------------
10834        X\x0d\x0a
10835     0: X\x0d\x0a
10836    
10837    /X\H+\R/BZ
10838    ------------------------------------------------------------------
10839            Bra
10840            X
10841            \H+
10842            \R
10843            Ket
10844            End
10845    ------------------------------------------------------------------
10846        X\x0d\x0a
10847     0: X\x0d\x0a
10848    
10849    /X\H++\R/BZ
10850    ------------------------------------------------------------------
10851            Bra
10852            X
10853            \H++
10854            \R
10855            Ket
10856            End
10857    ------------------------------------------------------------------
10858        X\x0d\x0a
10859  No match  No match
10860    
10861  /(?<=abc)def/  /(?<=abc)def/
10862      abc\P\P      abc\P\P
10863  Partial match: abc  Partial match at offset 3: abc
10864    
10865  /abc$/  /abc$/
10866      abc      abc
# Line 11635  No options Line 11080  No options
11080  First char = 'a'  First char = 'a'
11081  Need char = '4'  Need char = '4'
11082  Subject length lower bound = 5  Subject length lower bound = 5
11083  No set of starting bytes  No starting char list
11084    
11085  /([abc])++1234/SI  /([abc])++1234/SI
11086  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 11643  No options Line 11088  No options
11088  No first char  No first char
11089  Need char = '4'  Need char = '4'
11090  Subject length lower bound = 5  Subject length lower bound = 5
11091  Starting byte set: a b c  Starting chars: a b c
11092    
11093  /(?<=(abc)+)X/  /(?<=(abc)+)X/
11094  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 11107  No need char
11107    
11108  /(^ab|^)+/I  /(^ab|^)+/I
11109  Capturing subpattern count = 1  Capturing subpattern count = 1
11110    May match empty string
11111  Options: anchored  Options: anchored
11112  No first char  No first char
11113  No need char  No need char
11114    
11115  /(^ab|^)++/I  /(^ab|^)++/I
11116  Capturing subpattern count = 1  Capturing subpattern count = 1
11117    May match empty string
11118  Options: anchored  Options: anchored
11119  No first char  No first char
11120  No need char  No need char
# Line 11686  No need char Line 11133  No need char
11133    
11134  /(?:^ab|^)+/I  /(?:^ab|^)+/I
11135  Capturing subpattern count = 0  Capturing subpattern count = 0
11136    May match empty string
11137  Options: anchored  Options: anchored
11138  No first char  No first char
11139  No need char  No need char
11140    
11141  /(?:^ab|^)++/I  /(?:^ab|^)++/I
11142  Capturing subpattern count = 0  Capturing subpattern count = 0
11143    May match empty string
11144  Options: anchored  Options: anchored
11145  No first char  No first char
11146  No need char  No need char
# Line 11710  Need char = 'b' Line 11159  Need char = 'b'
11159    
11160  /(.*ab|.*)+/I  /(.*ab|.*)+/I
11161  Capturing subpattern count = 1  Capturing subpattern count = 1
11162    May match empty string
11163  No options  No options
11164  First char at start or follows newline  First char at start or follows newline
11165  No need char  No need char
11166    
11167  /(.*ab|.*)++/I  /(.*ab|.*)++/I
11168  Capturing subpattern count = 1  Capturing subpattern count = 1
11169    May match empty string
11170  No options  No options
11171  First char at start or follows newline  First char at start or follows newline
11172  No need char  No need char
# Line 11734  Need char = 'b' Line 11185  Need char = 'b'
11185    
11186  /(?:.*ab|.*)+/I  /(?:.*ab|.*)+/I
11187  Capturing subpattern count = 0  Capturing subpattern count = 0
11188    May match empty string
11189  No options  No options
11190  First char at start or follows newline  First char at start or follows newline
11191  No need char  No need char
11192    
11193  /(?:.*ab|.*)++/I  /(?:.*ab|.*)++/I
11194  Capturing subpattern count = 0  Capturing subpattern count = 0
11195    May match empty string
11196  No options  No options
11197  First char at start or follows newline  First char at start or follows newline
11198  No need char  No need char
# Line 11816  No match Line 11269  No match
11269    
11270  /^.*?(?(?=a)a|b(*THEN)c)/  /^.*?(?(?=a)a|b(*THEN)c)/
11271      ba      ba
11272   0: ba  No match
11273    
11274  /^.*?(?(?=a)a|bc)/  /^.*?(?(?=a)a|bc)/
11275      ba      ba
11276   0: ba   0: ba
11277    
11278    /^.*?(?(?=a)a(*THEN)b|c)/
11279        ac
11280    No match
11281    
11282    /^.*?(?(?=a)a(*THEN)b)c/
11283        ac
11284    No match
11285    
11286    /^.*?(a(*THEN)b)c/
11287        aabc
11288    No match
11289    
11290    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11291        aabc
11292     0: aabc
11293    
11294    /^.*?(a(*THEN)b|z)c/
11295        aabc
11296     0: aabc
11297     1: ab
11298    
11299    /^.*?(z|a(*THEN)b)c/
11300        aabc
11301     0: aabc
11302     1: ab
11303    
11304  /-- --/  /-- --/
11305    
11306  /-- 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 11312  No match
11312   1: C   1: C
11313  MK: A  MK: A
11314      D      D
11315  No match  No match, mark = A
11316    
11317  /(*:A)A+(*SKIP:A)(B|Z)/KS  /(*:A)A+(*SKIP:A)(B|Z)/KS
11318      AAAC      AAAC
11319  No match  No match, mark = A
11320    
11321  /-- --/  /-- --/
11322    
# Line 11866  No match Line 11345  No match
11345   1: a   1: a
11346   1+ a%   1+ a%
11347    
11348  /(a)b|ac/++  /(a)b|ac/++SS
11349      ac\O3      ac\O3
 Matched, but too many substrings  
11350   0: ac   0: ac
11351   0+   0+
11352    
11353    /(a)(b)x|abc/++
11354         abc\O6
11355     0: abc
11356     0+
11357    
11358  /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI  /(a)bc|(a)(b)\2/
11359        \O3abc
11360    Matched, but too many substrings
11361     0: abc
11362        \O4abc
11363    Matched, but too many substrings
11364     0: abc
11365    
11366    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11367  Capturing subpattern count = 2  Capturing subpattern count = 2
11368  No options  No options
11369  No first char  No first char
11370  No need char  No need char
11371  Subject length lower bound = 1  Subject length lower bound = 1
11372  No set of starting bytes  No starting char list
11373    
11374  /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI  /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11375  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 11886  No options Line 11377  No options
11377  No first char  No first char
11378  No need char  No need char
11379  Subject length lower bound = 3  Subject length lower bound = 3
11380  Starting byte set: a b  Starting chars: a b
11381    
11382  /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI  /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11383  Capturing subpattern count = 2  Capturing subpattern count = 2
# Line 11894  No options Line 11385  No options
11385  No first char  No first char
11386  No need char  No need char
11387  Subject length lower bound = 4  Subject length lower bound = 4
11388  Starting byte set: a b  Starting chars: a b
11389    
11390  /(abc)(?1)/SI  /(abc)(?1)/SI
11391  Capturing subpattern count = 1  Capturing subpattern count = 1
# Line 11902  No options Line 11393  No options
11393  First char = 'a'  First char = 'a'
11394  Need char = 'c'  Need char = 'c'
11395  Subject length lower bound = 6  Subject length lower bound = 6
11396  No set of starting bytes  No starting char list
11397    
11398  /^(?>a)++/  /^(?>a)++/
11399      aa\M      aa\M
11400  Minimum match() limit = 5  Minimum match() limit = 5
11401  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11402   0: aa   0: aa
11403      aaaaaaaaa\M      aaaaaaaaa\M
11404  Minimum match() limit = 12  Minimum match() limit = 12
11405  Minimum match() recursion limit = 3  Minimum match() recursion limit = 2
11406   0: aaaaaaaaa   0: aaaaaaaaa
11407    
11408  /(a)(?1)++/  /(a)(?1)++/
11409      aa\M      aa\M
11410  Minimum match() limit = 7  Minimum match() limit = 7
11411  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11412   0: aa   0: aa
11413   1: a   1: a
11414      aaaaaaaaa\M      aaaaaaaaa\M
11415  Minimum match() limit = 21  Minimum match() limit = 21
11416  Minimum match() recursion limit = 5  Minimum match() recursion limit = 4
11417   0: aaaaaaaaa   0: aaaaaaaaa
11418   1: a   1: a
11419    
11420    /(?:(foo)|(bar)|(baz))X/SS=
11421        bazfooX
11422     0: fooX
11423     1: foo
11424     2: <unset>
11425     3: <unset>
11426        foobazbarX
11427     0: barX
11428     1: <unset>
11429     2: bar
11430     3: <unset>
11431        barfooX
11432     0: fooX
11433     1: foo
11434     2: <unset>
11435     3: <unset>
11436        bazX
11437     0: bazX
11438     1: <unset>
11439     2: <unset>
11440     3: baz
11441        foobarbazX
11442     0: bazX
11443     1: <unset>
11444     2: <unset>
11445     3: baz
11446        bazfooX\O0
11447    Matched, but too many substrings
11448        bazfooX\O2
11449    Matched, but too many substrings
11450     0: fooX
11451        bazfooX\O4
11452    Matched, but too many substrings
11453     0: fooX
11454     1: <unset>
11455        bazfooX\O6
11456    Matched, but too many substrings
11457     0: fooX
11458     1: foo
11459     2: <unset>
11460        bazfooX\O8
11461    Matched, but too many substrings
11462     0: fooX
11463     1: foo
11464     2: <unset>
11465     3: <unset>
11466        bazfooX\O10
11467     0: fooX
11468     1: foo
11469     2: <unset>
11470     3: <unset>
11471    
11472    /(?=abc){3}abc/BZ
11473    ------------------------------------------------------------------
11474            Bra
11475            Assert
11476            abc
11477            Ket
11478            abc
11479            Ket
11480            End
11481    ------------------------------------------------------------------
11482    
11483    /(?=abc)+abc/BZ
11484    ------------------------------------------------------------------
11485            Bra
11486            Assert
11487            abc
11488            Ket
11489            abc
11490            Ket
11491            End
11492    ------------------------------------------------------------------
11493    
11494    /(?=abc)++abc/BZ
11495    ------------------------------------------------------------------
11496            Bra
11497            Assert
11498            abc
11499            Ket
11500            abc
11501            Ket
11502            End
11503    ------------------------------------------------------------------
11504    
11505    /(?=abc){0}xyz/BZ
11506    ------------------------------------------------------------------
11507            Bra
11508            Skip zero
11509            Assert
11510            abc
11511            Ket
11512            xyz
11513            Ket
11514            End
11515    ------------------------------------------------------------------
11516    
11517    /(?=(a))?./BZ
11518    ------------------------------------------------------------------
11519            Bra
11520            Brazero
11521            Assert
11522            CBra 1
11523            a
11524            Ket
11525            Ket
11526            Any
11527            Ket
11528            End
11529    ------------------------------------------------------------------
11530    
11531    /(?=(a))??./BZ
11532    ------------------------------------------------------------------
11533            Bra
11534            Braminzero
11535            Assert
11536            CBra 1
11537            a
11538            Ket
11539            Ket
11540            Any
11541            Ket
11542            End
11543    ------------------------------------------------------------------
11544    
11545    /^(?=(a)){0}b(?1)/BZ
11546    ------------------------------------------------------------------
11547            Bra
11548            ^
11549            Skip zero
11550            Assert
11551            CBra 1
11552            a
11553            Ket
11554            Ket
11555            b
11556            Recurse
11557            Ket
11558            End
11559    ------------------------------------------------------------------
11560    
11561    /(?(DEFINE)(a))?b(?1)/BZ
11562    ------------------------------------------------------------------
11563            Bra
11564            Cond
11565            Cond def
11566            CBra 1
11567            a
11568            Ket
11569            Ket
11570            b
11571            Recurse
11572            Ket
11573            End
11574    ------------------------------------------------------------------
11575    
11576    /^(?=(?1))?[az]([abc])d/BZ
11577    ------------------------------------------------------------------
11578            Bra
11579            ^
11580            Brazero
11581            Assert
11582            Recurse
11583            Ket
11584            [az]
11585            CBra 1
11586            [a-c]
11587            Ket
11588            d
11589            Ket
11590            End
11591    ------------------------------------------------------------------
11592    
11593    /^(?!a){0}\w+/BZ
11594    ------------------------------------------------------------------
11595            Bra
11596            ^
11597            Skip zero
11598            Assert not
11599            a
11600            Ket
11601            \w++
11602            Ket
11603            End
11604    ------------------------------------------------------------------
11605    
11606    /(?<=(abc))?xyz/BZ
11607    ------------------------------------------------------------------
11608            Bra
11609            Brazero
11610            AssertB
11611            Reverse
11612            CBra 1
11613            abc
11614            Ket
11615            Ket
11616            xyz
11617            Ket
11618            End
11619    ------------------------------------------------------------------
11620    
11621    /[:a[:abc]b:]/BZ
11622    ------------------------------------------------------------------
11623            Bra
11624            [:[a-c]
11625            b:]
11626            Ket
11627            End
11628    ------------------------------------------------------------------
11629    
11630    /((?2))((?1))/SS
11631        abc
11632    Error -26 (nested recursion at the same subject position)
11633    
11634    /((?(R2)a+|(?1)b))/SS
11635        aaaabcde
11636    Error -26 (nested recursion at the same subject position)
11637    
11638    /(?(R)a*(?1)|((?R))b)/SS
11639        aaaabcde
11640    Error -26 (nested recursion at the same subject position)
11641    
11642    /(a+|(?R)b)/
11643    Failed: recursive call could loop indefinitely at offset 7
11644    
11645    /^(a(*:A)(d|e(*:B))z|aeq)/C
11646        adz
11647    --->adz
11648     +0 ^       ^
11649     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11650     +2 ^       a
11651     +3 ^^      (*:A)
11652     +8 ^^      (d|e(*:B))
11653    Latest Mark: A
11654     +9 ^^      d
11655    +10 ^ ^     |
11656    +18 ^ ^     z
11657    +19 ^  ^    |
11658    +24 ^  ^
11659     0: adz
11660     1: adz
11661     2: d
11662        aez
11663    --->aez
11664     +0 ^       ^
11665     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11666     +2 ^       a
11667     +3 ^^      (*:A)
11668     +8 ^^      (d|e(*:B))
11669    Latest Mark: A
11670     +9 ^^      d
11671    +11 ^^      e
11672    +12 ^ ^     (*:B)
11673    +17 ^ ^     )
11674    Latest Mark: B
11675    +18 ^ ^     z
11676    +19 ^  ^    |
11677    +24 ^  ^
11678     0: aez
11679     1: aez
11680     2: e
11681        aeqwerty
11682    --->aeqwerty
11683     +0 ^            ^
11684     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11685     +2 ^            a
11686     +3 ^^           (*:A)
11687     +8 ^^           (d|e(*:B))
11688    Latest Mark: A
11689     +9 ^^           d
11690    +11 ^^           e
11691    +12 ^ ^          (*:B)
11692    +17 ^ ^          )
11693    Latest Mark: B
11694    +18 ^ ^          z
11695    +20 ^            a
11696    +21 ^^           e
11697    +22 ^ ^          q
11698    +23 ^  ^         )
11699    +24 ^  ^
11700     0: aeq
11701     1: aeq
11702    
11703    /.(*F)/
11704        \P\Pabc
11705    No match
11706    
11707    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11708    Capturing subpattern count = 0
11709    Max lookbehind = 1
11710    No options
11711    First char = 't'
11712    Need char = 't'
11713    Subject length lower bound = 18
11714    No starting char list
11715    
11716    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11717    Capturing subpattern count = 0
11718    Max lookbehind = 1
11719    No options
11720    No first char
11721    No need char
11722    Subject length lower bound = 8
11723    Starting chars: < o t u
11724    
11725    /a(*SKIP)c|b(*ACCEPT)|/+S!I
11726    Capturing subpattern count = 0
11727    May match empty string
11728    No options
11729    No first char
11730    No need char
11731    Subject length lower bound = -1
11732    No starting char list
11733        a
11734     0:
11735     0+
11736    
11737    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11738    Capturing subpattern count = 0
11739    No options
11740    No first char
11741    No need char
11742    Subject length lower bound = -1
11743    Starting chars: a b x
11744        ax
11745     0: x
11746    
11747    'a*(*ACCEPT)b'+
11748        \N\N
11749    No match
11750        abc\N\N
11751     0: a
11752     0+ bc
11753        bbb\N\N
11754     0:
11755     0+ bb
11756    
11757    /(*ACCEPT)a/+I
11758    Capturing subpattern count = 0
11759    No options
11760    No first char
11761    No need char
11762        bax
11763     0:
11764     0+ bax
11765    
11766    /z(*ACCEPT)a/+I
11767    Capturing subpattern count = 0
11768    No options
11769    First char = 'z'
11770    No need char
11771        baxzbx
11772     0: z
11773     0+ bx
11774    
11775    /a(?:.)*?a/ims
11776        \Mabbbbbbbbbbbbbbbbbbbbba
11777    Minimum match() limit = 65
11778    Minimum match() recursion limit = 2
11779     0: abbbbbbbbbbbbbbbbbbbbba
11780    
11781    /a(?:.(*THEN))*?a/ims
11782        \Mabbbbbbbbbbbbbbbbbbbbba
11783    Minimum match() limit = 86
11784    Minimum match() recursion limit = 45
11785     0: abbbbbbbbbbbbbbbbbbbbba
11786    
11787    /a(?:.(*THEN:ABC))*?a/ims
11788        \Mabbbbbbbbbbbbbbbbbbbbba
11789    Minimum match() limit = 86
11790    Minimum match() recursion limit = 45
11791     0: abbbbbbbbbbbbbbbbbbbbba
11792    
11793    /^(?>a+)(?>(z+))\w/BZ
11794    ------------------------------------------------------------------
11795            Bra
11796            ^
11797            Once_NC
11798            a++
11799            Ket
11800            Once
11801            CBra 1
11802            z++
11803            Ket
11804            Ket
11805            \w
11806            Ket
11807            End
11808    ------------------------------------------------------------------
11809        aaaazzzzb
11810     0: aaaazzzzb
11811     1: zzzz
11812        ** Failers
11813    No match
11814        aazz
11815    No match
11816    
11817    /(.)(\1|a(?2))/
11818        bab
11819     0: bab
11820     1: b
11821     2: ab
11822    
11823    /\1|(.)(?R)\1/
11824        cbbbc
11825     0: cbbbc
11826     1: c
11827    
11828    /(.)((?(1)c|a)|a(?2))/
11829        baa
11830    No match
11831    
11832    /(?P<abn>(?P=abn)xxx)/BZ
11833    ------------------------------------------------------------------
11834            Bra
11835            Once
11836            CBra 1
11837            \1
11838            xxx
11839            Ket
11840            Ket
11841            Ket
11842            End
11843    ------------------------------------------------------------------
11844    
11845    /(a\1z)/BZ
11846    ------------------------------------------------------------------
11847            Bra
11848            Once
11849            CBra 1
11850            a
11851            \1
11852            z
11853            Ket
11854            Ket
11855            Ket
11856            End
11857    ------------------------------------------------------------------
11858    
11859    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11860         \Maabbccddee
11861    Minimum match() limit = 7
11862    Minimum match() recursion limit = 2
11863     0: aabbccddee
11864    
11865    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11866         \Maabbccddee
11867    Minimum match() limit = 17
11868    Minimum match() recursion limit = 16
11869     0: aabbccddee
11870     1: aa
11871     2: bb
11872     3: cc
11873     4: dd
11874     5: ee
11875    
11876    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11877         \Maabbccddee
11878    Minimum match() limit = 13
11879    Minimum match() recursion limit = 10
11880     0: aabbccddee
11881     1: aa
11882     2: cc
11883     3: ee
11884    
11885    /^a\x41z/<JS>
11886        aAz
11887     0: aAz
11888        *** Failers
11889    No match
11890        ax41z
11891    No match
11892    
11893    /^a[m\x41]z/<JS>
11894        aAz
11895     0: aAz
11896    
11897    /^a\x1z/<JS>
11898        ax1z
11899     0: ax1z
11900    
11901    /^a\u0041z/<JS>
11902        aAz
11903     0: aAz
11904        *** Failers
11905    No match
11906        au0041z
11907    No match
11908    
11909    /^a[m\u0041]z/<JS>
11910        aAz
11911     0: aAz
11912    
11913    /^a\u041z/<JS>
11914        au041z
11915     0: au041z
11916        *** Failers
11917    No match
11918        aAz
11919    No match
11920    
11921    /^a\U0041z/<JS>
11922        aU0041z
11923     0: aU0041z
11924        *** Failers
11925    No match
11926        aAz
11927    No match
11928    
11929    /(?(?=c)c|d)++Y/BZ
11930    ------------------------------------------------------------------
11931            Bra
11932            BraPos
11933            Cond
11934            Assert
11935            c
11936            Ket
11937            c
11938            Alt
11939            d
11940            Ket
11941            KetRpos
11942            Y
11943            Ket
11944            End
11945    ------------------------------------------------------------------
11946    
11947    /(?(?=c)c|d)*+Y/BZ
11948    ------------------------------------------------------------------
11949            Bra
11950            Braposzero
11951            BraPos
11952            Cond
11953            Assert
11954            c
11955            Ket
11956            c
11957            Alt
11958            d
11959            Ket
11960            KetRpos
11961            Y
11962            Ket
11963            End
11964    ------------------------------------------------------------------
11965    
11966    /a[\NB]c/
11967    Failed: \N is not supported in a class at offset 3
11968    
11969    /a[B-\Nc]/
11970    Failed: invalid range in character class at offset 5
11971    
11972    /a[B\Nc]/
11973    Failed: \N is not supported in a class at offset 4
11974    
11975    /(a)(?2){0,1999}?(b)/
11976    
11977    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11978    
11979    /--- This test, with something more complicated than individual letters, causes
11980    different behaviour in Perl. Perhaps it disables some optimization; no tag is
11981    passed back for the failures, whereas in PCRE there is a tag. ---/
11982    
11983    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11984        AABC
11985     0: AB
11986     1: A
11987     2: B
11988    MK: A
11989        XXYZ
11990     0: XXY
11991     1: <unset>
11992     2: <unset>
11993     3: X
11994     4: X
11995     5: Y
11996    MK: B
11997        ** Failers
11998    No match
11999        XAQQ
12000    No match, mark = A
12001        XAQQXZZ
12002    No match, mark = A
12003        AXQQQ
12004    No match, mark = A
12005        AXXQQQ
12006    No match, mark = B
12007    
12008    /-- Perl doesn't give marks for these, though it does if the alternatives are
12009    replaced by single letters. --/
12010    
12011    /(b|q)(*:m)f|a(*:n)w/K
12012        aw
12013     0: aw
12014    MK: n
12015        ** Failers
12016    No match, mark = n
12017        abc
12018    No match, mark = m
12019    
12020    /(q|b)(*:m)f|a(*:n)w/K
12021        aw
12022     0: aw
12023    MK: n
12024        ** Failers
12025    No match, mark = n
12026        abc
12027    No match, mark = m
12028    
12029    /-- After a partial match, the behaviour is as for a failure. --/
12030    
12031    /^a(*:X)bcde/K
12032       abc\P
12033    Partial match, mark=X: abc
12034    
12035    /-- These are here because Perl doesn't return a mark, except for the first --/
12036    
12037    /(?=(*:x))(q|)/K+
12038        abc
12039     0:
12040     0+ abc
12041     1:
12042    MK: x
12043    
12044    /(?=(*:x))((*:y)q|)/K+
12045        abc
12046     0:
12047     0+ abc
12048     1:
12049    MK: x
12050    
12051    /(?=(*:x))(?:(*:y)q|)/K+
12052        abc
12053     0:
12054     0+ abc
12055    MK: x
12056    
12057    /(?=(*:x))(?>(*:y)q|)/K+
12058        abc
12059     0:
12060     0+ abc
12061    MK: x
12062    
12063    /(?=a(*:x))(?!a(*:y)c)/K+
12064        ab
12065     0:
12066     0+ ab
12067    MK: x
12068    
12069    /(?=a(*:x))(?=a(*:y)c|)/K+
12070        ab
12071     0:
12072     0+ ab
12073    MK: x
12074    
12075    /(..)\1/
12076        ab\P
12077    Partial match: ab
12078        aba\P
12079    Partial match: aba
12080        abab\P
12081     0: abab
12082     1: ab
12083    
12084    /(..)\1/i
12085        ab\P
12086    Partial match: ab
12087        abA\P
12088    Partial match: abA
12089        aBAb\P
12090     0: aBAb
12091     1: aB
12092    
12093    /(..)\1{2,}/
12094        ab\P
12095    Partial match: ab
12096        aba\P
12097    Partial match: aba
12098        abab\P
12099    Partial match: abab
12100        ababa\P
12101    Partial match: ababa
12102        ababab\P
12103     0: ababab
12104     1: ab
12105        ababab\P\P
12106    Partial match: ababab
12107        abababa\P
12108     0: ababab
12109     1: ab
12110        abababa\P\P
12111    Partial match: abababa
12112    
12113    /(..)\1{2,}/i
12114        ab\P
12115    Partial match: ab
12116        aBa\P
12117    Partial match: aBa
12118        aBAb\P
12119    Partial match: aBAb
12120        AbaBA\P
12121    Partial match: AbaBA
12122        abABAb\P
12123     0: abABAb
12124     1: ab
12125        aBAbaB\P\P
12126    Partial match: aBAbaB
12127        abABabA\P
12128     0: abABab
12129     1: ab
12130        abaBABa\P\P
12131    Partial match: abaBABa
12132    
12133    /(..)\1{2,}?x/i
12134        ab\P
12135    Partial match: ab
12136        abA\P
12137    Partial match: abA
12138        aBAb\P
12139    Partial match: aBAb
12140        abaBA\P
12141    Partial match: abaBA
12142        abAbaB\P
12143    Partial match: abAbaB
12144        abaBabA\P
12145    Partial match: abaBabA
12146        abAbABaBx\P
12147     0: abAbABaBx
12148     1: ab
12149    
12150    /^(..)\1/
12151        aba\P
12152    Partial match: aba
12153    
12154    /^(..)\1{2,3}x/
12155        aba\P
12156    Partial match: aba
12157        ababa\P
12158    Partial match: ababa
12159        ababa\P\P
12160    Partial match: ababa
12161        abababx
12162     0: abababx
12163     1: ab
12164        ababababx
12165     0: ababababx
12166     1: ab
12167    
12168    /^(..)\1{2,3}?x/
12169        aba\P
12170    Partial match: aba
12171        ababa\P
12172    Partial match: ababa
12173        ababa\P\P
12174    Partial match: ababa
12175        abababx
12176     0: abababx
12177     1: ab
12178        ababababx
12179     0: ababababx
12180     1: ab
12181    
12182    /^(..)(\1{2,3})ab/
12183        abababab
12184     0: abababab
12185     1: ab
12186     2: abab
12187    
12188    /^\R/
12189        \r\P
12190     0: \x0d
12191        \r\P\P
12192    Partial match: \x0d
12193    
12194    /^\R{2,3}x/
12195        \r\P
12196    Partial match: \x0d
12197        \r\P\P
12198    Partial match: \x0d
12199        \r\r\P
12200    Partial match: \x0d\x0d
12201        \r\r\P\P
12202    Partial match: \x0d\x0d
12203        \r\r\r\P
12204    Partial match: \x0d\x0d\x0d
12205        \r\r\r\P\P
12206    Partial match: \x0d\x0d\x0d
12207        \r\rx
12208     0: \x0d\x0dx
12209        \r\r\rx
12210     0: \x0d\x0d\x0dx
12211    
12212    /^\R{2,3}?x/
12213        \r\P
12214    Partial match: \x0d
12215        \r\P\P
12216    Partial match: \x0d
12217        \r\r\P
12218    Partial match: \x0d\x0d
12219        \r\r\P\P
12220    Partial match: \x0d\x0d
12221        \r\r\r\P
12222    Partial match: \x0d\x0d\x0d
12223        \r\r\r\P\P
12224    Partial match: \x0d\x0d\x0d
12225        \r\rx
12226     0: \x0d\x0dx
12227        \r\r\rx
12228     0: \x0d\x0d\x0dx
12229    
12230    /^\R?x/
12231        \r\P
12232    Partial match: \x0d
12233        \r\P\P
12234    Partial match: \x0d
12235        x
12236     0: x
12237        \rx
12238     0: \x0dx
12239    
12240    /^\R+x/
12241        \r\P
12242    Partial match: \x0d
12243        \r\P\P
12244    Partial match: \x0d
12245        \r\n\P
12246    Partial match: \x0d\x0a
12247        \r\n\P\P
12248    Partial match: \x0d\x0a
12249        \rx
12250     0: \x0dx
12251    
12252    /^a$/<CRLF>
12253        a\r\P
12254    Partial match: a\x0d
12255        a\r\P\P
12256    Partial match: a\x0d
12257    
12258    /^a$/m<CRLF>
12259        a\r\P
12260    Partial match: a\x0d
12261        a\r\P\P
12262    Partial match: a\x0d
12263    
12264    /^(a$|a\r)/<CRLF>
12265        a\r\P
12266     0: a\x0d
12267     1: a\x0d
12268        a\r\P\P
12269    Partial match: a\x0d
12270    
12271    /^(a$|a\r)/m<CRLF>
12272        a\r\P
12273     0: a\x0d
12274     1: a\x0d
12275        a\r\P\P
12276    Partial match: a\x0d
12277    
12278    /./<CRLF>
12279        \r\P
12280     0: \x0d
12281        \r\P\P
12282    Partial match: \x0d
12283    
12284    /.{2,3}/<CRLF>
12285        \r\P
12286    Partial match: \x0d
12287        \r\P\P
12288    Partial match: \x0d
12289        \r\r\P
12290     0: \x0d\x0d
12291        \r\r\P\P
12292    Partial match: \x0d\x0d
12293        \r\r\r\P
12294     0: \x0d\x0d\x0d
12295        \r\r\r\P\P
12296    Partial match: \x0d\x0d\x0d
12297    
12298    /.{2,3}?/<CRLF>
12299        \r\P
12300    Partial match: \x0d
12301        \r\P\P
12302    Partial match: \x0d
12303        \r\r\P
12304     0: \x0d\x0d
12305        \r\r\P\P
12306    Partial match: \x0d\x0d
12307        \r\r\r\P
12308     0: \x0d\x0d
12309        \r\r\r\P\P
12310     0: \x0d\x0d
12311    
12312    "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12313        ABCDGHI\O03
12314    Matched, but too many substrings
12315     0: ABCD
12316    
12317    /-- These are all run as real matches in test 1; here we are just checking the
12318    settings of the anchored and startline bits. --/
12319    
12320    /(?>.*?a)(?<=ba)/I
12321    Capturing subpattern count = 0
12322    Max lookbehind = 2
12323    No options
12324    No first char
12325    Need char = 'a'
12326    
12327    /(?:.*?a)(?<=ba)/I
12328    Capturing subpattern count = 0
12329    Max lookbehind = 2
12330    No options
12331    First char at start or follows newline
12332    Need char = 'a'
12333    
12334    /.*?a(*PRUNE)b/I
12335    Capturing subpattern count = 0
12336    No options
12337    No first char
12338    Need char = 'b'
12339    
12340    /.*?a(*PRUNE)b/sI
12341    Capturing subpattern count = 0
12342    Options: dotall
12343    No first char
12344    Need char = 'b'
12345    
12346    /^a(*PRUNE)b/sI
12347    Capturing subpattern count = 0
12348    Options: anchored dotall
12349    No first char
12350    No need char
12351    
12352    /.*?a(*SKIP)b/I
12353    Capturing subpattern count = 0
12354    No options
12355    No first char
12356    Need char = 'b'
12357    
12358    /(?>.*?a)b/sI
12359    Capturing subpattern count = 0
12360    Options: dotall
12361    No first char
12362    Need char = 'b'
12363    
12364    /(?>.*?a)b/I
12365    Capturing subpattern count = 0
12366    No options
12367    No first char
12368    Need char = 'b'
12369    
12370    /(?>^a)b/sI
12371    Capturing subpattern count = 0
12372    Options: anchored dotall
12373    No first char
12374    No need char
12375    
12376    /(?>.*?)(?<=(abcd)|(wxyz))/I
12377    Capturing subpattern count = 2
12378    Max lookbehind = 4
12379    May match empty string
12380    No options
12381    No first char
12382    No need char
12383    
12384    /(?>.*)(?<=(abcd)|(wxyz))/I
12385    Capturing subpattern count = 2
12386    Max lookbehind = 4
12387    May match empty string
12388    No options
12389    No first char
12390    No need char
12391    
12392    "(?>.*)foo"I
12393    Capturing subpattern count = 0
12394    No options
12395    No first char
12396    Need char = 'o'
12397    
12398    "(?>.*?)foo"I
12399    Capturing subpattern count = 0
12400    No options
12401    No first char
12402    Need char = 'o'
12403    
12404    /(?>^abc)/mI
12405    Capturing subpattern count = 0
12406    Options: multiline
12407    First char at start or follows newline
12408    Need char = 'c'
12409    
12410    /(?>.*abc)/mI
12411    Capturing subpattern count = 0
12412    Options: multiline
12413    No first char
12414    Need char = 'c'
12415    
12416    /(?:.*abc)/mI
12417    Capturing subpattern count = 0
12418    Options: multiline
12419    First char at start or follows newline
12420    Need char = 'c'
12421    
12422    /-- Check PCRE_STUDY_EXTRA_NEEDED --/
12423    
12424    /.?/S-I
12425    Capturing subpattern count = 0
12426    May match empty string
12427    No options
12428    No first char
12429    No need char
12430    Study returned NULL
12431    
12432    /.?/S!I
12433    Capturing subpattern count = 0
12434    May match empty string
12435    No options
12436    No first char
12437    No need char
12438    Subject length lower bound = -1
12439    No starting char list
12440    
12441    /(?:(a)+(?C1)bb|aa(?C2)b)/
12442        aab\C+
12443    Callout 1: last capture = 1
12444     0: <unset>
12445     1: a
12446    --->aab
12447        ^ ^     b
12448    Callout 1: last capture = 1
12449     0: <unset>
12450     1: a
12451    --->aab
12452        ^^      b
12453    Callout 2: last capture = -1
12454     0: <unset>
12455    --->aab
12456        ^ ^     b
12457     0: aab
12458    
12459    /(?:(a)++(?C1)bb|aa(?C2)b)/
12460        aab\C+
12461    Callout 1: last capture = 1
12462     0: <unset>
12463     1: a
12464    --->aab
12465        ^ ^     b
12466    Callout 2: last capture = -1
12467     0: <unset>
12468    --->aab
12469        ^ ^     b
12470     0: aab
12471    
12472    /(?:(?>(a))(?C1)bb|aa(?C2)b)/
12473        aab\C+
12474    Callout 1: last capture = 1
12475     0: <unset>
12476     1: a
12477    --->aab
12478        ^^      b
12479    Callout 2: last capture = -1
12480     0: <unset>
12481    --->aab
12482        ^ ^     b
12483     0: aab
12484    
12485    /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
12486        aab\C+
12487    Callout 1: last capture = -1
12488     0: <unset>
12489    --->aab
12490        ^^      x
12491    Callout 1: last capture = -1
12492     0: <unset>
12493    --->aab
12494         ^^     x
12495    Callout 2: last capture = -1
12496     0: <unset>
12497    --->aab
12498         ^ ^    )
12499     0: ab
12500    
12501    /(?1)(?C1)((a)(?C2)){0}/
12502        aab\C+
12503    Callout 2: last capture = 2
12504     0: <unset>
12505     1: <unset>
12506     2: a
12507    --->aab
12508        ^^      )
12509    Callout 1: last capture = -1
12510     0: <unset>
12511    --->aab
12512        ^^      ((a)(?C2)){0}
12513     0: a
12514    
12515    /(?:(a)+(?C1)bb|aa(?C2)b)++/
12516        aab\C+
12517    Callout 1: last capture = 1
12518     0: <unset>
12519     1: a
12520    --->aab
12521        ^ ^     b
12522    Callout 1: last capture = 1
12523     0: <unset>
12524     1: a
12525    --->aab
12526        ^^      b
12527    Callout 2: last capture = -1
12528     0: <unset>
12529    --->aab
12530        ^ ^     b
12531     0: aab
12532        aab\C+\O2
12533    Callout 1: last capture = 1
12534     0: <unset>
12535    --->aab
12536        ^ ^     b
12537    Callout 1: last capture = 1
12538     0: <unset>
12539    --->aab
12540        ^^      b
12541    Callout 2: last capture = -1
12542     0: <unset>
12543    --->aab
12544        ^ ^     b
12545     0: aab
12546    
12547    /(ab)x|ab/
12548        ab\O3
12549     0: ab
12550        ab\O2
12551     0: ab
12552    
12553    /(ab)/
12554        ab\O3
12555    Matched, but too many substrings
12556     0: ab
12557        ab\O2
12558    Matched, but too many substrings
12559     0: ab
12560    
12561    /(?<=123)(*MARK:xx)abc/K
12562        xxxx123a\P\P
12563    Partial match at offset 7, mark=xx: 123a
12564        xxxx123a\P
12565    Partial match at offset 7, mark=xx: 123a
12566    
12567    /123\Kabc/
12568        xxxx123a\P\P
12569    Partial match: 123a
12570        xxxx123a\P
12571    Partial match: 123a
12572    
12573    /^(?(?=a)aa|bb)/C
12574        bb
12575    --->bb
12576     +0 ^      ^
12577     +1 ^      (?(?=a)aa|bb)
12578     +3 ^      (?=a)
12579