/[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 41 by nigel, Sat Feb 24 21:39:17 2007 UTC revision 91 by nigel, Sat Feb 24 21:41:34 2007 UTC
# Line 1  Line 1 
 PCRE version 2.08 31-Aug-1999  
   
1  /(a)b|/  /(a)b|/
2  Identifying subpattern count = 1  Capturing subpattern count = 1
3  No options  No options
4  No first char  No first char
5  No req char  No need char
6    
7  /abc/  /abc/
8  Identifying subpattern count = 0  Capturing subpattern count = 0
9  No options  No options
10  First char = 'a'  First char = 'a'
11  Req char = 'c'  Need char = 'c'
12      abc      abc
13   0: abc   0: abc
14      defabc      defabc
# Line 25  No match Line 23  No match
23  No match  No match
24    
25  /^abc/  /^abc/
26  Identifying subpattern count = 0  Capturing subpattern count = 0
27  Options: anchored  Options: anchored
28  No first char  No first char
29  Req char = 'c'  No need char
30      abc      abc
31   0: abc   0: abc
32      \Aabc      \Aabc
# Line 41  No match Line 39  No match
39  No match  No match
40    
41  /a+bc/  /a+bc/
42  Identifying subpattern count = 0  Capturing subpattern count = 0
43    Partial matching not supported
44  No options  No options
45  First char = 'a'  First char = 'a'
46  Req char = 'c'  Need char = 'c'
47    
48  /a*bc/  /a*bc/
49  Identifying subpattern count = 0  Capturing subpattern count = 0
50    Partial matching not supported
51  No options  No options
52  No first char  No first char
53  Req char = 'c'  Need char = 'c'
54    
55  /a{3}bc/  /a{3}bc/
56  Identifying subpattern count = 0  Capturing subpattern count = 0
57    Partial matching not supported
58  No options  No options
59  First char = 'a'  First char = 'a'
60  Req char = 'c'  Need char = 'c'
61    
62  /(abc|a+z)/  /(abc|a+z)/
63  Identifying subpattern count = 1  Capturing subpattern count = 1
64    Partial matching not supported
65  No options  No options
66  First char = 'a'  First char = 'a'
67  No req char  No need char
68    
69  /^abc$/  /^abc$/
70  Identifying subpattern count = 0  Capturing subpattern count = 0
71  Options: anchored  Options: anchored
72  No first char  No first char
73  Req char = 'c'  No need char
74      abc      abc
75   0: abc   0: abc
76      *** Failers      *** Failers
# Line 91  Failed: number too big in {} quantifier Line 93  Failed: number too big in {} quantifier
93  /[abcd/  /[abcd/
94  Failed: missing terminating ] for character class at offset 5  Failed: missing terminating ] for character class at offset 5
95    
96  /[\B]/  /(?X)[\B]/
97  Failed: invalid escape sequence in character class at offset 2  Failed: invalid escape sequence in character class at offset 6
   
 /[a-\w]/  
 Failed: invalid escape sequence in character class at offset 4  
98    
99  /[z-a]/  /[z-a]/
100  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
# Line 113  Failed: missing ) after comment at offse Line 112  Failed: missing ) after comment at offse
112  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? at offset 2
113    
114  /.*b/  /.*b/
115  Identifying subpattern count = 0  Capturing subpattern count = 0
116    Partial matching not supported
117  No options  No options
118  First char at start or follows \n  First char at start or follows newline
119  Req char = 'b'  Need char = 'b'
120    
121  /.*?b/  /.*?b/
122  Identifying subpattern count = 0  Capturing subpattern count = 0
123    Partial matching not supported
124  No options  No options
125  First char at start or follows \n  First char at start or follows newline
126  Req char = 'b'  Need char = 'b'
127    
128  /cat|dog|elephant/  /cat|dog|elephant/
129  Identifying subpattern count = 0  Capturing subpattern count = 0
130  No options  No options
131  No first char  No first char
132  No req char  No need char
133      this sentence eventually mentions a cat      this sentence eventually mentions a cat
134   0: cat   0: cat
135      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
136   0: elephant   0: elephant
137    
138  /cat|dog|elephant/S  /cat|dog|elephant/S
139  Identifying subpattern count = 0  Capturing subpattern count = 0
140  No options  No options
141  No first char  No first char
142  No req char  No need char
143  Starting character set: c d e  Starting byte set: c d e
144      this sentence eventually mentions a cat      this sentence eventually mentions a cat
145   0: cat   0: cat
146      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
147   0: elephant   0: elephant
148    
149  /cat|dog|elephant/iS  /cat|dog|elephant/iS
150  Identifying subpattern count = 0  Capturing subpattern count = 0
151  Options: caseless  Options: caseless
152  No first char  No first char
153  No req char  No need char
154  Starting character set: C D E c d e  Starting byte set: C D E c d e
155      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
156   0: CAT   0: CAT
157      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
158   0: elephant   0: elephant
159    
160  /a|[bcd]/S  /a|[bcd]/S
161  Identifying subpattern count = 0  Capturing subpattern count = 0
162  No options  No options
163  No first char  No first char
164  No req char  No need char
165  Starting character set: a b c d  Starting byte set: a b c d
166    
167  /(a|[^\dZ])/S  /(a|[^\dZ])/S
168  Identifying subpattern count = 1  Capturing subpattern count = 1
169  No options  No options
170  No first char  No first char
171  No req char  No need char
172  Starting character set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
173    \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
174    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
175    ? @ 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 184  Starting character set: \x00 \x01 \x02 \ Line 185  Starting character set: \x00 \x01 \x02 \
185    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
186    
187  /(a|b)*[\s]/S  /(a|b)*[\s]/S
188  Identifying subpattern count = 1  Capturing subpattern count = 1
189  No options  No options
190  No first char  No first char
191  No req char  No need char
192  Starting character set: \x09 \x0a \x0b \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
193    
194  /(ab\2)/  /(ab\2)/
195  Failed: back reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
196    
197  /{4,5}abc/  /{4,5}abc/
198  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
199    
200  /(a)(b)(c)\2/  /(a)(b)(c)\2/
201  Identifying subpattern count = 3  Capturing subpattern count = 3
202    Max back reference = 2
203  No options  No options
204  First char = 'a'  First char = 'a'
205  Req char = 'c'  Need char = 'c'
206      abcb      abcb
207   0: abcb   0: abcb
208   1: a   1: a
# Line 227  Matched, but too many substrings Line 229  Matched, but too many substrings
229   3: c   3: c
230    
231  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/
232  Identifying subpattern count = 3  Capturing subpattern count = 3
233    Max back reference = 2
234  No options  No options
235  First char = 'a'  First char = 'a'
236  No req char  No need char
237      abc      abc
238   0: abc   0: abc
239   1: a   1: a
# Line 268  Matched, but too many substrings Line 271  Matched, but too many substrings
271   3: b   3: b
272    
273  /abc$/E  /abc$/E
274  Identifying subpattern count = 0  Capturing subpattern count = 0
275  Options: dollar_endonly  Options: dollar_endonly
276  First char = 'a'  First char = 'a'
277  Req char = 'c'  Need char = 'c'
278      abc      abc
279   0: abc   0: abc
280      *** Failers      *** Failers
# Line 282  No match Line 285  No match
285  No match  No match
286    
287  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
288  Failed: back reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
289    
290  /the quick brown fox/  /the quick brown fox/
291  Identifying subpattern count = 0  Capturing subpattern count = 0
292  No options  No options
293  First char = 't'  First char = 't'
294  Req char = 'x'  Need char = 'x'
295      the quick brown fox      the quick brown fox
296   0: the quick brown fox   0: the quick brown fox
297      this is a line with the quick brown fox      this is a line with the quick brown fox
298   0: the quick brown fox   0: the quick brown fox
299    
300  /the quick brown fox/A  /the quick brown fox/A
301  Identifying subpattern count = 0  Capturing subpattern count = 0
302  Options: anchored  Options: anchored
303  No first char  No first char
304  Req char = 'x'  No need char
305      the quick brown fox      the quick brown fox
306   0: the quick brown fox   0: the quick brown fox
307      *** Failers      *** Failers
# Line 310  No match Line 313  No match
313  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? at offset 4
314    
315  /^abc|def/  /^abc|def/
316  Identifying subpattern count = 0  Capturing subpattern count = 0
317  No options  No options
318  No first char  No first char
319  No req char  No need char
320      abcdef      abcdef
321   0: abc   0: abc
322      abcdef\B      abcdef\B
323   0: def   0: def
324    
325  /.*((abc)$|(def))/  /.*((abc)$|(def))/
326  Identifying subpattern count = 3  Capturing subpattern count = 3
327    Partial matching not supported
328  No options  No options
329  First char at start or follows \n  First char at start or follows newline
330  No req char  No need char
331      defabc      defabc
332   0: defabc   0: defabc
333   1: abc   1: abc
# Line 396  Failed: unmatched parentheses at offset Line 400  Failed: unmatched parentheses at offset
400  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
401    
402  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/
403  Identifying subpattern count = 0  Capturing subpattern count = 0
404    Partial matching not supported
405  No options  No options
406  No first char  No first char
407  No req char  No need char
408      co-processors, and for      co-processors, and for
409   0: -pr   0: -pr
410    
411  /<.*>/  /<.*>/
412  Identifying subpattern count = 0  Capturing subpattern count = 0
413    Partial matching not supported
414  No options  No options
415  First char = '<'  First char = '<'
416  Req char = '>'  Need char = '>'
417      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
418   0: <def>ghi<klm>   0: <def>ghi<klm>
419    
420  /<.*?>/  /<.*?>/
421  Identifying subpattern count = 0  Capturing subpattern count = 0
422    Partial matching not supported
423  No options  No options
424  First char = '<'  First char = '<'
425  Req char = '>'  Need char = '>'
426      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
427   0: <def>   0: <def>
428    
429  /<.*>/U  /<.*>/U
430  Identifying subpattern count = 0  Capturing subpattern count = 0
431    Partial matching not supported
432  Options: ungreedy  Options: ungreedy
433  First char = '<'  First char = '<'
434  Req char = '>'  Need char = '>'
435      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
436   0: <def>   0: <def>
437    
438  /<.*>(?U)/  /(?U)<.*>/
439  Identifying subpattern count = 0  Capturing subpattern count = 0
440    Partial matching not supported
441  Options: ungreedy  Options: ungreedy
442  First char = '<'  First char = '<'
443  Req char = '>'  Need char = '>'
444      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
445   0: <def>   0: <def>
446    
447  /<.*?>/U  /<.*?>/U
448  Identifying subpattern count = 0  Capturing subpattern count = 0
449    Partial matching not supported
450  Options: ungreedy  Options: ungreedy
451  First char = '<'  First char = '<'
452  Req char = '>'  Need char = '>'
453      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
454   0: <def>ghi<klm>   0: <def>ghi<klm>
455    
456  /={3,}/U  /={3,}/U
457  Identifying subpattern count = 0  Capturing subpattern count = 0
458    Partial matching not supported
459  Options: ungreedy  Options: ungreedy
460  First char = '='  First char = '='
461  Req char = '='  Need char = '='
462      abc========def      abc========def
463   0: ===   0: ===
464    
465  /(?U)={3,}?/  /(?U)={3,}?/
466  Identifying subpattern count = 0  Capturing subpattern count = 0
467    Partial matching not supported
468  Options: ungreedy  Options: ungreedy
469  First char = '='  First char = '='
470  Req char = '='  Need char = '='
471      abc========def      abc========def
472   0: ========   0: ========
473    
474  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/
475  Identifying subpattern count = 0  Capturing subpattern count = 0
476  No options  No options
477  First char = 'f'  First char = 'f'
478  Req char = 'o'  Need char = 'o'
479      foo      foo
480   0: foo   0: foo
481      catfoo      catfoo
# Line 485  Failed: lookbehind assertion is not fixe Line 497  Failed: lookbehind assertion is not fixe
497  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
498    
499  /(?i)abc/  /(?i)abc/
500  Identifying subpattern count = 0  Capturing subpattern count = 0
501  Options: caseless  Options: caseless
502  First char = 'a'  First char = 'a' (caseless)
503  Req char = 'c'  Need char = 'c' (caseless)
504    
505  /(a|(?m)a)/  /(a|(?m)a)/
506  Identifying subpattern count = 1  Capturing subpattern count = 1
507  No options  No options
508  First char = 'a'  First char = 'a'
509  No req char  No need char
510    
511  /(?i)^1234/  /(?i)^1234/
512  Identifying subpattern count = 0  Capturing subpattern count = 0
513  Options: anchored caseless  Options: anchored caseless
514  No first char  No first char
515  Req char = '4'  No need char
516    
517  /(^b|(?i)^d)/  /(^b|(?i)^d)/
518  Identifying subpattern count = 1  Capturing subpattern count = 1
519  Options: anchored  Options: anchored
 Case state changes  
520  No first char  No first char
521  No req char  No need char
522    
523  /(?s).*/  /(?s).*/
524  Identifying subpattern count = 0  Capturing subpattern count = 0
525    Partial matching not supported
526  Options: anchored dotall  Options: anchored dotall
527  No first char  No first char
528  No req char  No need char
529    
530  /[abcd]/S  /[abcd]/S
531  Identifying subpattern count = 0  Capturing subpattern count = 0
532  No options  No options
533  No first char  No first char
534  No req char  No need char
535  Starting character set: a b c d  Starting byte set: a b c d
536    
537  /(?i)[abcd]/S  /(?i)[abcd]/S
538  Identifying subpattern count = 0  Capturing subpattern count = 0
539  Options: caseless  Options: caseless
540  No first char  No first char
541  No req char  No need char
542  Starting character set: A B C D a b c d  Starting byte set: A B C D a b c d
543    
544  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/S
545  Identifying subpattern count = 1  Capturing subpattern count = 1
546  Options: multiline  Options: multiline
547  No first char  No first char
548  No req char  No need char
549  Starting character set: b c x y  Starting byte set: b c x y
550    
551  /(^a|^b)/m  /(^a|^b)/m
552  Identifying subpattern count = 1  Capturing subpattern count = 1
553  Options: multiline  Options: multiline
554  First char at start or follows \n  First char at start or follows newline
555  No req char  No need char
556    
557  /(?i)(^a|^b)/m  /(?i)(^a|^b)/m
558  Identifying subpattern count = 1  Capturing subpattern count = 1
559  Options: caseless multiline  Options: caseless multiline
560  First char at start or follows \n  First char at start or follows newline
561  No req char  No need char
562    
563  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
564  Failed: conditional group contains more than two branches at offset 13  Failed: conditional group contains more than two branches at offset 13
# Line 555  Failed: conditional group contains more Line 567  Failed: conditional group contains more
567  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
568    
569  /(?(1a)/  /(?(1a)/
570  Failed: malformed number after (?( at offset 4  Failed: reference to non-existent subpattern at offset 6
571    
572  /(?(?i))/  /(?(?i))/
573  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
574    
575  /(?(abc))/  /(?(abc))/
576  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
577    
578  /(?(?<ab))/  /(?(?<ab))/
579  Failed: unrecognized character after (?< at offset 2  Failed: unrecognized character after (?< at offset 5
580    
581  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/
582  Identifying subpattern count = 1  Capturing subpattern count = 1
583    Max back reference = 1
584    Partial matching not supported
585  No options  No options
586  First char = 'b'  First char = 'b'
587  Req char = 'h'  Need char = 'h'
588    
589  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/
590  Identifying subpattern count = 1  Capturing subpattern count = 1
591    Max back reference = 1
592    Partial matching not supported
593  No options  No options
594  Case state changes  First char = 'b' (caseless)
595  No first char  Need char = 'h' (caseless)
 Req char = 'h'  
596    
597  /((?i)b)/DS  /((?i)b)/DS
598  ------------------------------------------------------------------  ------------------------------------------------------------------
599    0  16 Bra 0    0  15 Bra 0
600    3   8 Bra 1    3   7 Bra 1
601    6  01 Opt    6  01 Opt
602    8   1 b    8  NC b
603   11   8 Ket   10   7 Ket
604   14  00 Opt   13  00 Opt
605   16  16 Ket   15  15 Ket
606   19     End   18     End
607  ------------------------------------------------------------------  ------------------------------------------------------------------
608  Identifying subpattern count = 1  Capturing subpattern count = 1
609  No options  No options
610  Case state changes  First char = 'b' (caseless)
611  No first char  No need char
612  Req char = 'b'  Study returned NULL
 Starting character set: B b  
613    
614  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/S
615  Identifying subpattern count = 1  Capturing subpattern count = 1
616    Partial matching not supported
617  No options  No options
 Case state changes  
618  No first char  No first char
619  No req char  No need char
620  Starting character set: C a b c d  Starting byte set: C a b c d
621    
622  /a$/  /a$/
623  Identifying subpattern count = 0  Capturing subpattern count = 0
624  No options  No options
625  First char = 'a'  First char = 'a'
626  No req char  No need char
627      a      a
628   0: a   0: a
629      a\n      a\n
# Line 622  No match Line 636  No match
636  No match  No match
637    
638  /a$/m  /a$/m
639  Identifying subpattern count = 0  Capturing subpattern count = 0
640  Options: multiline  Options: multiline
641  First char = 'a'  First char = 'a'
642  No req char  No need char
643      a      a
644   0: a   0: a
645      a\n      a\n
# Line 638  No match Line 652  No match
652  No match  No match
653    
654  /\Aabc/m  /\Aabc/m
655  Identifying subpattern count = 0  Capturing subpattern count = 0
656  Options: anchored multiline  Options: anchored multiline
657  No first char  No first char
658  Req char = 'c'  No need char
659    
660  /^abc/m  /^abc/m
661  Identifying subpattern count = 0  Capturing subpattern count = 0
662  Options: multiline  Options: multiline
663  First char at start or follows \n  First char at start or follows newline
664  Req char = 'c'  Need char = 'c'
665    
666  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
667  Identifying subpattern count = 5  Capturing subpattern count = 5
668    Partial matching not supported
669  Options: anchored  Options: anchored
670  No first char  No first char
671  Req char = 'a'  No need char
672    aaaaabbbbbcccccdef    aaaaabbbbbcccccdef
673   0: aaaaabbbbbcccccdef   0: aaaaabbbbbcccccdef
674   1: aaaaabbbbbcccccdef   1: aaaaabbbbbcccccdef
# Line 663  Req char = 'a' Line 678  Req char = 'a'
678   5: def   5: def
679    
680  /(?<=foo)[ab]/S  /(?<=foo)[ab]/S
681  Identifying subpattern count = 0  Capturing subpattern count = 0
682  No options  No options
683  No first char  No first char
684  No req char  No need char
685  Starting character set: a b  Starting byte set: a b
686    
687  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/S
688  Identifying subpattern count = 1  Capturing subpattern count = 1
689  No options  No options
690  No first char  No first char
691  Req char = 'a'  Need char = 'a'
692  Starting character set: a o  Starting byte set: a o
693    
694  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/S
695  Identifying subpattern count = 0  Capturing subpattern count = 0
696  No options  No options
697  No first char  No first char
698  No req char  No need char
699  Starting character set: a b  Starting byte set: a b
700    
701  /(?<=foo\n)^bar/m  /(?<=foo\n)^bar/m
702  Identifying subpattern count = 0  Capturing subpattern count = 0
703    Options: multiline
704    No first char
705    Need char = 'r'
706        foo\nbarbar
707     0: bar
708        ***Failers
709    No match
710        rhubarb
711    No match
712        barbell
713    No match
714        abc\nbarton
715    No match
716    
717    /^(?<=foo\n)bar/m
718    Capturing subpattern count = 0
719  Options: multiline  Options: multiline
720  First char at start or follows \n  First char at start or follows newline
721  Req char = 'r'  Need char = 'r'
722        foo\nbarbar
723     0: bar
724        ***Failers
725    No match
726        rhubarb
727    No match
728        barbell
729    No match
730        abc\nbarton
731    No match
732    
733  /(?>^abc)/m  /(?>^abc)/m
734  Identifying subpattern count = 0  Capturing subpattern count = 0
735  Options: multiline  Options: multiline
736  First char at start or follows \n  First char at start or follows newline
737  Req char = 'c'  Need char = 'c'
738      abc      abc
739   0: abc   0: abc
740      def\nabc      def\nabc
# Line 713  Failed: lookbehind assertion is not fixe Line 754  Failed: lookbehind assertion is not fixe
754  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
755    
756  /The next three are in testinput2 because they have variable length branches/  /The next three are in testinput2 because they have variable length branches/
757  Identifying subpattern count = 0  Capturing subpattern count = 0
758  No options  No options
759  First char = 'T'  First char = 'T'
760  Req char = 's'  Need char = 's'
761    
762  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/
763  Identifying subpattern count = 0  Capturing subpattern count = 0
764  No options  No options
765  First char = '-'  First char = '-'
766  Req char = 't'  Need char = 't'
767      the bullock-cart      the bullock-cart
768   0: -cart   0: -cart
769      a donkey-cart race      a donkey-cart race
# Line 735  No match Line 776  No match
776  No match  No match
777    
778  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/
779  Identifying subpattern count = 0  Capturing subpattern count = 0
780  No options  No options
 Case state changes  
781  No first char  No first char
782  No req char  No need char
783    
784  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/
785  Identifying subpattern count = 2  Capturing subpattern count = 2
786    Partial matching not supported
787  No options  No options
788  First char at start or follows \n  First char at start or follows newline
789  No req char  No need char
790      alphabetabcd      alphabetabcd
791   0: alphabetabcd   0: alphabetabcd
792   1: abcd   1: abcd
# Line 755  No req char Line 796  No req char
796   2: xyz   2: xyz
797    
798  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/
799  Identifying subpattern count = 0  Capturing subpattern count = 0
800  No options  No options
 Case state changes  
801  First char = 'Z'  First char = 'Z'
802  Req char = 'Z'  Need char = 'Z'
803      abxyZZ      abxyZZ
804   0: ZZ   0: ZZ
805      abXyZZ      abXyZZ
# Line 784  No match Line 824  No match
824  No match  No match
825    
826  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/
827  Identifying subpattern count = 1  Capturing subpattern count = 1
828  No options  No options
829  First char = 'b'  First char = 'b'
830  Req char = 'r'  Need char = 'r'
831      bar      bar
832   0: bar   0: bar
833      foobbar      foobbar
# Line 798  No match Line 838  No match
838  No match  No match
839    
840  /This one is here because Perl 5.005_02 doesn't fail it/  /This one is here because Perl 5.005_02 doesn't fail it/
841  Identifying subpattern count = 0  Capturing subpattern count = 0
842  No options  No options
843  First char = 'T'  First char = 'T'
844  Req char = 't'  Need char = 't'
845    
846  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/
847  Identifying subpattern count = 1  Capturing subpattern count = 1
848  Options: anchored  Options: anchored
849  No first char  No first char
850  No req char  No need char
851      *** Failers      *** Failers
852  No match  No match
853      a      a
854  No match  No match
855    
856  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/
857  Identifying subpattern count = 0  Capturing subpattern count = 0
858  No options  No options
859  First char = 'T'  First char = 'T'
860  Req char = 'g'  Need char = 'g'
861    
862  /^(a\1?){4}$/  /^(a\1?){4}$/
863  Identifying subpattern count = 1  Capturing subpattern count = 1
864    Max back reference = 1
865  Options: anchored  Options: anchored
866  No first char  No first char
867  Req char = 'a'  No need char
868      aaaaaa      aaaaaa
869   0: aaaaaa   0: aaaaaa
870   1: aa   1: aa
871    
872  /These are syntax tests from Perl 5.005/  /These are syntax tests from Perl 5.005/
873  Identifying subpattern count = 0  Capturing subpattern count = 0
874  No options  No options
875  First char = 'T'  First char = 'T'
876  Req char = '5'  Need char = '5'
877    
878  /a[b-a]/  /a[b-a]/
879  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
# Line 862  Failed: nothing to repeat at offset 2 Line 903  Failed: nothing to repeat at offset 2
903  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
904    
905  /\1/  /\1/
906  Failed: back reference to non-existent subpattern at offset 2  Failed: reference to non-existent subpattern at offset 2
907    
908  /\2/  /\2/
909  Failed: back reference to non-existent subpattern at offset 2  Failed: reference to non-existent subpattern at offset 2
910    
911  /(a)|\2/  /(a)|\2/
912  Failed: back reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
913    
914  /a[b-a]/i  /a[b-a]/i
915  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
# Line 901  Failed: unmatched parentheses at offset Line 942  Failed: unmatched parentheses at offset
942  Failed: missing ) at offset 4  Failed: missing ) at offset 4
943    
944  /(?<%)b/  /(?<%)b/
945  Failed: unrecognized character after (?< at offset 0  Failed: unrecognized character after (?< at offset 3
946    
947  /a(?{)b/  /a(?{)b/
948  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? at offset 3
# Line 919  Failed: unrecognized character after (? Line 960  Failed: unrecognized character after (?
960  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? at offset 3
961    
962  /(?(1?)a|b)/  /(?(1?)a|b)/
963  Failed: malformed number after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
964    
965  /(?(1)a|b|c)/  /(?(1)a|b|c)/
966  Failed: conditional group contains more than two branches at offset 10  Failed: conditional group contains more than two branches at offset 10
# Line 943  Failed: POSIX code 9: bad escape sequenc Line 984  Failed: POSIX code 9: bad escape sequenc
984  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
985    
986  /(a)bc(d)/  /(a)bc(d)/
987  Identifying subpattern count = 2  Capturing subpattern count = 2
988  No options  No options
989  First char = 'a'  First char = 'a'
990  Req char = 'd'  Need char = 'd'
991      abcd      abcd
992   0: abcd   0: abcd
993   1: a   1: a
# Line 963  Req char = 'd' Line 1004  Req char = 'd'
1004  copy substring 5 failed -7  copy substring 5 failed -7
1005    
1006  /(.{20})/  /(.{20})/
1007  Identifying subpattern count = 1  Capturing subpattern count = 1
1008    Partial matching not supported
1009  No options  No options
1010  No first char  No first char
1011  No req char  No need char
1012      abcdefghijklmnopqrstuvwxyz      abcdefghijklmnopqrstuvwxyz
1013   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1014   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1015      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1016   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1017   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1018  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1019      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1020   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1021   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1022   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1023    
1024  /(.{15})/  /(.{15})/
1025  Identifying subpattern count = 1  Capturing subpattern count = 1
1026    Partial matching not supported
1027  No options  No options
1028  No first char  No first char
1029  No req char  No need char
1030      abcdefghijklmnopqrstuvwxyz      abcdefghijklmnopqrstuvwxyz
1031   0: abcdefghijklmno   0: abcdefghijklmno
1032   1: abcdefghijklmno   1: abcdefghijklmno
# Line 994  No req char Line 1037  No req char
1037   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1038    
1039  /(.{16})/  /(.{16})/
1040  Identifying subpattern count = 1  Capturing subpattern count = 1
1041    Partial matching not supported
1042  No options  No options
1043  No first char  No first char
1044  No req char  No need char
1045      abcdefghijklmnopqrstuvwxyz      abcdefghijklmnopqrstuvwxyz
1046   0: abcdefghijklmnop   0: abcdefghijklmnop
1047   1: abcdefghijklmnop   1: abcdefghijklmnop
1048      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1049   0: abcdefghijklmnop   0: abcdefghijklmnop
1050   1: abcdefghijklmnop   1: abcdefghijklmnop
1051  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1052   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1053   0L abcdefghijklmnop   0L abcdefghijklmnop
1054   1L abcdefghijklmnop   1L abcdefghijklmnop
1055    
1056  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/
1057  Identifying subpattern count = 3  Capturing subpattern count = 3
1058  Options: anchored  Options: anchored
1059  No first char  No first char
1060  Req char = 'f'  No need char
1061      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1062   0: adef   0: adef
1063   1: a   1: a
# Line 1048  get substring 4 failed -7 Line 1092  get substring 4 failed -7
1092   0C adef (4)   0C adef (4)
1093    
1094  /^abc\00def/  /^abc\00def/
1095  Identifying subpattern count = 0  Capturing subpattern count = 0
1096  Options: anchored  Options: anchored
1097  No first char  No first char
1098  Req char = 'f'  No need char
1099      abc\00def\L\C0      abc\00def\L\C0
1100   0: abc\x00def   0: abc\x00def
1101   0C abc (7)   0C abc (7)
# Line 1060  Req char = 'f' Line 1104  Req char = 'f'
1104  /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]+
1105  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1106  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/M
1107  Memory allocation (code space): 428  Memory allocation (code space): 432
1108  Identifying subpattern count = 8  Capturing subpattern count = 8
1109    Partial matching not supported
1110  No options  No options
1111  First char = 'w'  First char = 'w'
1112  Req char = 'd'  Need char = 'd'
1113    
1114  /.*X/D  /.*X/D
1115  ------------------------------------------------------------------  ------------------------------------------------------------------
1116    0   8 Bra 0    0   7 Bra 0
1117    3     Any*    3     Any*
1118    5   1 X    5     X
1119    8   8 Ket    7   7 Ket
1120   11     End   10     End
1121  ------------------------------------------------------------------  ------------------------------------------------------------------
1122  Identifying subpattern count = 0  Capturing subpattern count = 0
1123    Partial matching not supported
1124  No options  No options
1125  First char at start or follows \n  First char at start or follows newline
1126  Req char = 'X'  Need char = 'X'
1127    
1128  /.*X/Ds  /.*X/Ds
1129  ------------------------------------------------------------------  ------------------------------------------------------------------
1130    0   8 Bra 0    0   7 Bra 0
1131    3     Any*    3     Any*
1132    5   1 X    5     X
1133    8   8 Ket    7   7 Ket
1134   11     End   10     End
1135  ------------------------------------------------------------------  ------------------------------------------------------------------
1136  Identifying subpattern count = 0  Capturing subpattern count = 0
1137    Partial matching not supported
1138  Options: anchored dotall  Options: anchored dotall
1139  No first char  No first char
1140  Req char = 'X'  Need char = 'X'
1141    
1142  /(.*X|^B)/D  /(.*X|^B)/D
1143  ------------------------------------------------------------------  ------------------------------------------------------------------
1144    0  21 Bra 0    0  19 Bra 0
1145    3   8 Bra 1    3   7 Bra 1
1146    6     Any*    6     Any*
1147    8   1 X    8     X
1148   11   7 Alt   10   6 Alt
1149   14     ^   13     ^
1150   15   1 B   14     B
1151   18  15 Ket   16  13 Ket
1152   21  21 Ket   19  19 Ket
1153   24     End   22     End
1154  ------------------------------------------------------------------  ------------------------------------------------------------------
1155  Identifying subpattern count = 1  Capturing subpattern count = 1
1156    Partial matching not supported
1157  No options  No options
1158  First char at start or follows \n  First char at start or follows newline
1159  No req char  No need char
1160    
1161  /(.*X|^B)/Ds  /(.*X|^B)/Ds
1162  ------------------------------------------------------------------  ------------------------------------------------------------------
1163    0  21 Bra 0    0  19 Bra 0
1164    3   8 Bra 1    3   7 Bra 1
1165    6     Any*    6     Any*
1166    8   1 X    8     X
1167   11   7 Alt   10   6 Alt
1168   14     ^   13     ^
1169   15   1 B   14     B
1170   18  15 Ket   16  13 Ket
1171   21  21 Ket   19  19 Ket
1172   24     End   22     End
1173  ------------------------------------------------------------------  ------------------------------------------------------------------
1174  Identifying subpattern count = 1  Capturing subpattern count = 1
1175    Partial matching not supported
1176  Options: anchored dotall  Options: anchored dotall
1177  No first char  No first char
1178  No req char  No need char
1179    
1180  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/D
1181  ------------------------------------------------------------------  ------------------------------------------------------------------
1182    0  21 Bra 0    0  19 Bra 0
1183    3   8 Bra 1    3   7 Bra 1
1184    6     Any*    6     Any*
1185    8   1 X    8     X
1186   11   7 Alt   10   6 Alt
1187   14     ^   13     ^
1188   15   1 B   14     B
1189   18  15 Ket   16  13 Ket
1190   21  21 Ket   19  19 Ket
1191   24     End   22     End
1192  ------------------------------------------------------------------  ------------------------------------------------------------------
1193  Identifying subpattern count = 1  Capturing subpattern count = 1
1194    Partial matching not supported
1195  Options: anchored dotall  Options: anchored dotall
1196  No first char  No first char
1197  No req char  No need char
1198    
1199  /(?s:.*X|^B)/D  /(?s:.*X|^B)/D
1200  ------------------------------------------------------------------  ------------------------------------------------------------------
1201    0  27 Bra 0    0  25 Bra 0
1202    3  10 Bra 0    3   9 Bra 0
1203    6  04 Opt    6  04 Opt
1204    8     Any*    8     Any*
1205   10   1 X   10     X
1206   13   9 Alt   12   8 Alt
1207   16  04 Opt   15  04 Opt
1208   18     ^   17     ^
1209   19   1 B   18     B
1210   22  19 Ket   20  17 Ket
1211   25  00 Opt   23  00 Opt
1212   27  27 Ket   25  25 Ket
1213   30     End   28     End
1214  ------------------------------------------------------------------  ------------------------------------------------------------------
1215  Identifying subpattern count = 0  Capturing subpattern count = 0
1216    Partial matching not supported
1217  No options  No options
1218  First char at start or follows \n  First char at start or follows newline
1219  No req char  No need char
1220    
1221  /\Biss\B/+  /\Biss\B/+
1222  Identifying subpattern count = 0  Capturing subpattern count = 0
1223  No options  No options
1224  First char = 'i'  First char = 'i'
1225  Req char = 's'  Need char = 's'
1226      Mississippi      Mississippi
1227   0: iss   0: iss
1228   0+ issippi   0+ issippi
# Line 1182  Req char = 's' Line 1233  Req char = 's'
1233   0+ issippi   0+ issippi
1234    
1235  /iss/G+  /iss/G+
1236  Identifying subpattern count = 0  Capturing subpattern count = 0
1237  No options  No options
1238  First char = 'i'  First char = 'i'
1239  Req char = 's'  Need char = 's'
1240      Mississippi      Mississippi
1241   0: iss   0: iss
1242   0+ issippi   0+ issippi
# Line 1193  Req char = 's' Line 1244  Req char = 's'
1244   0+ ippi   0+ ippi
1245    
1246  /\Biss\B/G+  /\Biss\B/G+
1247  Identifying subpattern count = 0  Capturing subpattern count = 0
1248  No options  No options
1249  First char = 'i'  First char = 'i'
1250  Req char = 's'  Need char = 's'
1251      Mississippi      Mississippi
1252   0: iss   0: iss
1253   0+ issippi   0+ issippi
1254    
1255  /\Biss\B/g+  /\Biss\B/g+
1256  Identifying subpattern count = 0  Capturing subpattern count = 0
1257  No options  No options
1258  First char = 'i'  First char = 'i'
1259  Req char = 's'  Need char = 's'
1260      Mississippi      Mississippi
1261   0: iss   0: iss
1262   0+ issippi   0+ issippi
# Line 1217  No match Line 1268  No match
1268  No match  No match
1269    
1270  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/g+
1271  Identifying subpattern count = 0  Capturing subpattern count = 0
1272  No options  No options
1273  First char = 'i'  First char = 'i'
1274  Req char = 's'  Need char = 's'
1275      Mississippi      Mississippi
1276   0: iss   0: iss
1277   0+ issippi   0+ issippi
# Line 1228  Req char = 's' Line 1279  Req char = 's'
1279   0+ ippi   0+ ippi
1280    
1281  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/G+
1282  Identifying subpattern count = 0  Capturing subpattern count = 0
1283  No options  No options
1284  First char = 'i'  First char = 'i'
1285  Req char = 's'  Need char = 's'
1286      Mississippi      Mississippi
1287   0: iss   0: iss
1288   0+ issippi   0+ issippi
1289    
1290  /^iss/g+  /^iss/g+
1291  Identifying subpattern count = 0  Capturing subpattern count = 0
1292  Options: anchored  Options: anchored
1293  No first char  No first char
1294  Req char = 's'  No need char
1295      ississippi      ississippi
1296   0: iss   0: iss
1297   0+ issippi   0+ issippi
1298    
1299  /.*iss/g+  /.*iss/g+
1300  Identifying subpattern count = 0  Capturing subpattern count = 0
1301    Partial matching not supported
1302  No options  No options
1303  First char at start or follows \n  First char at start or follows newline
1304  Req char = 's'  Need char = 's'
1305      abciss\nxyzisspqr      abciss\nxyzisspqr
1306   0: abciss   0: abciss
1307   0+ \x0axyzisspqr   0+ \x0axyzisspqr
# Line 1257  Req char = 's' Line 1309  Req char = 's'
1309   0+ pqr   0+ pqr
1310    
1311  /.i./+g  /.i./+g
1312  Identifying subpattern count = 0  Capturing subpattern count = 0
1313  No options  No options
1314  No first char  No first char
1315  Req char = 'i'  Need char = 'i'
1316      Mississippi      Mississippi
1317   0: Mis   0: Mis
1318   0+ sissippi   0+ sissippi
# Line 1287  Req char = 'i' Line 1339  Req char = 'i'
1339   0+ souri river   0+ souri river
1340    
1341  /^.is/+g  /^.is/+g
1342  Identifying subpattern count = 0  Capturing subpattern count = 0
1343  Options: anchored  Options: anchored
1344  No first char  No first char
1345  Req char = 's'  No need char
1346      Mississippi      Mississippi
1347   0: Mis   0: Mis
1348   0+ sissippi   0+ sissippi
1349    
1350  /^ab\n/g+  /^ab\n/g+
1351  Identifying subpattern count = 0  Capturing subpattern count = 0
1352  Options: anchored  Options: anchored
1353  No first char  No first char
1354  Req char = 10  No need char
1355      ab\nab\ncd      ab\nab\ncd
1356   0: ab\x0a   0: ab\x0a
1357   0+ ab\x0acd   0+ ab\x0acd
1358    
1359  /^ab\n/mg+  /^ab\n/mg+
1360  Identifying subpattern count = 0  Capturing subpattern count = 0
1361  Options: multiline  Options: multiline
1362  First char at start or follows \n  First char at start or follows newline
1363  Req char = 10  Need char = 10
1364      ab\nab\ncd      ab\nab\ncd
1365   0: ab\x0a   0: ab\x0a
1366   0+ ab\x0acd   0+ ab\x0acd
# Line 1316  Req char = 10 Line 1368  Req char = 10
1368   0+ cd   0+ cd
1369    
1370  /abc/  /abc/
1371  Identifying subpattern count = 0  Capturing subpattern count = 0
1372  No options  No options
1373  First char = 'a'  First char = 'a'
1374  Req char = 'c'  Need char = 'c'
1375    
1376  /abc|bac/  /abc|bac/
1377  Identifying subpattern count = 0  Capturing subpattern count = 0
1378  No options  No options
1379  No first char  No first char
1380  Req char = 'c'  Need char = 'c'
1381    
1382  /(abc|bac)/  /(abc|bac)/
1383  Identifying subpattern count = 1  Capturing subpattern count = 1
1384  No options  No options
1385  No first char  No first char
1386  Req char = 'c'  Need char = 'c'
1387    
1388  /(abc|(c|dc))/  /(abc|(c|dc))/
1389  Identifying subpattern count = 2  Capturing subpattern count = 2
1390  No options  No options
1391  No first char  No first char
1392  Req char = 'c'  Need char = 'c'
1393    
1394  /(abc|(d|de)c)/  /(abc|(d|de)c)/
1395  Identifying subpattern count = 2  Capturing subpattern count = 2
1396  No options  No options
1397  No first char  No first char
1398  Req char = 'c'  Need char = 'c'
1399    
1400  /a*/  /a*/
1401  Identifying subpattern count = 0  Capturing subpattern count = 0
1402    Partial matching not supported
1403  No options  No options
1404  No first char  No first char
1405  No req char  No need char
1406    
1407  /a+/  /a+/
1408  Identifying subpattern count = 0  Capturing subpattern count = 0
1409    Partial matching not supported
1410  No options  No options
1411  First char = 'a'  First char = 'a'
1412  No req char  No need char
1413    
1414  /(baa|a+)/  /(baa|a+)/
1415  Identifying subpattern count = 1  Capturing subpattern count = 1
1416    Partial matching not supported
1417  No options  No options
1418  No first char  No first char
1419  Req char = 'a'  Need char = 'a'
1420    
1421  /a{0,3}/  /a{0,3}/
1422  Identifying subpattern count = 0  Capturing subpattern count = 0
1423    Partial matching not supported
1424  No options  No options
1425  No first char  No first char
1426  No req char  No need char
1427    
1428  /baa{3,}/  /baa{3,}/
1429  Identifying subpattern count = 0  Capturing subpattern count = 0
1430    Partial matching not supported
1431  No options  No options
1432  First char = 'b'  First char = 'b'
1433  Req char = 'a'  Need char = 'a'
1434    
1435  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/
1436  Identifying subpattern count = 1  Capturing subpattern count = 1
1437    Partial matching not supported
1438  No options  No options
1439  First char = '"'  First char = '"'
1440  Req char = '"'  Need char = '"'
1441    
1442  /(abc|ab[cd])/  /(abc|ab[cd])/
1443  Identifying subpattern count = 1  Capturing subpattern count = 1
1444  No options  No options
1445  First char = 'a'  First char = 'a'
1446  No req char  No need char
1447    
1448  /(a|.)/  /(a|.)/
1449  Identifying subpattern count = 1  Capturing subpattern count = 1
1450  No options  No options
1451  No first char  No first char
1452  No req char  No need char
1453    
1454  /a|ba|\w/  /a|ba|\w/
1455  Identifying subpattern count = 0  Capturing subpattern count = 0
1456  No options  No options
1457  No first char  No first char
1458  No req char  No need char
1459    
1460  /abc(?=pqr)/  /abc(?=pqr)/
1461  Identifying subpattern count = 0  Capturing subpattern count = 0
1462  No options  No options
1463  First char = 'a'  First char = 'a'
1464  Req char = 'r'  Need char = 'r'
1465    
1466  /...(?<=abc)/  /...(?<=abc)/
1467  Identifying subpattern count = 0  Capturing subpattern count = 0
1468  No options  No options
1469  No first char  No first char
1470  No req char  No need char
1471    
1472  /abc(?!pqr)/  /abc(?!pqr)/
1473  Identifying subpattern count = 0  Capturing subpattern count = 0
1474  No options  No options
1475  First char = 'a'  First char = 'a'
1476  Req char = 'c'  Need char = 'c'
1477    
1478  /ab./  /ab./
1479  Identifying subpattern count = 0  Capturing subpattern count = 0
1480  No options  No options
1481  First char = 'a'  First char = 'a'
1482  Req char = 'b'  Need char = 'b'
1483    
1484  /ab[xyz]/  /ab[xyz]/
1485  Identifying subpattern count = 0  Capturing subpattern count = 0
1486  No options  No options
1487  First char = 'a'  First char = 'a'
1488  Req char = 'b'  Need char = 'b'
1489    
1490  /abc*/  /abc*/
1491  Identifying subpattern count = 0  Capturing subpattern count = 0
1492    Partial matching not supported
1493  No options  No options
1494  First char = 'a'  First char = 'a'
1495  Req char = 'b'  Need char = 'b'
1496    
1497  /ab.c*/  /ab.c*/
1498  Identifying subpattern count = 0  Capturing subpattern count = 0
1499    Partial matching not supported
1500  No options  No options
1501  First char = 'a'  First char = 'a'
1502  Req char = 'b'  Need char = 'b'
1503    
1504  /a.c*/  /a.c*/
1505  Identifying subpattern count = 0  Capturing subpattern count = 0
1506    Partial matching not supported
1507  No options  No options
1508  First char = 'a'  First char = 'a'
1509  No req char  No need char
1510    
1511  /.c*/  /.c*/
1512  Identifying subpattern count = 0  Capturing subpattern count = 0
1513    Partial matching not supported
1514  No options  No options
1515  No first char  No first char
1516  No req char  No need char
1517    
1518  /ac*/  /ac*/
1519  Identifying subpattern count = 0  Capturing subpattern count = 0
1520    Partial matching not supported
1521  No options  No options
1522  First char = 'a'  First char = 'a'
1523  No req char  No need char
1524    
1525  /(a.c*|b.c*)/  /(a.c*|b.c*)/
1526  Identifying subpattern count = 1  Capturing subpattern count = 1
1527    Partial matching not supported
1528  No options  No options
1529  No first char  No first char
1530  No req char  No need char
1531    
1532  /a.c*|aba/  /a.c*|aba/
1533  Identifying subpattern count = 0  Capturing subpattern count = 0
1534    Partial matching not supported
1535  No options  No options
1536  First char = 'a'  First char = 'a'
1537  No req char  No need char
1538    
1539  /.+a/  /.+a/
1540  Identifying subpattern count = 0  Capturing subpattern count = 0
1541    Partial matching not supported
1542  No options  No options
1543  No first char  No first char
1544  Req char = 'a'  Need char = 'a'
1545    
1546  /(?=abcda)a.*/  /(?=abcda)a.*/
1547  Identifying subpattern count = 0  Capturing subpattern count = 0
1548    Partial matching not supported
1549  No options  No options
1550  First char = 'a'  First char = 'a'
1551  No req char  Need char = 'a'
1552    
1553  /(?=a)a.*/  /(?=a)a.*/
1554  Identifying subpattern count = 0  Capturing subpattern count = 0
1555    Partial matching not supported
1556  No options  No options
1557  First char = 'a'  First char = 'a'
1558  No req char  No need char
1559    
1560  /a(b)*/  /a(b)*/
1561  Identifying subpattern count = 1  Capturing subpattern count = 1
1562  No options  No options
1563  First char = 'a'  First char = 'a'
1564  No req char  No need char
1565    
1566  /a\d*/  /a\d*/
1567  Identifying subpattern count = 0  Capturing subpattern count = 0
1568    Partial matching not supported
1569  No options  No options
1570  First char = 'a'  First char = 'a'
1571  No req char  No need char
1572    
1573  /ab\d*/  /ab\d*/
1574  Identifying subpattern count = 0  Capturing subpattern count = 0
1575    Partial matching not supported
1576  No options  No options
1577  First char = 'a'  First char = 'a'
1578  Req char = 'b'  Need char = 'b'
1579    
1580  /a(\d)*/  /a(\d)*/
1581  Identifying subpattern count = 1  Capturing subpattern count = 1
1582  No options  No options
1583  First char = 'a'  First char = 'a'
1584  No req char  No need char
1585    
1586  /abcde{0,0}/  /abcde{0,0}/
1587  Identifying subpattern count = 0  Capturing subpattern count = 0
1588  No options  No options
1589  First char = 'a'  First char = 'a'
1590  Req char = 'd'  Need char = 'd'
1591    
1592  /ab\d+/  /ab\d+/
1593  Identifying subpattern count = 0  Capturing subpattern count = 0
1594    Partial matching not supported
1595  No options  No options
1596  First char = 'a'  First char = 'a'
1597  Req char = 'b'  Need char = 'b'
1598    
1599  /a(?(1)b)/  /a(?(1)b)/
1600  Identifying subpattern count = 0  Capturing subpattern count = 0
1601  No options  No options
1602  First char = 'a'  First char = 'a'
1603  No req char  No need char
1604    
1605  /a(?(1)bag|big)/  /a(?(1)bag|big)/
1606  Identifying subpattern count = 0  Capturing subpattern count = 0
1607  No options  No options
1608  First char = 'a'  First char = 'a'
1609  Req char = 'g'  Need char = 'g'
1610    
1611  /a(?(1)bag|big)*/  /a(?(1)bag|big)*/
1612  Identifying subpattern count = 0  Capturing subpattern count = 0
1613  No options  No options
1614  First char = 'a'  First char = 'a'
1615  No req char  No need char
1616    
1617  /a(?(1)bag|big)+/  /a(?(1)bag|big)+/
1618  Identifying subpattern count = 0  Capturing subpattern count = 0
1619  No options  No options
1620  First char = 'a'  First char = 'a'
1621  Req char = 'g'  Need char = 'g'
1622    
1623  /a(?(1)b..|b..)/  /a(?(1)b..|b..)/
1624  Identifying subpattern count = 0  Capturing subpattern count = 0
1625  No options  No options
1626  First char = 'a'  First char = 'a'
1627  Req char = 'b'  Need char = 'b'
1628    
1629  /ab\d{0}e/  /ab\d{0}e/
1630  Identifying subpattern count = 0  Capturing subpattern count = 0
1631  No options  No options
1632  First char = 'a'  First char = 'a'
1633  Req char = 'e'  Need char = 'e'
1634    
1635  /a?b?/  /a?b?/
1636  Identifying subpattern count = 0  Capturing subpattern count = 0
1637  No options  No options
1638  No first char  No first char
1639  No req char  No need char
1640      a      a
1641   0: a   0: a
1642      b      b
# Line 1580  No req char Line 1651  No req char
1651  No match  No match
1652    
1653  /|-/  /|-/
1654  Identifying subpattern count = 0  Capturing subpattern count = 0
1655  No options  No options
1656  No first char  No first char
1657  No req char  No need char
1658      abcd      abcd
1659   0:   0:
1660      -abc      -abc
# Line 1621  No match Line 1692  No match
1692   1: bbbb   1: bbbb
1693   2: z   2: z
1694   3: z   3: z
1695    
1696    /^.?abcd/S
1697    Capturing subpattern count = 0
1698    Options: anchored
1699    No first char
1700    Need char = 'd'
1701    Study returned NULL
1702    
1703    /\(             # ( at start
1704      (?:           # Non-capturing bracket
1705      (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
1706      |             # Or
1707      (?R)          # Recurse - i.e. nested bracketed string
1708      )*            # Zero or more contents
1709      \)            # Closing )
1710      /x
1711    Capturing subpattern count = 0
1712    Partial matching not supported
1713    Options: extended
1714    First char = '('
1715    Need char = ')'
1716        (abcd)
1717     0: (abcd)
1718        (abcd)xyz
1719     0: (abcd)
1720        xyz(abcd)
1721     0: (abcd)
1722        (ab(xy)cd)pqr
1723     0: (ab(xy)cd)
1724        (ab(xycd)pqr
1725     0: (xycd)
1726        () abc ()
1727     0: ()
1728        12(abcde(fsh)xyz(foo(bar))lmno)89
1729     0: (abcde(fsh)xyz(foo(bar))lmno)
1730        *** Failers
1731    No match
1732        abcd
1733    No match
1734        abcd)
1735    No match
1736        (abcd
1737    No match
1738    
1739    /\(  ( (?>[^()]+) | (?R) )* \) /xg
1740    Capturing subpattern count = 1
1741    Partial matching not supported
1742    Options: extended
1743    First char = '('
1744    Need char = ')'
1745        (ab(xy)cd)pqr
1746     0: (ab(xy)cd)
1747     1: cd
1748        1(abcd)(x(y)z)pqr
1749     0: (abcd)
1750     1: abcd
1751     0: (x(y)z)
1752     1: z
1753    
1754    /\(  (?: (?>[^()]+) | (?R) ) \) /x
1755    Capturing subpattern count = 0
1756    Partial matching not supported
1757    Options: extended
1758    First char = '('
1759    Need char = ')'
1760        (abcd)
1761     0: (abcd)
1762        (ab(xy)cd)
1763     0: (xy)
1764        (a(b(c)d)e)
1765     0: (c)
1766        ((ab))
1767     0: ((ab))
1768        *** Failers
1769    No match
1770        ()
1771    No match
1772    
1773    /\(  (?: (?>[^()]+) | (?R) )? \) /x
1774    Capturing subpattern count = 0
1775    Partial matching not supported
1776    Options: extended
1777    First char = '('
1778    Need char = ')'
1779        ()
1780     0: ()
1781        12(abcde(fsh)xyz(foo(bar))lmno)89
1782     0: (fsh)
1783    
1784    /\(  ( (?>[^()]+) | (?R) )* \) /x
1785    Capturing subpattern count = 1
1786    Partial matching not supported
1787    Options: extended
1788    First char = '('
1789    Need char = ')'
1790        (ab(xy)cd)
1791     0: (ab(xy)cd)
1792     1: cd
1793    
1794    /\( ( ( (?>[^()]+) | (?R) )* ) \) /x
1795    Capturing subpattern count = 2
1796    Partial matching not supported
1797    Options: extended
1798    First char = '('
1799    Need char = ')'
1800        (ab(xy)cd)
1801     0: (ab(xy)cd)
1802     1: ab(xy)cd
1803     2: cd
1804    
1805    /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x
1806    Capturing subpattern count = 3
1807    Partial matching not supported
1808    Options: extended
1809    First char = '('
1810    Need char = ')'
1811        (ab(xy)cd)
1812     0: (ab(xy)cd)
1813     1: <unset>
1814     2: ab(xy)cd
1815     3: cd
1816        (123ab(xy)cd)
1817     0: (123ab(xy)cd)
1818     1: 123
1819     2: ab(xy)cd
1820     3: cd
1821    
1822    /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x
1823    Capturing subpattern count = 3
1824    Partial matching not supported
1825    Options: extended
1826    First char = '('
1827    Need char = ')'
1828        (ab(xy)cd)
1829     0: (ab(xy)cd)
1830     1: ab(xy)cd
1831     2: <unset>
1832     3: cd
1833        (123ab(xy)cd)
1834     0: (123ab(xy)cd)
1835     1: 123ab(xy)cd
1836     2: 123
1837     3: cd
1838    
1839    /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x
1840    Capturing subpattern count = 11
1841    Partial matching not supported
1842    Options: extended
1843    First char = '('
1844    Need char = ')'
1845        (ab(xy)cd)
1846     0: (ab(xy)cd)
1847     1: ab(xy)cd
1848     2: ab(xy)cd
1849     3: ab(xy)cd
1850     4: ab(xy)cd
1851     5: ab(xy)cd
1852     6: ab(xy)cd
1853     7: ab(xy)cd
1854     8: ab(xy)cd
1855     9: ab(xy)cd
1856    10: ab(xy)cd
1857    11: cd
1858    
1859    /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x
1860    Capturing subpattern count = 3
1861    Partial matching not supported
1862    Options: extended
1863    First char = '('
1864    Need char = ')'
1865        (abcd(xyz<p>qrs)123)
1866     0: (abcd(xyz<p>qrs)123)
1867     1: abcd(xyz<p>qrs)123
1868     2: 123
1869     3: <unset>
1870    
1871    /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x
1872    Capturing subpattern count = 3
1873    Partial matching not supported
1874    Options: extended
1875    First char = '('
1876    Need char = ')'
1877        (ab(cd)ef)
1878     0: (ab(cd)ef)
1879     1: ab(cd)ef
1880     2: ef
1881     3: (cd)
1882        (ab(cd(ef)gh)ij)
1883     0: (ab(cd(ef)gh)ij)
1884     1: ab(cd(ef)gh)ij
1885     2: ij
1886     3: (cd(ef)gh)
1887    
1888    /^[[:alnum:]]/D
1889    ------------------------------------------------------------------
1890      0  37 Bra 0
1891      3     ^
1892      4     [0-9A-Za-z]
1893     37  37 Ket
1894     40     End
1895    ------------------------------------------------------------------
1896    Capturing subpattern count = 0
1897    Options: anchored
1898    No first char
1899    No need char
1900    
1901    /^[[:^alnum:]]/D
1902    ------------------------------------------------------------------
1903      0  37 Bra 0
1904      3     ^
1905      4     [\x00-/:-@[-`{-\xff]
1906     37  37 Ket
1907     40     End
1908    ------------------------------------------------------------------
1909    Capturing subpattern count = 0
1910    Options: anchored
1911    No first char
1912    No need char
1913    
1914    /^[[:alpha:]]/D
1915    ------------------------------------------------------------------
1916      0  37 Bra 0
1917      3     ^
1918      4     [A-Za-z]
1919     37  37 Ket
1920     40     End
1921    ------------------------------------------------------------------
1922    Capturing subpattern count = 0
1923    Options: anchored
1924    No first char
1925    No need char
1926    
1927  / End of test input /  /^[[:^alpha:]]/D
1928  Identifying subpattern count = 0  ------------------------------------------------------------------
1929      0  37 Bra 0
1930      3     ^
1931      4     [\x00-@[-`{-\xff]
1932     37  37 Ket
1933     40     End
1934    ------------------------------------------------------------------
1935    Capturing subpattern count = 0
1936    Options: anchored
1937    No first char
1938    No need char
1939    
1940    /[_[:alpha:]]/IS
1941    Capturing subpattern count = 0
1942  No options  No options
1943  First char = ' '  No first char
1944  Req char = ' '  No need char
1945    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
1946      _ 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
1947    
1948    /^[[:ascii:]]/D
1949    ------------------------------------------------------------------
1950      0  37 Bra 0
1951      3     ^
1952      4     [\x00-\x7f]
1953     37  37 Ket
1954     40     End
1955    ------------------------------------------------------------------
1956    Capturing subpattern count = 0
1957    Options: anchored
1958    No first char
1959    No need char
1960    
1961    /^[[:^ascii:]]/D
1962    ------------------------------------------------------------------
1963      0  37 Bra 0
1964      3     ^
1965      4     [\x80-\xff]
1966     37  37 Ket
1967     40     End
1968    ------------------------------------------------------------------
1969    Capturing subpattern count = 0
1970    Options: anchored
1971    No first char
1972    No need char
1973    
1974    /^[[:blank:]]/D
1975    ------------------------------------------------------------------
1976      0  37 Bra 0
1977      3     ^
1978      4     [\x09 ]
1979     37  37 Ket
1980     40     End
1981    ------------------------------------------------------------------
1982    Capturing subpattern count = 0
1983    Options: anchored
1984    No first char
1985    No need char
1986    
1987    /^[[:^blank:]]/D
1988    ------------------------------------------------------------------
1989      0  37 Bra 0
1990      3     ^
1991      4     [\x00-\x08\x0a-\x1f!-\xff]
1992     37  37 Ket
1993     40     End
1994    ------------------------------------------------------------------
1995    Capturing subpattern count = 0
1996    Options: anchored
1997    No first char
1998    No need char
1999    
2000    /[\n\x0b\x0c\x0d[:blank:]]/IS
2001    Capturing subpattern count = 0
2002    No options
2003    No first char
2004    No need char
2005    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2006    
2007    /^[[:cntrl:]]/D
2008    ------------------------------------------------------------------
2009      0  37 Bra 0
2010      3     ^
2011      4     [\x00-\x1f\x7f]
2012     37  37 Ket
2013     40     End
2014    ------------------------------------------------------------------
2015    Capturing subpattern count = 0
2016    Options: anchored
2017    No first char
2018    No need char
2019    
2020    /^[[:digit:]]/D
2021    ------------------------------------------------------------------
2022      0  37 Bra 0
2023      3     ^
2024      4     [0-9]
2025     37  37 Ket
2026     40     End
2027    ------------------------------------------------------------------
2028    Capturing subpattern count = 0
2029    Options: anchored
2030    No first char
2031    No need char
2032    
2033    /^[[:graph:]]/D
2034    ------------------------------------------------------------------
2035      0  37 Bra 0
2036      3     ^
2037      4     [!-~]
2038     37  37 Ket
2039     40     End
2040    ------------------------------------------------------------------
2041    Capturing subpattern count = 0
2042    Options: anchored
2043    No first char
2044    No need char
2045    
2046    /^[[:lower:]]/D
2047    ------------------------------------------------------------------
2048      0  37 Bra 0
2049      3     ^
2050      4     [a-z]
2051     37  37 Ket
2052     40     End
2053    ------------------------------------------------------------------
2054    Capturing subpattern count = 0
2055    Options: anchored
2056    No first char
2057    No need char
2058    
2059    /^[[:print:]]/D
2060    ------------------------------------------------------------------
2061      0  37 Bra 0
2062      3     ^
2063      4     [ -~]
2064     37  37 Ket
2065     40     End
2066    ------------------------------------------------------------------
2067    Capturing subpattern count = 0
2068    Options: anchored
2069    No first char
2070    No need char
2071    
2072    /^[[:punct:]]/D
2073    ------------------------------------------------------------------
2074      0  37 Bra 0
2075      3     ^
2076      4     [!-/:-@[-`{-~]
2077     37  37 Ket
2078     40     End
2079    ------------------------------------------------------------------
2080    Capturing subpattern count = 0
2081    Options: anchored
2082    No first char
2083    No need char
2084    
2085    /^[[:space:]]/D
2086    ------------------------------------------------------------------
2087      0  37 Bra 0
2088      3     ^
2089      4     [\x09-\x0d ]
2090     37  37 Ket
2091     40     End
2092    ------------------------------------------------------------------
2093    Capturing subpattern count = 0
2094    Options: anchored
2095    No first char
2096    No need char
2097    
2098    /^[[:upper:]]/D
2099    ------------------------------------------------------------------
2100      0  37 Bra 0
2101      3     ^
2102      4     [A-Z]
2103     37  37 Ket
2104     40     End
2105    ------------------------------------------------------------------
2106    Capturing subpattern count = 0
2107    Options: anchored
2108    No first char
2109    No need char
2110    
2111    /^[[:xdigit:]]/D
2112    ------------------------------------------------------------------
2113      0  37 Bra 0
2114      3     ^
2115      4     [0-9A-Fa-f]
2116     37  37 Ket
2117     40     End
2118    ------------------------------------------------------------------
2119    Capturing subpattern count = 0
2120    Options: anchored
2121    No first char
2122    No need char
2123    
2124    /^[[:word:]]/D
2125    ------------------------------------------------------------------
2126      0  37 Bra 0
2127      3     ^
2128      4     [0-9A-Z_a-z]
2129     37  37 Ket
2130     40     End
2131    ------------------------------------------------------------------
2132    Capturing subpattern count = 0
2133    Options: anchored
2134    No first char
2135    No need char
2136    
2137    /^[[:^cntrl:]]/D
2138    ------------------------------------------------------------------
2139      0  37 Bra 0
2140      3     ^
2141      4     [ -~\x80-\xff]
2142     37  37 Ket
2143     40     End
2144    ------------------------------------------------------------------
2145    Capturing subpattern count = 0
2146    Options: anchored
2147    No first char
2148    No need char
2149    
2150    /^[12[:^digit:]]/D
2151    ------------------------------------------------------------------
2152      0  37 Bra 0
2153      3     ^
2154      4     [\x00-/12:-\xff]
2155     37  37 Ket
2156     40     End
2157    ------------------------------------------------------------------
2158    Capturing subpattern count = 0
2159    Options: anchored
2160    No first char
2161    No need char
2162    
2163    /^[[:^blank:]]/D
2164    ------------------------------------------------------------------
2165      0  37 Bra 0
2166      3     ^
2167      4     [\x00-\x08\x0a-\x1f!-\xff]
2168     37  37 Ket
2169     40     End
2170    ------------------------------------------------------------------
2171    Capturing subpattern count = 0
2172    Options: anchored
2173    No first char
2174    No need char
2175    
2176    /[01[:alpha:]%]/D
2177    ------------------------------------------------------------------
2178      0  36 Bra 0
2179      3     [%01A-Za-z]
2180     36  36 Ket
2181     39     End
2182    ------------------------------------------------------------------
2183    Capturing subpattern count = 0
2184    No options
2185    No first char
2186    No need char
2187    
2188    /[[.ch.]]/
2189    Failed: POSIX collating elements are not supported at offset 1
2190    
2191    /[[=ch=]]/
2192    Failed: POSIX collating elements are not supported at offset 1
2193    
2194    /[[:rhubarb:]]/
2195    Failed: unknown POSIX class name at offset 3
2196    
2197    /[[:upper:]]/i
2198    Capturing subpattern count = 0
2199    Options: caseless
2200    No first char
2201    No need char
2202        A
2203     0: A
2204        a
2205     0: a
2206    
2207    /[[:lower:]]/i
2208    Capturing subpattern count = 0
2209    Options: caseless
2210    No first char
2211    No need char
2212        A
2213     0: A
2214        a
2215     0: a
2216    
2217    /((?-i)[[:lower:]])[[:lower:]]/i
2218    Capturing subpattern count = 1
2219    Options: caseless
2220    No first char
2221    No need char
2222        ab
2223     0: ab
2224     1: a
2225        aB
2226     0: aB
2227     1: a
2228        *** Failers
2229     0: ai
2230     1: a
2231        Ab
2232    No match
2233        AB
2234    No match
2235    
2236    /[\200-\110]/
2237    Failed: range out of order in character class at offset 9
2238    
2239    /^(?(0)f|b)oo/
2240    Failed: invalid condition (?(0) at offset 6
2241    
2242    /This one's here because of the large output vector needed/
2243    Capturing subpattern count = 0
2244    No options
2245    First char = 'T'
2246    Need char = 'd'
2247    
2248    /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/
2249    Capturing subpattern count = 271
2250    Max back reference = 270
2251    Partial matching not supported
2252    No options
2253    No first char
2254    No need char
2255        \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
2256     0: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
2257     1: 1
2258     2: 2
2259     3: 3
2260     4: 4
2261     5: 5
2262     6: 6
2263     7: 7
2264     8: 8
2265     9: 9
2266    10: 10
2267    11: 11
2268    12: 12
2269    13: 13
2270    14: 14
2271    15: 15
2272    16: 16
2273    17: 17
2274    18: 18
2275    19: 19
2276    20: 20
2277    21: 21
2278    22: 22
2279    23: 23
2280    24: 24
2281    25: 25
2282    26: 26
2283    27: 27
2284    28: 28
2285    29: 29
2286    30: 30
2287    31: 31
2288    32: 32
2289    33: 33
2290    34: 34
2291    35: 35
2292    36: 36
2293    37: 37
2294    38: 38
2295    39: 39
2296    40: 40
2297    41: 41
2298    42: 42
2299    43: 43
2300    44: 44
2301    45: 45
2302    46: 46
2303    47: 47
2304    48: 48
2305    49: 49
2306    50: 50
2307    51: 51
2308    52: 52
2309    53: 53
2310    54: 54
2311    55: 55
2312    56: 56
2313    57: 57
2314    58: 58
2315    59: 59
2316    60: 60
2317    61: 61
2318    62: 62
2319    63: 63
2320    64: 64
2321    65: 65
2322    66: 66
2323    67: 67
2324    68: 68
2325    69: 69
2326    70: 70
2327    71: 71
2328    72: 72
2329    73: 73
2330    74: 74
2331    75: 75
2332    76: 76
2333    77: 77
2334    78: 78
2335    79: 79
2336    80: 80
2337    81: 81
2338    82: 82
2339    83: 83
2340    84: 84
2341    85: 85
2342    86: 86
2343    87: 87
2344    88: 88
2345    89: 89
2346    90: 90
2347    91: 91
2348    92: 92
2349    93: 93
2350    94: 94
2351    95: 95
2352    96: 96
2353    97: 97
2354    98: 98
2355    99: 99
2356    100: 100
2357    101: 101
2358    102: 102
2359    103: 103
2360    104: 104
2361    105: 105
2362    106: 106
2363    107: 107
2364    108: 108
2365    109: 109
2366    110: 110
2367    111: 111
2368    112: 112
2369    113: 113
2370    114: 114
2371    115: 115
2372    116: 116
2373    117: 117
2374    118: 118
2375    119: 119
2376    120: 120
2377    121: 121
2378    122: 122
2379    123: 123
2380    124: 124
2381    125: 125
2382    126: 126
2383    127: 127
2384    128: 128
2385    129: 129
2386    130: 130
2387    131: 131
2388    132: 132
2389    133: 133
2390    134: 134
2391    135: 135
2392    136: 136
2393    137: 137
2394    138: 138
2395    139: 139
2396    140: 140
2397    141: 141
2398    142: 142
2399    143: 143
2400    144: 144
2401    145: 145
2402    146: 146
2403    147: 147
2404    148: 148
2405    149: 149
2406    150: 150
2407    151: 151
2408    152: 152
2409    153: 153
2410    154: 154
2411    155: 155
2412    156: 156
2413    157: 157
2414    158: 158
2415    159: 159
2416    160: 160
2417    161: 161
2418    162: 162
2419    163: 163
2420    164: 164
2421    165: 165
2422    166: 166
2423    167: 167
2424    168: 168
2425    169: 169
2426    170: 170
2427    171: 171
2428    172: 172
2429    173: 173
2430    174: 174
2431    175: 175
2432    176: 176
2433    177: 177
2434    178: 178
2435    179: 179
2436    180: 180
2437    181: 181
2438    182: 182
2439    183: 183
2440    184: 184
2441    185: 185
2442    186: 186
2443    187: 187
2444    188: 188
2445    189: 189
2446    190: 190
2447    191: 191
2448    192: 192
2449    193: 193
2450    194: 194
2451    195: 195
2452    196: 196
2453    197: 197
2454    198: 198
2455    199: 199
2456    200: 200
2457    201: 201
2458    202: 202
2459    203: 203
2460    204: 204
2461    205: 205
2462    206: 206
2463    207: 207
2464    208: 208
2465    209: 209
2466    210: 210
2467    211: 211
2468    212: 212
2469    213: 213
2470    214: 214
2471    215: 215
2472    216: 216
2473    217: 217
2474    218: 218
2475    219: 219
2476    220: 220
2477    221: 221
2478    222: 222
2479    223: 223
2480    224: 224
2481    225: 225
2482    226: 226
2483    227: 227
2484    228: 228
2485    229: 229
2486    230: 230
2487    231: 231
2488    232: 232
2489    233: 233
2490    234: 234
2491    235: 235
2492    236: 236
2493    237: 237
2494    238: 238
2495    239: 239
2496    240: 240
2497    241: 241
2498    242: 242
2499    243: 243
2500    244: 244
2501    245: 245
2502    246: 246
2503    247: 247
2504    248: 248
2505    249: 249
2506    250: 250
2507    251: 251
2508    252: 252
2509    253: 253
2510    254: 254
2511    255: 255
2512    256: 256
2513    257: 257
2514    258: 258
2515    259: 259
2516    260: 260
2517    261: 261
2518    262: 262
2519    263: 263
2520    264: 264
2521    265: 265
2522    266: 266
2523    267: 267
2524    268: 268
2525    269: 269
2526    270: ABC
2527    271: ABC
2528    
2529    /This one's here because Perl does this differently and PCRE can't at present/
2530    Capturing subpattern count = 0
2531    No options
2532    First char = 'T'
2533    Need char = 't'
2534    
2535    /(main(O)?)+/
2536    Capturing subpattern count = 2
2537    No options
2538    First char = 'm'
2539    Need char = 'n'
2540        mainmain
2541     0: mainmain
2542     1: main
2543        mainOmain
2544     0: mainOmain
2545     1: main
2546     2: O
2547    
2548    /These are all cases where Perl does it differently (nested captures)/
2549    Capturing subpattern count = 1
2550    No options
2551    First char = 'T'
2552    Need char = 's'
2553    
2554    /^(a(b)?)+$/
2555    Capturing subpattern count = 2
2556    Options: anchored
2557    No first char
2558    No need char
2559        aba
2560     0: aba
2561     1: a
2562     2: b
2563    
2564    /^(aa(bb)?)+$/
2565    Capturing subpattern count = 2
2566    Options: anchored
2567    No first char
2568    No need char
2569        aabbaa
2570     0: aabbaa
2571     1: aa
2572     2: bb
2573    
2574    /^(aa|aa(bb))+$/
2575    Capturing subpattern count = 2
2576    Options: anchored
2577    No first char
2578    No need char
2579        aabbaa
2580     0: aabbaa
2581     1: aa
2582     2: bb
2583    
2584    /^(aa(bb)??)+$/
2585    Capturing subpattern count = 2
2586    Options: anchored
2587    No first char
2588    No need char
2589        aabbaa
2590     0: aabbaa
2591     1: aa
2592     2: bb
2593    
2594    /^(?:aa(bb)?)+$/
2595    Capturing subpattern count = 1
2596    Options: anchored
2597    No first char
2598    No need char
2599        aabbaa
2600     0: aabbaa
2601     1: bb
2602    
2603    /^(aa(b(b))?)+$/
2604    Capturing subpattern count = 3
2605    Options: anchored
2606    No first char
2607    No need char
2608        aabbaa
2609     0: aabbaa
2610     1: aa
2611     2: bb
2612     3: b
2613    
2614    /^(?:aa(b(b))?)+$/
2615    Capturing subpattern count = 2
2616    Options: anchored
2617    No first char
2618    No need char
2619        aabbaa
2620     0: aabbaa
2621     1: bb
2622     2: b
2623    
2624    /^(?:aa(b(?:b))?)+$/
2625    Capturing subpattern count = 1
2626    Options: anchored
2627    No first char
2628    No need char
2629        aabbaa
2630     0: aabbaa
2631     1: bb
2632    
2633    /^(?:aa(bb(?:b))?)+$/
2634    Capturing subpattern count = 1
2635    Options: anchored
2636    No first char
2637    No need char
2638        aabbbaa
2639     0: aabbbaa
2640     1: bbb
2641    
2642    /^(?:aa(b(?:bb))?)+$/
2643    Capturing subpattern count = 1
2644    Options: anchored
2645    No first char
2646    No need char
2647        aabbbaa
2648     0: aabbbaa
2649     1: bbb
2650    
2651    /^(?:aa(?:b(b))?)+$/
2652    Capturing subpattern count = 1
2653    Options: anchored
2654    No first char
2655    No need char
2656        aabbaa
2657     0: aabbaa
2658     1: b
2659    
2660    /^(?:aa(?:b(bb))?)+$/
2661    Capturing subpattern count = 1
2662    Options: anchored
2663    No first char
2664    No need char
2665        aabbbaa
2666     0: aabbbaa
2667     1: bb
2668    
2669    /^(aa(b(bb))?)+$/
2670    Capturing subpattern count = 3
2671    Options: anchored
2672    No first char
2673    No need char
2674        aabbbaa
2675     0: aabbbaa
2676     1: aa
2677     2: bbb
2678     3: bb
2679    
2680    /^(aa(bb(bb))?)+$/
2681    Capturing subpattern count = 3
2682    Options: anchored
2683    No first char
2684    No need char
2685        aabbbbaa
2686     0: aabbbbaa
2687     1: aa
2688     2: bbbb
2689     3: bb
2690    
2691    /--------------------------------------------------------------------/
2692    Capturing subpattern count = 0
2693    No options
2694    First char = '-'
2695    Need char = '-'
2696    
2697    /#/xMD
2698    Memory allocation (code space): 7
2699    ------------------------------------------------------------------
2700      0   3 Bra 0
2701      3   3 Ket
2702      6     End
2703    ------------------------------------------------------------------
2704    Capturing subpattern count = 0
2705    Options: extended
2706    No first char
2707    No need char
2708    
2709    /a#/xMD
2710    Memory allocation (code space): 9
2711    ------------------------------------------------------------------
2712      0   5 Bra 0
2713      3     a
2714      5   5 Ket
2715      8     End
2716    ------------------------------------------------------------------
2717    Capturing subpattern count = 0
2718    Options: extended
2719    First char = 'a'
2720    No need char
2721    
2722    /[\s]/D
2723    ------------------------------------------------------------------
2724      0  36 Bra 0
2725      3     [\x09\x0a\x0c\x0d ]
2726     36  36 Ket
2727     39     End
2728    ------------------------------------------------------------------
2729    Capturing subpattern count = 0
2730    No options
2731    No first char
2732    No need char
2733    
2734    /[\S]/D
2735    ------------------------------------------------------------------
2736      0  36 Bra 0
2737      3     [\x00-\x08\x0b\x0e-\x1f!-\xff]
2738     36  36 Ket
2739     39     End
2740    ------------------------------------------------------------------
2741    Capturing subpattern count = 0
2742    No options
2743    No first char
2744    No need char
2745    
2746    /a(?i)b/D
2747    ------------------------------------------------------------------
2748      0   9 Bra 0
2749      3     a
2750      5  01 Opt
2751      7  NC b
2752      9   9 Ket
2753     12     End
2754    ------------------------------------------------------------------
2755    Capturing subpattern count = 0
2756    No options
2757    First char = 'a'
2758    Need char = 'b' (caseless)
2759        ab
2760     0: ab
2761        aB
2762     0: aB
2763        *** Failers
2764    No match
2765        AB
2766    No match
2767    
2768    /(a(?i)b)/D
2769    ------------------------------------------------------------------
2770      0  17 Bra 0
2771      3   9 Bra 1
2772      6     a
2773      8  01 Opt
2774     10  NC b
2775     12   9 Ket
2776     15  00 Opt
2777     17  17 Ket
2778     20     End
2779    ------------------------------------------------------------------
2780    Capturing subpattern count = 1
2781    No options
2782    First char = 'a'
2783    Need char = 'b' (caseless)
2784        ab
2785     0: ab
2786     1: ab
2787        aB
2788     0: aB
2789     1: aB
2790        *** Failers
2791    No match
2792        AB
2793    No match
2794    
2795    /   (?i)abc/xD
2796    ------------------------------------------------------------------
2797      0   9 Bra 0
2798      3  NC abc
2799      9   9 Ket
2800     12     End
2801    ------------------------------------------------------------------
2802    Capturing subpattern count = 0
2803    Options: caseless extended
2804    First char = 'a' (caseless)
2805    Need char = 'c' (caseless)
2806    
2807    /#this is a comment
2808      (?i)abc/xD
2809    ------------------------------------------------------------------
2810      0   9 Bra 0
2811      3  NC abc
2812      9   9 Ket
2813     12     End
2814    ------------------------------------------------------------------
2815    Capturing subpattern count = 0
2816    Options: caseless extended
2817    First char = 'a' (caseless)
2818    Need char = 'c' (caseless)
2819    
2820    /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D
2821    ------------------------------------------------------------------
2822      0 603 Bra 0
2823      3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2824    603 603 Ket
2825    606     End
2826    ------------------------------------------------------------------
2827    Capturing subpattern count = 0
2828    No options
2829    First char = '1'
2830    Need char = '0'
2831    
2832    /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D
2833    ------------------------------------------------------------------
2834      0 603 Bra 0
2835      3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2836    603 603 Ket
2837    606     End
2838    ------------------------------------------------------------------
2839    Capturing subpattern count = 0
2840    No options
2841    First char = '1'
2842    Need char = '0'
2843    
2844    /\Q\E/D
2845    ------------------------------------------------------------------
2846      0   3 Bra 0
2847      3   3 Ket
2848      6     End
2849    ------------------------------------------------------------------
2850    Capturing subpattern count = 0
2851    No options
2852    No first char
2853    No need char
2854        \
2855     0:
2856    
2857    /\Q\Ex/D
2858    ------------------------------------------------------------------
2859      0   5 Bra 0
2860      3     x
2861      5   5 Ket
2862      8     End
2863    ------------------------------------------------------------------
2864    Capturing subpattern count = 0
2865    No options
2866    First char = 'x'
2867    No need char
2868    
2869    / \Q\E/D
2870    ------------------------------------------------------------------
2871      0   5 Bra 0
2872      3
2873      5   5 Ket
2874      8     End
2875    ------------------------------------------------------------------
2876    Capturing subpattern count = 0
2877    No options
2878    First char = ' '
2879    No need char
2880    
2881    /a\Q\E/D
2882    ------------------------------------------------------------------
2883      0   5 Bra 0
2884      3     a
2885      5   5 Ket
2886      8     End
2887    ------------------------------------------------------------------
2888    Capturing subpattern count = 0
2889    No options
2890    First char = 'a'
2891    No need char
2892      abc
2893     0: a
2894      bca
2895     0: a
2896      bac
2897     0: a
2898    
2899    /a\Q\Eb/D
2900    ------------------------------------------------------------------
2901      0   7 Bra 0
2902      3     ab
2903      7   7 Ket
2904     10     End
2905    ------------------------------------------------------------------
2906    Capturing subpattern count = 0
2907    No options
2908    First char = 'a'
2909    Need char = 'b'
2910      abc
2911     0: ab
2912    
2913    /\Q\Eabc/D
2914    ------------------------------------------------------------------
2915      0   9 Bra 0
2916      3     abc
2917      9   9 Ket
2918     12     End
2919    ------------------------------------------------------------------
2920    Capturing subpattern count = 0
2921    No options
2922    First char = 'a'
2923    Need char = 'c'
2924    
2925    /x*+\w/D
2926    ------------------------------------------------------------------
2927      0  12 Bra 0
2928      3   5 Once
2929      6     x*
2930      8   5 Ket
2931     11     \w
2932     12  12 Ket
2933     15     End
2934    ------------------------------------------------------------------
2935    Capturing subpattern count = 0
2936    Partial matching not supported
2937    No options
2938    No first char
2939    No need char
2940        *** Failers
2941     0: F
2942        xxxxx
2943    No match
2944    
2945    /x?+/D
2946    ------------------------------------------------------------------
2947      0  11 Bra 0
2948      3   5 Once
2949      6     x?
2950      8   5 Ket
2951     11  11 Ket
2952     14     End
2953    ------------------------------------------------------------------
2954    Capturing subpattern count = 0
2955    No options
2956    No first char
2957    No need char
2958    
2959    /x++/D
2960    ------------------------------------------------------------------
2961      0  11 Bra 0
2962      3   5 Once
2963      6     x+
2964      8   5 Ket
2965     11  11 Ket
2966     14     End
2967    ------------------------------------------------------------------
2968    Capturing subpattern count = 0
2969    Partial matching not supported
2970    No options
2971    First char = 'x'
2972    No need char
2973    
2974    /x{1,3}+/D
2975    ------------------------------------------------------------------
2976      0  15 Bra 0
2977      3   9 Once
2978      6     x
2979      8     x{,2}
2980     12   9 Ket
2981     15  15 Ket
2982     18     End
2983    ------------------------------------------------------------------
2984    Capturing subpattern count = 0
2985    Partial matching not supported
2986    No options
2987    First char = 'x'
2988    No need char
2989    
2990    /(x)*+/D
2991    ------------------------------------------------------------------
2992      0  18 Bra 0
2993      3  12 Once
2994      6     Brazero
2995      7   5 Bra 1
2996     10     x
2997     12   5 KetRmax
2998     15  12 Ket
2999     18  18 Ket
3000     21     End
3001    ------------------------------------------------------------------
3002    Capturing subpattern count = 1
3003    No options
3004    No first char
3005    No need char
3006    
3007    /^(\w++|\s++)*$/
3008    Capturing subpattern count = 1
3009    Partial matching not supported
3010    Options: anchored
3011    No first char
3012    No need char
3013        now is the time for all good men to come to the aid of the party
3014     0: now is the time for all good men to come to the aid of the party
3015     1: party
3016        *** Failers
3017    No match
3018        this is not a line with only words and spaces!
3019    No match
3020    
3021    /(\d++)(\w)/
3022    Capturing subpattern count = 2
3023    Partial matching not supported
3024    No options
3025    No first char
3026    No need char
3027        12345a
3028     0: 12345a
3029     1: 12345
3030     2: a
3031        *** Failers
3032    No match
3033        12345+
3034    No match
3035    
3036    /a++b/
3037    Capturing subpattern count = 0
3038    Partial matching not supported
3039    No options
3040    First char = 'a'
3041    Need char = 'b'
3042        aaab
3043     0: aaab
3044    
3045    /(a++b)/
3046    Capturing subpattern count = 1
3047    Partial matching not supported
3048    No options
3049    First char = 'a'
3050    Need char = 'b'
3051        aaab
3052     0: aaab
3053     1: aaab
3054    
3055    /(a++)b/
3056    Capturing subpattern count = 1
3057    Partial matching not supported
3058    No options
3059    First char = 'a'
3060    Need char = 'b'
3061        aaab
3062     0: aaab
3063     1: aaa
3064    
3065    /([^()]++|\([^()]*\))+/
3066    Capturing subpattern count = 1
3067    Partial matching not supported
3068    No options
3069    No first char
3070    No need char
3071        ((abc(ade)ufh()()x
3072     0: abc(ade)ufh()()x
3073     1: x
3074    
3075    /\(([^()]++|\([^()]+\))+\)/
3076    Capturing subpattern count = 1
3077    Partial matching not supported
3078    No options
3079    First char = '('
3080    Need char = ')'
3081        (abc)
3082     0: (abc)
3083     1: abc
3084        (abc(def)xyz)
3085     0: (abc(def)xyz)
3086     1: xyz
3087        *** Failers
3088    No match
3089        ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3090    No match
3091    
3092    /(abc){1,3}+/D
3093    ------------------------------------------------------------------
3094      0  53 Bra 0
3095      3  47 Once
3096      6   9 Bra 1
3097      9     abc
3098     15   9 Ket
3099     18     Brazero
3100     19  28 Bra 0
3101     22   9 Bra 1
3102     25     abc
3103     31   9 Ket
3104     34     Brazero
3105     35   9 Bra 1
3106     38     abc
3107     44   9 Ket
3108     47  28 Ket
3109     50  47 Ket
3110     53  53 Ket
3111     56     End
3112    ------------------------------------------------------------------
3113    Capturing subpattern count = 1
3114    No options
3115    First char = 'a'
3116    Need char = 'c'
3117    
3118    /a+?+/
3119    Failed: nothing to repeat at offset 3
3120    
3121    /a{2,3}?+b/
3122    Failed: nothing to repeat at offset 7
3123    
3124    /(?U)a+?+/
3125    Failed: nothing to repeat at offset 7
3126    
3127    /a{2,3}?+b/U
3128    Failed: nothing to repeat at offset 7
3129    
3130    /x(?U)a++b/D
3131    ------------------------------------------------------------------
3132      0  15 Bra 0
3133      3     x
3134      5   5 Once
3135      8     a+
3136     10   5 Ket
3137     13     b
3138     15  15 Ket
3139     18     End
3140    ------------------------------------------------------------------
3141    Capturing subpattern count = 0
3142    Partial matching not supported
3143    No options
3144    First char = 'x'
3145    Need char = 'b'
3146        xaaaab
3147     0: xaaaab
3148    
3149    /(?U)xa++b/D
3150    ------------------------------------------------------------------
3151      0  15 Bra 0
3152      3     x
3153      5   5 Once
3154      8     a+
3155     10   5 Ket
3156     13     b
3157     15  15 Ket
3158     18     End
3159    ------------------------------------------------------------------
3160    Capturing subpattern count = 0
3161    Partial matching not supported
3162    Options: ungreedy
3163    First char = 'x'
3164    Need char = 'b'
3165        xaaaab
3166     0: xaaaab
3167    
3168    /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D
3169    ------------------------------------------------------------------
3170      0 106 Bra 0
3171      3     ^
3172      4  99 Bra 1
3173      7   5 Bra 2
3174     10     a+
3175     12   5 Ket
3176     15  37 Bra 3
3177     18     [ab]+?
3178     52  37 Ket
3179     55  37 Bra 4
3180     58     [bc]+
3181     92  37 Ket
3182     95   5 Bra 5
3183     98     \w*
3184    100   5 Ket
3185    103  99 Ket
3186    106 106 Ket
3187    109     End
3188    ------------------------------------------------------------------
3189    Capturing subpattern count = 5
3190    Partial matching not supported
3191    Options: anchored
3192    No first char
3193    No need char
3194    
3195    /^x(?U)a+b/D
3196    ------------------------------------------------------------------
3197      0  10 Bra 0
3198      3     ^
3199      4     x
3200      6     a+?
3201      8     b
3202     10  10 Ket
3203     13     End
3204    ------------------------------------------------------------------
3205    Capturing subpattern count = 0
3206    Partial matching not supported
3207    Options: anchored
3208    No first char
3209    Need char = 'b'
3210    
3211    /^x(?U)(a+)b/D
3212    ------------------------------------------------------------------
3213      0  16 Bra 0
3214      3     ^
3215      4     x
3216      6   5 Bra 1
3217      9     a+?
3218     11   5 Ket
3219     14     b
3220     16  16 Ket
3221     19     End
3222    ------------------------------------------------------------------
3223    Capturing subpattern count = 1
3224    Partial matching not supported
3225    Options: anchored
3226    No first char
3227    Need char = 'b'
3228    
3229    /[.x.]/
3230    Failed: POSIX collating elements are not supported at offset 0
3231    
3232    /[=x=]/
3233    Failed: POSIX collating elements are not supported at offset 0
3234    
3235    /[:x:]/
3236    Failed: POSIX named classes are supported only within a class at offset 0
3237    
3238    /\l/
3239    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3240    
3241    /\L/
3242    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3243    
3244    /\N{name}/
3245    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3246    
3247    /\u/
3248    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3249    
3250    /\U/
3251    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3252    
3253    /[/
3254    Failed: missing terminating ] for character class at offset 1
3255    
3256    /[a-/
3257    Failed: missing terminating ] for character class at offset 3
3258    
3259    /[[:space:]/
3260    Failed: missing terminating ] for character class at offset 10
3261    
3262    /[\s]/DM
3263    Memory allocation (code space): 40
3264    ------------------------------------------------------------------
3265      0  36 Bra 0
3266      3     [\x09\x0a\x0c\x0d ]
3267     36  36 Ket
3268     39     End
3269    ------------------------------------------------------------------
3270    Capturing subpattern count = 0
3271    No options
3272    No first char
3273    No need char
3274    
3275    /[[:space:]]/DM
3276    Memory allocation (code space): 40
3277    ------------------------------------------------------------------
3278      0  36 Bra 0
3279      3     [\x09-\x0d ]
3280     36  36 Ket
3281     39     End
3282    ------------------------------------------------------------------
3283    Capturing subpattern count = 0
3284    No options
3285    No first char
3286    No need char
3287    
3288    /[[:space:]abcde]/DM
3289    Memory allocation (code space): 40
3290    ------------------------------------------------------------------
3291      0  36 Bra 0
3292      3     [\x09-\x0d a-e]
3293     36  36 Ket
3294     39     End
3295    ------------------------------------------------------------------
3296    Capturing subpattern count = 0
3297    No options
3298    No first char
3299    No need char
3300    
3301    /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x
3302    Capturing subpattern count = 0
3303    Partial matching not supported
3304    Options: extended
3305    First char = '<'
3306    Need char = '>'
3307        <>
3308     0: <>
3309        <abcd>
3310     0: <abcd>
3311        <abc <123> hij>
3312     0: <abc <123> hij>
3313        <abc <def> hij>
3314     0: <def>
3315        <abc<>def>
3316     0: <abc<>def>
3317        <abc<>
3318     0: <>
3319        *** Failers
3320    No match
3321        <abc
3322    No match
3323    
3324    |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|DM
3325    Memory allocation (code space): 826
3326    ------------------------------------------------------------------
3327      0 822 Bra 0
3328      3     8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3329    821     \b
3330    822 822 Ket
3331    825     End
3332    ------------------------------------------------------------------
3333    Capturing subpattern count = 0
3334    No options
3335    First char = '8'
3336    Need char = 'X'
3337    
3338    |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|DM
3339    Memory allocation (code space): 816
3340    ------------------------------------------------------------------
3341      0 812 Bra 0
3342      3     $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3343    811     \b
3344    812 812 Ket
3345    815     End
3346    ------------------------------------------------------------------
3347    Capturing subpattern count = 0
3348    No options
3349    First char = '$'
3350    Need char = 'X'
3351    
3352    /(.*)\d+\1/I
3353    Capturing subpattern count = 1
3354    Max back reference = 1
3355    Partial matching not supported
3356    No options
3357    No first char
3358    No need char
3359    
3360    /(.*)\d+/I
3361    Capturing subpattern count = 1
3362    Partial matching not supported
3363    No options
3364    First char at start or follows newline
3365    No need char
3366    
3367    /(.*)\d+\1/Is
3368    Capturing subpattern count = 1
3369    Max back reference = 1
3370    Partial matching not supported
3371    Options: dotall
3372    No first char
3373    No need char
3374    
3375    /(.*)\d+/Is
3376    Capturing subpattern count = 1
3377    Partial matching not supported
3378    Options: anchored dotall
3379    No first char
3380    No need char
3381    
3382    /(.*(xyz))\d+\2/I
3383    Capturing subpattern count = 2
3384    Max back reference = 2
3385    Partial matching not supported
3386    No options
3387    First char at start or follows newline
3388    Need char = 'z'
3389    
3390    /((.*))\d+\1/I
3391    Capturing subpattern count = 2
3392    Max back reference = 1
3393    Partial matching not supported
3394    No options
3395    No first char
3396    No need char
3397        abc123bc
3398     0: bc123bc
3399     1: bc
3400     2: bc
3401    
3402    /a[b]/I
3403    Capturing subpattern count = 0
3404    No options
3405    First char = 'a'
3406    Need char = 'b'
3407    
3408    /(?=a).*/I
3409    Capturing subpattern count = 0
3410    Partial matching not supported
3411    No options
3412    First char = 'a'
3413    No need char
3414    
3415    /(?=abc).xyz/iI
3416    Capturing subpattern count = 0
3417    Options: caseless
3418    First char = 'a' (caseless)
3419    Need char = 'z' (caseless)
3420    
3421    /(?=abc)(?i).xyz/I
3422    Capturing subpattern count = 0
3423    No options
3424    First char = 'a'
3425    Need char = 'z' (caseless)
3426    
3427    /(?=a)(?=b)/I
3428    Capturing subpattern count = 0
3429    No options
3430    First char = 'a'
3431    No need char
3432    
3433    /(?=.)a/I
3434    Capturing subpattern count = 0
3435    No options
3436    First char = 'a'
3437    No need char
3438    
3439    /((?=abcda)a)/I
3440    Capturing subpattern count = 1
3441    No options
3442    First char = 'a'
3443    Need char = 'a'
3444    
3445    /((?=abcda)ab)/I
3446    Capturing subpattern count = 1
3447    No options
3448    First char = 'a'
3449    Need char = 'b'
3450    
3451    /()a/I
3452    Capturing subpattern count = 1
3453    No options
3454    No first char
3455    Need char = 'a'
3456    
3457    /(?(1)ab|ac)/I
3458    Capturing subpattern count = 0
3459    No options
3460    First char = 'a'
3461    No need char
3462    
3463    /(?(1)abz|acz)/I
3464    Capturing subpattern count = 0
3465    No options
3466    First char = 'a'
3467    Need char = 'z'
3468    
3469    /(?(1)abz)/I
3470    Capturing subpattern count = 0
3471    No options
3472    No first char
3473    No need char
3474    
3475    /(?(1)abz)123/I
3476    Capturing subpattern count = 0
3477    No options
3478    No first char
3479    Need char = '3'
3480    
3481    /(a)+/I
3482    Capturing subpattern count = 1
3483    No options
3484    First char = 'a'
3485    No need char
3486    
3487    /(a){2,3}/I
3488    Capturing subpattern count = 1
3489    No options
3490    First char = 'a'
3491    Need char = 'a'
3492    
3493    /(a)*/I
3494    Capturing subpattern count = 1
3495    No options
3496    No first char
3497    No need char
3498    
3499    /[a]/I
3500    Capturing subpattern count = 0
3501    No options
3502    First char = 'a'
3503    No need char
3504    
3505    /[ab]/I
3506    Capturing subpattern count = 0
3507    No options
3508    No first char
3509    No need char
3510    
3511    /[ab]/IS
3512    Capturing subpattern count = 0
3513    No options
3514    No first char
3515    No need char
3516    Starting byte set: a b
3517    
3518    /[^a]/I
3519    Capturing subpattern count = 0
3520    No options
3521    No first char
3522    No need char
3523    
3524    /\d456/I
3525    Capturing subpattern count = 0
3526    No options
3527    No first char
3528    Need char = '6'
3529    
3530    /\d456/IS
3531    Capturing subpattern count = 0
3532    No options
3533    No first char
3534    Need char = '6'
3535    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3536    
3537    /a^b/I
3538    Capturing subpattern count = 0
3539    No options
3540    First char = 'a'
3541    Need char = 'b'
3542    
3543    /^a/mI
3544    Capturing subpattern count = 0
3545    Options: multiline
3546    First char at start or follows newline
3547    Need char = 'a'
3548      abcde
3549     0: a
3550      xy\nabc
3551     0: a
3552      *** Failers
3553    No match
3554      xyabc
3555    No match
3556    
3557    /c|abc/I
3558    Capturing subpattern count = 0
3559    No options
3560    No first char
3561    Need char = 'c'
3562    
3563    /(?i)[ab]/IS
3564    Capturing subpattern count = 0
3565    Options: caseless
3566    No first char
3567    No need char
3568    Starting byte set: A B a b
3569    
3570    /[ab](?i)cd/IS
3571    Capturing subpattern count = 0
3572    No options
3573    No first char
3574    Need char = 'd' (caseless)
3575    Starting byte set: a b
3576    
3577    /abc(?C)def/
3578    Capturing subpattern count = 0
3579    No options
3580    First char = 'a'
3581    Need char = 'f'
3582        abcdef
3583    --->abcdef
3584      0 ^  ^       d
3585     0: abcdef
3586        1234abcdef
3587    --->1234abcdef
3588      0     ^  ^       d
3589     0: abcdef
3590        *** Failers
3591    No match
3592        abcxyz
3593    No match
3594        abcxyzf
3595    --->abcxyzf
3596      0 ^  ^        d
3597    No match
3598    
3599    /abc(?C)de(?C1)f/
3600    Capturing subpattern count = 0
3601    No options
3602    First char = 'a'
3603    Need char = 'f'
3604        123abcdef
3605    --->123abcdef
3606      0    ^  ^       d
3607      1    ^    ^     f
3608     0: abcdef
3609    
3610    /(?C1)\dabc(?C2)def/
3611    Capturing subpattern count = 0
3612    No options
3613    No first char
3614    Need char = 'f'
3615        1234abcdef
3616    --->1234abcdef
3617      1 ^              \d
3618      1  ^             \d
3619      1   ^            \d
3620      1    ^           \d
3621      2    ^   ^       d
3622     0: 4abcdef
3623        *** Failers
3624    No match
3625        abcdef
3626    --->abcdef
3627      1 ^          \d
3628      1  ^         \d
3629      1   ^        \d
3630      1    ^       \d
3631      1     ^      \d
3632      1      ^     \d
3633    No match
3634    
3635    /(?C255)ab/
3636    Capturing subpattern count = 0
3637    No options
3638    First char = 'a'
3639    Need char = 'b'
3640    
3641    /(?C256)ab/
3642    Failed: number after (?C is > 255 at offset 6
3643    
3644    /(?Cab)xx/
3645    Failed: closing ) for (?C expected at offset 3
3646    
3647    /(?C12vr)x/
3648    Failed: closing ) for (?C expected at offset 5
3649    
3650    /abc(?C)def/
3651    Capturing subpattern count = 0
3652    No options
3653    First char = 'a'
3654    Need char = 'f'
3655        *** Failers
3656    No match
3657        \x83\x0\x61bcdef
3658    --->\x83\x00abcdef
3659      0         ^  ^       d
3660     0: abcdef
3661    
3662    /(abc)(?C)de(?C1)f/
3663    Capturing subpattern count = 1
3664    No options
3665    First char = 'a'
3666    Need char = 'f'
3667        123abcdef
3668    --->123abcdef
3669      0    ^  ^       d
3670      1    ^    ^     f
3671     0: abcdef
3672     1: abc
3673        123abcdef\C+
3674    Callout 0: last capture = 1
3675     0: <unset>
3676     1: abc
3677    --->123abcdef
3678           ^  ^       d
3679    Callout 1: last capture = 1
3680     0: <unset>
3681     1: abc
3682    --->123abcdef
3683           ^    ^     f
3684     0: abcdef
3685     1: abc
3686        123abcdef\C-
3687     0: abcdef
3688     1: abc
3689        *** Failers
3690    No match
3691        123abcdef\C!1
3692    --->123abcdef
3693      0    ^  ^       d
3694      1    ^    ^     f
3695    No match
3696    
3697    /(?C0)(abc(?C1))*/
3698    Capturing subpattern count = 1
3699    No options
3700    No first char
3701    No need char
3702        abcabcabc
3703    --->abcabcabc
3704      0 ^             (abc(?C1))*
3705      1 ^  ^          )
3706      1 ^     ^       )
3707      1 ^        ^    )
3708     0: abcabcabc
3709     1: abc
3710        abcabc\C!1!3
3711    --->abcabc
3712      0 ^          (abc(?C1))*
3713      1 ^  ^       )
3714      1 ^     ^    )
3715     0: abcabc
3716     1: abc
3717        *** Failers
3718    --->*** Failers
3719      0 ^               (abc(?C1))*
3720     0:
3721        abcabcabc\C!1!3
3722    --->abcabcabc
3723      0 ^             (abc(?C1))*
3724      1 ^  ^          )
3725      1 ^     ^       )
3726      1 ^        ^    )
3727     0: abcabc
3728     1: abc
3729    
3730    /(\d{3}(?C))*/
3731    Capturing subpattern count = 1
3732    Partial matching not supported
3733    No options
3734    No first char
3735    No need char
3736        123\C+
3737    Callout 0: last capture = -1
3738     0: <unset>
3739    --->123
3740        ^  ^    )
3741     0: 123
3742     1: 123
3743        123456\C+
3744    Callout 0: last capture = -1
3745     0: <unset>
3746    --->123456
3747        ^  ^       )
3748    Callout 0: last capture = 1
3749     0: <unset>
3750     1: 123
3751    --->123456
3752        ^     ^    )
3753     0: 123456
3754     1: 456
3755        123456789\C+
3756    Callout 0: last capture = -1
3757     0: <unset>
3758    --->123456789
3759        ^  ^          )
3760    Callout 0: last capture = 1
3761     0: <unset>
3762     1: 123
3763    --->123456789
3764        ^     ^       )
3765    Callout 0: last capture = 1
3766     0: <unset>
3767     1: 456
3768    --->123456789
3769        ^        ^    )
3770     0: 123456789
3771     1: 789
3772    
3773    /((xyz)(?C)p|(?C1)xyzabc)/
3774    Capturing subpattern count = 2
3775    No options
3776    First char = 'x'
3777    No need char
3778        xyzabc\C+
3779    Callout 0: last capture = 2
3780     0: <unset>
3781     1: <unset>
3782     2: xyz
3783    --->xyzabc
3784        ^  ^       p
3785    Callout 1: last capture = -1
3786     0: <unset>
3787    --->xyzabc
3788        ^          x
3789     0: xyzabc
3790     1: xyzabc
3791    
3792    /(X)((xyz)(?C)p|(?C1)xyzabc)/
3793    Capturing subpattern count = 3
3794    No options
3795    First char = 'X'
3796    Need char = 'x'
3797        Xxyzabc\C+
3798    Callout 0: last capture = 3
3799     0: <unset>
3800     1: X
3801     2: <unset>
3802     3: xyz
3803    --->Xxyzabc
3804        ^   ^       p
3805    Callout 1: last capture = 1
3806     0: <unset>
3807     1: X
3808    --->Xxyzabc
3809        ^^          x
3810     0: Xxyzabc
3811     1: X
3812     2: xyzabc
3813    
3814    /(?=(abc))(?C)abcdef/
3815    Capturing subpattern count = 1
3816    No options
3817    First char = 'a'
3818    Need char = 'f'
3819        abcdef\C+
3820    Callout 0: last capture = 1
3821     0: <unset>
3822     1: abc
3823    --->abcdef
3824        ^          a
3825     0: abcdef
3826     1: abc
3827    
3828    /(?!(abc)(?C1)d)(?C2)abcxyz/
3829    Capturing subpattern count = 1
3830    No options
3831    First char = 'a'
3832    Need char = 'z'
3833        abcxyz\C+
3834    Callout 1: last capture = 1
3835     0: <unset>
3836     1: abc
3837    --->abcxyz
3838        ^  ^       d
3839    Callout 2: last capture = -1
3840     0: <unset>
3841    --->abcxyz
3842        ^          a
3843     0: abcxyz
3844    
3845    /(?<=(abc)(?C))xyz/
3846    Capturing subpattern count = 1
3847    No options
3848    First char = 'x'
3849    Need char = 'z'
3850       abcxyz\C+
3851    Callout 0: last capture = 1
3852     0: <unset>
3853     1: abc
3854    --->abcxyz
3855           ^       )
3856     0: xyz
3857     1: abc
3858    
3859    /a(b+)(c*)(?C1)/
3860    Capturing subpattern count = 2
3861    Partial matching not supported
3862    No options
3863    First char = 'a'
3864    Need char = 'b'
3865        abbbbbccc\C*1
3866    --->abbbbbccc
3867      1 ^        ^
3868    Callout data = 1
3869      1 ^       ^
3870    Callout data = 1
3871      1 ^      ^
3872    Callout data = 1
3873      1 ^     ^
3874    Callout data = 1
3875      1 ^    ^
3876    Callout data = 1
3877      1 ^   ^
3878    Callout data = 1
3879      1 ^  ^
3880    Callout data = 1
3881      1 ^ ^
3882    Callout data = 1
3883    No match
3884    
3885    /a(b+?)(c*?)(?C1)/
3886    Capturing subpattern count = 2
3887    Partial matching not supported
3888    No options
3889    First char = 'a'
3890    Need char = 'b'
3891        abbbbbccc\C*1
3892    --->abbbbbccc
3893      1 ^ ^
3894    Callout data = 1
3895      1 ^  ^
3896    Callout data = 1
3897      1 ^   ^
3898    Callout data = 1
3899      1 ^    ^
3900    Callout data = 1
3901      1 ^     ^
3902    Callout data = 1
3903      1 ^      ^
3904    Callout data = 1
3905      1 ^       ^
3906    Callout data = 1
3907      1 ^        ^
3908    Callout data = 1
3909    No match
3910    
3911    /(?C)abc/
3912    Capturing subpattern count = 0
3913    No options
3914    First char = 'a'
3915    Need char = 'c'
3916    
3917    /(?C)^abc/
3918    Capturing subpattern count = 0
3919    Options: anchored
3920    No first char
3921    No need char
3922    
3923    /(?C)a|b/S
3924    Capturing subpattern count = 0
3925    No options
3926    No first char
3927    No need char
3928    Starting byte set: a b
3929    
3930    /(?R)/
3931    Failed: recursive call could loop indefinitely at offset 3
3932    
3933    /(a|(?R))/
3934    Failed: recursive call could loop indefinitely at offset 6
3935    
3936    /(ab|(bc|(de|(?R))))/
3937    Failed: recursive call could loop indefinitely at offset 15
3938    
3939    /x(ab|(bc|(de|(?R))))/
3940    Capturing subpattern count = 3
3941    No options
3942    First char = 'x'
3943    No need char
3944        xab
3945     0: xab
3946     1: ab
3947        xbc
3948     0: xbc
3949     1: bc
3950     2: bc
3951        xde
3952     0: xde
3953     1: de
3954     2: de
3955     3: de
3956        xxab
3957     0: xxab
3958     1: xab
3959     2: xab
3960     3: xab
3961        xxxab
3962     0: xxxab
3963     1: xxab
3964     2: xxab
3965     3: xxab
3966        *** Failers
3967    No match
3968        xyab
3969    No match
3970    
3971    /(ab|(bc|(de|(?1))))/
3972    Failed: recursive call could loop indefinitely at offset 15
3973    
3974    /x(ab|(bc|(de|(?1)x)x)x)/
3975    Failed: recursive call could loop indefinitely at offset 16
3976    
3977    /^([^()]|\((?1)*\))*$/
3978    Capturing subpattern count = 1
3979    Options: anchored
3980    No first char
3981    No need char
3982        abc
3983     0: abc
3984     1: c
3985        a(b)c
3986     0: a(b)c
3987     1: c
3988        a(b(c))d
3989     0: a(b(c))d
3990     1: d
3991        *** Failers)
3992    No match
3993        a(b(c)d
3994    No match
3995    
3996    /^>abc>([^()]|\((?1)*\))*<xyz<$/
3997    Capturing subpattern count = 1
3998    Options: anchored
3999    No first char
4000    Need char = '<'
4001       >abc>123<xyz<
4002     0: >abc>123<xyz<
4003     1: 3
4004       >abc>1(2)3<xyz<
4005     0: >abc>1(2)3<xyz<
4006     1: 3
4007       >abc>(1(2)3)<xyz<
4008     0: >abc>(1(2)3)<xyz<
4009     1: (1(2)3)
4010    
4011    /(a(?1)b)/D
4012    ------------------------------------------------------------------
4013      0  22 Bra 0
4014      3  16 Bra 1
4015      6     a
4016      8   6 Once
4017     11   3 Recurse
4018     14   6 Ket
4019     17     b
4020     19  16 Ket
4021     22  22 Ket
4022     25     End
4023    ------------------------------------------------------------------
4024    Capturing subpattern count = 1
4025    No options
4026    First char = 'a'
4027    Need char = 'b'
4028    
4029    /(a(?1)+b)/D
4030    ------------------------------------------------------------------
4031      0  22 Bra 0
4032      3  16 Bra 1
4033      6     a
4034      8   6 Once
4035     11   3 Recurse
4036     14   6 KetRmax
4037     17     b
4038     19  16 Ket
4039     22  22 Ket
4040     25     End
4041    ------------------------------------------------------------------
4042    Capturing subpattern count = 1
4043    No options
4044    First char = 'a'
4045    Need char = 'b'
4046    
4047    /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i
4048    Capturing subpattern count = 4
4049    Max back reference = 4
4050    Partial matching not supported
4051    Options: anchored caseless
4052    No first char
4053    No need char
4054        1221
4055     0: 1221
4056     1: 1221
4057     2: 1
4058        Satan, oscillate my metallic sonatas!
4059     0: Satan, oscillate my metallic sonatas!
4060     1: <unset>
4061     2: <unset>
4062     3: Satan, oscillate my metallic sonatas
4063     4: S
4064        A man, a plan, a canal: Panama!
4065     0: A man, a plan, a canal: Panama!
4066     1: <unset>
4067     2: <unset>
4068     3: A man, a plan, a canal: Panama
4069     4: A
4070        Able was I ere I saw Elba.
4071     0: Able was I ere I saw Elba.
4072     1: <unset>
4073     2: <unset>
4074     3: Able was I ere I saw Elba
4075     4: A
4076        *** Failers
4077    No match
4078        The quick brown fox
4079    No match
4080    
4081    /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/
4082    Capturing subpattern count = 2
4083    Partial matching not supported
4084    Options: anchored
4085    No first char
4086    No need char
4087        12
4088     0: 12
4089     1: 12
4090        (((2+2)*-3)-7)
4091     0: (((2+2)*-3)-7)
4092     1: (((2+2)*-3)-7)
4093     2: -
4094        -12
4095     0: -12
4096     1: -12
4097        *** Failers
4098    No match
4099        ((2+2)*-3)-7)
4100    No match
4101    
4102    /^(x(y|(?1){2})z)/
4103    Capturing subpattern count = 2
4104    Options: anchored
4105    No first char
4106    No need char
4107        xyz
4108     0: xyz
4109     1: xyz
4110     2: y
4111        xxyzxyzz
4112     0: xxyzxyzz
4113     1: xxyzxyzz
4114     2: xyzxyz
4115        *** Failers
4116    No match
4117        xxyzz
4118    No match
4119        xxyzxyzxyzz
4120    No match
4121    
4122    /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x
4123    Capturing subpattern count = 2
4124    Partial matching not supported
4125    Options: extended
4126    First char = '<'
4127    Need char = '>'
4128        <>
4129     0: <>
4130     1: <>
4131     2: <>
4132        <abcd>
4133     0: <abcd>
4134     1: <abcd>
4135     2: <abcd>
4136        <abc <123> hij>
4137     0: <abc <123> hij>
4138     1: <abc <123> hij>
4139     2: <abc <123> hij>
4140        <abc <def> hij>
4141     0: <def>
4142     1: <def>
4143     2: <def>
4144        <abc<>def>
4145     0: <abc<>def>
4146     1: <abc<>def>
4147     2: <abc<>def>
4148        <abc<>
4149     0: <>
4150     1: <>
4151     2: <>
4152        *** Failers
4153    No match
4154        <abc
4155    No match
4156    
4157    /(?1)/
4158    Failed: reference to non-existent subpattern at offset 3
4159    
4160    /((?2)(abc)/
4161    Failed: reference to non-existent subpattern at offset 4
4162    
4163    /^(abc)def(?1)/
4164    Capturing subpattern count = 1
4165    Options: anchored
4166    No first char
4167    No need char
4168        abcdefabc
4169     0: abcdefabc
4170     1: abc
4171    
4172    /^(a|b|c)=(?1)+/
4173    Capturing subpattern count = 1
4174    Options: anchored
4175    No first char
4176    No need char
4177        a=a
4178     0: a=a
4179     1: a
4180        a=b
4181     0: a=b
4182     1: a
4183        a=bc
4184     0: a=bc
4185     1: a
4186    
4187    /^(a|b|c)=((?1))+/
4188    Capturing subpattern count = 2
4189    Options: anchored
4190    No first char
4191    No need char
4192        a=a
4193     0: a=a
4194     1: a
4195     2: a
4196        a=b
4197     0: a=b
4198     1: a
4199     2: b
4200        a=bc
4201     0: a=bc
4202     1: a
4203     2: c
4204    
4205    /a(?P<name1>b|c)d(?P<longername2>e)/D
4206    ------------------------------------------------------------------
4207      0  28 Bra 0
4208      3     a
4209      5   5 Bra 1
4210      8     b
4211     10   5 Alt
4212     13     c
4213     15  10 Ket
4214     18     d
4215     20   5 Bra 2
4216     23     e
4217     25   5 Ket
4218     28  28 Ket
4219     31     End
4220    ------------------------------------------------------------------
4221    Capturing subpattern count = 2
4222    Named capturing subpatterns:
4223      longername2   2
4224      name1         1
4225    No options
4226    First char = 'a'
4227    Need char = 'e'
4228        abde
4229     0: abde
4230     1: b
4231     2: e
4232        acde
4233     0: acde
4234     1: c
4235     2: e
4236    
4237    /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D
4238    ------------------------------------------------------------------
4239      0  35 Bra 0
4240      3  21 Bra 0
4241      6     a
4242      8  13 Bra 1
4243     11     c
4244     13   5 Bra 2
4245     16     d
4246     18   5 Ket
4247     21  13 Ket
4248     24  21 Ket
4249     27   5 Bra 3
4250     30     a
4251     32   5 Ket
4252     35  35 Ket
4253     38     End
4254    ------------------------------------------------------------------
4255    Capturing subpattern count = 3
4256    Named capturing subpatterns:
4257      a   3
4258      c   1
4259      d   2
4260    No options
4261    First char = 'a'
4262    Need char = 'a'
4263    
4264    /(?P<a>a)...(?P=a)bbb(?P>a)d/D
4265    ------------------------------------------------------------------
4266      0  34 Bra 0
4267      3   5 Bra 1
4268      6     a
4269      8   5 Ket
4270     11     Any
4271     12     Any
4272     13     Any
4273     14     \1
4274     17     bbb
4275     23   6 Once
4276     26   3 Recurse
4277     29   6 Ket
4278     32     d
4279     34  34 Ket
4280     37     End
4281    ------------------------------------------------------------------
4282    Capturing subpattern count = 1
4283    Max back reference = 1
4284    Named capturing subpatterns:
4285      a   1
4286    No options
4287    First char = 'a'
4288    Need char = 'd'
4289    
4290    /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/i
4291    Capturing subpattern count = 4
4292    Max back reference = 4
4293    Named capturing subpatterns:
4294      four    4
4295      one     1
4296      three   3
4297      two     2
4298    Partial matching not supported
4299    Options: anchored caseless
4300    No first char
4301    No need char
4302        1221
4303     0: 1221
4304     1: 1221
4305     2: 1
4306        Satan, oscillate my metallic sonatas!
4307     0: Satan, oscillate my metallic sonatas!
4308     1: <unset>
4309     2: <unset>
4310     3: Satan, oscillate my metallic sonatas
4311     4: S
4312        A man, a plan, a canal: Panama!
4313     0: A man, a plan, a canal: Panama!
4314     1: <unset>
4315     2: <unset>
4316     3: A man, a plan, a canal: Panama
4317     4: A
4318        Able was I ere I saw Elba.
4319     0: Able was I ere I saw Elba.
4320     1: <unset>
4321     2: <unset>
4322     3: Able was I ere I saw Elba
4323     4: A
4324        *** Failers
4325    No match
4326        The quick brown fox
4327    No match
4328    
4329    /((?(R)a|b))\1(?1)?/
4330    Capturing subpattern count = 1
4331    Max back reference = 1
4332    No options
4333    No first char
4334    No need char
4335      bb
4336     0: bb
4337     1: b
4338      bbaa
4339     0: bba
4340     1: b
4341    
4342    /(.*)a/sI
4343    Capturing subpattern count = 1
4344    Partial matching not supported
4345    Options: anchored dotall
4346    No first char
4347    Need char = 'a'
4348    
4349    /(.*)a\1/sI
4350    Capturing subpattern count = 1
4351    Max back reference = 1
4352    Partial matching not supported
4353    Options: dotall
4354    No first char
4355    Need char = 'a'
4356    
4357    /(.*)a(b)\2/sI
4358    Capturing subpattern count = 2
4359    Max back reference = 2
4360    Partial matching not supported
4361    Options: anchored dotall
4362    No first char
4363    Need char = 'b'
4364    
4365    /((.*)a|(.*)b)z/sI
4366    Capturing subpattern count = 3
4367    Partial matching not supported
4368    Options: anchored dotall
4369    No first char
4370    Need char = 'z'
4371    
4372    /((.*)a|(.*)b)z\1/sI
4373    Capturing subpattern count = 3
4374    Max back reference = 1
4375    Partial matching not supported
4376    Options: dotall
4377    No first char
4378    Need char = 'z'
4379    
4380    /((.*)a|(.*)b)z\2/sI
4381    Capturing subpattern count = 3
4382    Max back reference = 2
4383    Partial matching not supported
4384    Options: dotall
4385    No first char
4386    Need char = 'z'
4387    
4388    /((.*)a|(.*)b)z\3/sI