/[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 87 by nigel, Sat Feb 24 21:41:21 2007 UTC revision 448 by ph10, Tue Sep 15 19:11:48 2009 UTC
# Line 1  Line 1 
1  /(a)b|/  /(a)b|/I
2  Capturing subpattern count = 1  Capturing subpattern count = 1
3  No options  No options
4  No first char  No first char
5  No need char  No need char
6    
7  /abc/  /abc/I
8  Capturing subpattern count = 0  Capturing subpattern count = 0
9  No options  No options
10  First char = 'a'  First char = 'a'
# Line 22  No match Line 22  No match
22      ABC      ABC
23  No match  No match
24    
25  /^abc/  /^abc/I
26  Capturing subpattern count = 0  Capturing subpattern count = 0
27  Options: anchored  Options: anchored
28  No first char  No first char
# Line 38  No match Line 38  No match
38      \Adefabc      \Adefabc
39  No match  No match
40    
41  /a+bc/  /a+bc/I
42  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
43  No options  No options
44  First char = 'a'  First char = 'a'
45  Need char = 'c'  Need char = 'c'
46    
47  /a*bc/  /a*bc/I
48  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
49  No options  No options
50  No first char  No first char
51  Need char = 'c'  Need char = 'c'
52    
53  /a{3}bc/  /a{3}bc/I
54  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
55  No options  No options
56  First char = 'a'  First char = 'a'
57  Need char = 'c'  Need char = 'c'
58    
59  /(abc|a+z)/  /(abc|a+z)/I
60  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
61  No options  No options
62  First char = 'a'  First char = 'a'
63  No need char  No need char
64    
65  /^abc$/  /^abc$/I
66  Capturing subpattern count = 0  Capturing subpattern count = 0
67  Options: anchored  Options: anchored
68  No first char  No first char
# Line 78  No match Line 74  No match
74      def\nabc      def\nabc
75  No match  No match
76    
77  /ab\gdef/X  /ab\idef/X
78  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
79    
80  /(?X)ab\gdef/X  /(?X)ab\idef/X
81  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
82    
83  /x{5,4}/  /x{5,4}/
# Line 109  Failed: missing ) at offset 4 Line 105  Failed: missing ) at offset 4
105  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
106    
107  /(?z)abc/  /(?z)abc/
108  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
109    
110  /.*b/  /.*b/I
111  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
112  No options  No options
113  First char at start or follows \n  First char at start or follows newline
114  Need char = 'b'  Need char = 'b'
115    
116  /.*?b/  /.*?b/I
117  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
118  No options  No options
119  First char at start or follows \n  First char at start or follows newline
120  Need char = 'b'  Need char = 'b'
121    
122  /cat|dog|elephant/  /cat|dog|elephant/I
123  Capturing subpattern count = 0  Capturing subpattern count = 0
124  No options  No options
125  No first char  No first char
# Line 135  No need char Line 129  No need char
129      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
130   0: elephant   0: elephant
131    
132  /cat|dog|elephant/S  /cat|dog|elephant/IS
133  Capturing subpattern count = 0  Capturing subpattern count = 0
134  No options  No options
135  No first char  No first char
# Line 146  Starting byte set: c d e Line 140  Starting byte set: c d e
140      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
141   0: elephant   0: elephant
142    
143  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
144  Capturing subpattern count = 0  Capturing subpattern count = 0
145  Options: caseless  Options: caseless
146  No first char  No first char
# Line 157  Starting byte set: C D E c d e Line 151  Starting byte set: C D E c d e
151      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
152   0: elephant   0: elephant
153    
154  /a|[bcd]/S  /a|[bcd]/IS
155  Capturing subpattern count = 0  Capturing subpattern count = 0
156  No options  No options
157  No first char  No first char
158  No need char  No need char
159  Starting byte set: a b c d  Starting byte set: a b c d
160    
161  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
162  Capturing subpattern count = 1  Capturing subpattern count = 1
163  No options  No options
164  No first char  No first char
# Line 184  Starting byte set: \x00 \x01 \x02 \x03 \ Line 178  Starting byte set: \x00 \x01 \x02 \x03 \
178    \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb    \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
179    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
180    
181  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
182  Capturing subpattern count = 1  Capturing subpattern count = 1
183  No options  No options
184  No first char  No first char
# Line 197  Failed: reference to non-existent subpat Line 191  Failed: reference to non-existent subpat
191  /{4,5}abc/  /{4,5}abc/
192  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
193    
194  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
195  Capturing subpattern count = 3  Capturing subpattern count = 3
196  Max back reference = 2  Max back reference = 2
197  No options  No options
# Line 222  Matched, but too many substrings Line 216  Matched, but too many substrings
216   0: abcb   0: abcb
217   1: a   1: a
218   2: b   2: b
219      \O12abcb      \O12abcb
220   0: abcb   0: abcb
221   1: a   1: a
222   2: b   2: b
223   3: c   3: c
224    
225  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
226  Capturing subpattern count = 3  Capturing subpattern count = 3
227  Max back reference = 2  Max back reference = 2
228  No options  No options
# Line 270  Matched, but too many substrings Line 264  Matched, but too many substrings
264   2: a   2: a
265   3: b   3: b
266    
267  /abc$/E  /abc$/IE
268  Capturing subpattern count = 0  Capturing subpattern count = 0
269  Options: dollar_endonly  Options: dollar_endonly
270  First char = 'a'  First char = 'a'
# Line 287  No match Line 281  No match
281  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
282  Failed: reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
283    
284  /the quick brown fox/  /the quick brown fox/I
285  Capturing subpattern count = 0  Capturing subpattern count = 0
286  No options  No options
287  First char = 't'  First char = 't'
# Line 297  Need char = 'x' Line 291  Need char = 'x'
291      this is a line with the quick brown fox      this is a line with the quick brown fox
292   0: the quick brown fox   0: the quick brown fox
293    
294  /the quick brown fox/A  /the quick brown fox/IA
295  Capturing subpattern count = 0  Capturing subpattern count = 0
296  Options: anchored  Options: anchored
297  No first char  No first char
# Line 310  No match Line 304  No match
304  No match  No match
305    
306  /ab(?z)cd/  /ab(?z)cd/
307  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
308    
309  /^abc|def/  /^abc|def/I
310  Capturing subpattern count = 0  Capturing subpattern count = 0
311  No options  No options
312  No first char  No first char
# Line 322  No need char Line 316  No need char
316      abcdef\B      abcdef\B
317   0: def   0: def
318    
319  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
320  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
321  No options  No options
322  First char at start or follows \n  First char at start or follows newline
323  No need char  No need char
324      defabc      defabc
325   0: defabc   0: defabc
# Line 343  No need char Line 336  No need char
336   0: abc   0: abc
337      *** Failers      *** Failers
338  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
339    
340  /^abc|def/P  /^abc|def/P
341      abcdef      abcdef
342   0: abc   0: abc
# Line 359  No match: POSIX code 17: match failed Line 352  No match: POSIX code 17: match failed
352   0: def   0: def
353   1: def   1: def
354   3: def   3: def
355    
356  /the quick brown fox/P  /the quick brown fox/P
357      the quick brown fox      the quick brown fox
358   0: the quick brown fox   0: the quick brown fox
359      *** Failers      *** Failers
360  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
361      The Quick Brown Fox      The Quick Brown Fox
362  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
363    
364  /the quick brown fox/Pi  /the quick brown fox/Pi
365      the quick brown fox      the quick brown fox
366   0: the quick brown fox   0: the quick brown fox
367      The Quick Brown Fox      The Quick Brown Fox
368   0: The Quick Brown Fox   0: The Quick Brown Fox
369    
370  /abc.def/P  /abc.def/P
# Line 379  No match: POSIX code 17: match failed Line 372  No match: POSIX code 17: match failed
372  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
373      abc\ndef      abc\ndef
374  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
375    
376  /abc$/P  /abc$/P
377      abc      abc
378   0: abc   0: abc
379      abc\n      abc\n
380   0: abc   0: abc
381    
382  /(abc)\2/P  /(abc)\2/P
# Line 399  Failed: unmatched parentheses at offset Line 392  Failed: unmatched parentheses at offset
392  /a[]b/  /a[]b/
393  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
394    
395  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
396  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
397  No options  No options
398  No first char  No first char
399  No need char  No need char
400      co-processors, and for      co-processors, and for
401   0: -pr   0: -pr
402    
403  /<.*>/  /<.*>/I
404  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
405  No options  No options
406  First char = '<'  First char = '<'
407  Need char = '>'  Need char = '>'
408      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
409   0: <def>ghi<klm>   0: <def>ghi<klm>
410    
411  /<.*?>/  /<.*?>/I
412  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
413  No options  No options
414  First char = '<'  First char = '<'
415  Need char = '>'  Need char = '>'
416      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
417   0: <def>   0: <def>
418    
419  /<.*>/U  /<.*>/IU
420  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
421  Options: ungreedy  Options: ungreedy
422  First char = '<'  First char = '<'
423  Need char = '>'  Need char = '>'
424      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
425   0: <def>   0: <def>
426    
427  /(?U)<.*>/  /(?U)<.*>/I
428  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
429  Options: ungreedy  Options: ungreedy
430  First char = '<'  First char = '<'
431  Need char = '>'  Need char = '>'
432      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
433   0: <def>   0: <def>
434    
435  /<.*?>/U  /<.*?>/IU
436  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
437  Options: ungreedy  Options: ungreedy
438  First char = '<'  First char = '<'
439  Need char = '>'  Need char = '>'
440      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
441   0: <def>ghi<klm>   0: <def>ghi<klm>
442    
443  /={3,}/U  /={3,}/IU
444  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
445  Options: ungreedy  Options: ungreedy
446  First char = '='  First char = '='
447  Need char = '='  Need char = '='
448      abc========def      abc========def
449   0: ===   0: ===
450    
451  /(?U)={3,}?/  /(?U)={3,}?/I
452  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
453  Options: ungreedy  Options: ungreedy
454  First char = '='  First char = '='
455  Need char = '='  Need char = '='
456      abc========def      abc========def
457   0: ========   0: ========
458    
459  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
460  Capturing subpattern count = 0  Capturing subpattern count = 0
461  No options  No options
462  First char = 'f'  First char = 'f'
463  Need char = 'o'  Need char = 'o'
464      foo      foo
465   0: foo   0: foo
466      catfoo      catfoo
467   0: foo   0: foo
468      *** Failers      *** Failers
469  No match  No match
470      the barfoo      the barfoo
471  No match  No match
472      and cattlefoo      and cattlefoo
473  No match  No match
474    
475  /(?<=a+)b/  /(?<=a+)b/
# Line 496  Failed: lookbehind assertion is not fixe Line 481  Failed: lookbehind assertion is not fixe
481  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
482  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
483    
484  /(?i)abc/  /(?i)abc/I
485  Capturing subpattern count = 0  Capturing subpattern count = 0
486  Options: caseless  Options: caseless
487  First char = 'a' (caseless)  First char = 'a' (caseless)
488  Need char = 'c' (caseless)  Need char = 'c' (caseless)
489    
490  /(a|(?m)a)/  /(a|(?m)a)/I
491  Capturing subpattern count = 1  Capturing subpattern count = 1
492  No options  No options
493  First char = 'a'  First char = 'a'
494  No need char  No need char
495    
496  /(?i)^1234/  /(?i)^1234/I
497  Capturing subpattern count = 0  Capturing subpattern count = 0
498  Options: anchored caseless  Options: anchored caseless
499  No first char  No first char
500  No need char  No need char
501    
502  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
503  Capturing subpattern count = 1  Capturing subpattern count = 1
504  Options: anchored  Options: anchored
 Case state changes  
505  No first char  No first char
506  No need char  No need char
507    
508  /(?s).*/  /(?s).*/I
509  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
510  Options: anchored dotall  Options: anchored dotall
511  No first char  No first char
512  No need char  No need char
513    
514  /[abcd]/S  /[abcd]/IS
515  Capturing subpattern count = 0  Capturing subpattern count = 0
516  No options  No options
517  No first char  No first char
518  No need char  No need char
519  Starting byte set: a b c d  Starting byte set: a b c d
520    
521  /(?i)[abcd]/S  /(?i)[abcd]/IS
522  Capturing subpattern count = 0  Capturing subpattern count = 0
523  Options: caseless  Options: caseless
524  No first char  No first char
525  No need char  No need char
526  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
527    
528  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
529  Capturing subpattern count = 1  Capturing subpattern count = 1
530  Options: multiline  Options: multiline
531  No first char  No first char
532  No need char  No need char
533  Starting byte set: b c x y  Starting byte set: b c x y
534    
535  /(^a|^b)/m  /(^a|^b)/Im
536  Capturing subpattern count = 1  Capturing subpattern count = 1
537  Options: multiline  Options: multiline
538  First char at start or follows \n  First char at start or follows newline
539  No need char  No need char
540    
541  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
542  Capturing subpattern count = 1  Capturing subpattern count = 1
543  Options: caseless multiline  Options: caseless multiline
544  First char at start or follows \n  First char at start or follows newline
545  No need char  No need char
546    
547  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 568  Failed: conditional group contains more Line 551  Failed: conditional group contains more
551  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
552    
553  /(?(1a)/  /(?(1a)/
554  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
555    
556    /(?(1a))/
557    Failed: reference to non-existent subpattern at offset 6
558    
559  /(?(?i))/  /(?(?i))/
560  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
561    
562  /(?(abc))/  /(?(abc))/
563  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
564    
565  /(?(?<ab))/  /(?(?<ab))/
566  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
567    
568  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
569  Capturing subpattern count = 1  Capturing subpattern count = 1
570  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
571  No options  No options
572  First char = 'b'  First char = 'b'
573  Need char = 'h'  Need char = 'h'
574    
575  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
576  Capturing subpattern count = 1  Capturing subpattern count = 1
577  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
578  No options  No options
 Case state changes  
579  First char = 'b' (caseless)  First char = 'b' (caseless)
580  Need char = 'h' (caseless)  Need char = 'h' (caseless)
581    
582  /((?i)b)/DS  /((?i)b)/IDZS
583  ------------------------------------------------------------------  ------------------------------------------------------------------
584    0  15 Bra 0          Bra
585    3   7 Bra 1          CBra 1
586    6  01 Opt       01 Opt
587    8  NC b       NC b
588   10   7 Ket          Ket
589   13  00 Opt       00 Opt
590   15  15 Ket          Ket
591   18     End          End
592  ------------------------------------------------------------------  ------------------------------------------------------------------
593  Capturing subpattern count = 1  Capturing subpattern count = 1
594  No options  No options
 Case state changes  
595  First char = 'b' (caseless)  First char = 'b' (caseless)
596  No need char  No need char
597  Study returned NULL  Study returned NULL
598    
599  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
600  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
601  No options  No options
 Case state changes  
602  No first char  No first char
603  No need char  No need char
604  Starting byte set: C a b c d  Starting byte set: C a b c d
605    
606  /a$/  /a$/I
607  Capturing subpattern count = 0  Capturing subpattern count = 0
608  No options  No options
609  First char = 'a'  First char = 'a'
# Line 632  No need char Line 612  No need char
612   0: a   0: a
613      a\n      a\n
614   0: a   0: a
615      *** Failers      *** Failers
616  No match  No match
617      \Za      \Za
618  No match  No match
619      \Za\n      \Za\n
620  No match  No match
621    
622  /a$/m  /a$/Im
623  Capturing subpattern count = 0  Capturing subpattern count = 0
624  Options: multiline  Options: multiline
625  First char = 'a'  First char = 'a'
# Line 648  No need char Line 628  No need char
628   0: a   0: a
629      a\n      a\n
630   0: a   0: a
631      \Za\n      \Za\n
632   0: a   0: a
633      *** Failers      *** Failers
634  No match  No match
635      \Za      \Za
636  No match  No match
637    
638  /\Aabc/m  /\Aabc/Im
639  Capturing subpattern count = 0  Capturing subpattern count = 0
640  Options: anchored multiline  Options: anchored multiline
641  No first char  No first char
642  No need char  No need char
643    
644  /^abc/m  /^abc/Im
645  Capturing subpattern count = 0  Capturing subpattern count = 0
646  Options: multiline  Options: multiline
647  First char at start or follows \n  First char at start or follows newline
648  Need char = 'c'  Need char = 'c'
649    
650  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
651  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
652  Options: anchored  Options: anchored
653  No first char  No first char
654  No need char  No need char
# Line 681  No need char Line 660  No need char
660   4: bbbbccccc   4: bbbbccccc
661   5: def   5: def
662    
663  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
664  Capturing subpattern count = 0  Capturing subpattern count = 0
665  No options  No options
666  No first char  No first char
667  No need char  No need char
668  Starting byte set: a b  Starting byte set: a b
669    
670  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
671  Capturing subpattern count = 1  Capturing subpattern count = 1
672  No options  No options
673  No first char  No first char
674  Need char = 'a'  Need char = 'a'
675  Starting byte set: a o  Starting byte set: a o
676    
677  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
678  Capturing subpattern count = 0  Capturing subpattern count = 0
679  No options  No options
680  No first char  No first char
681  No need char  No need char
682  Starting byte set: a b  Starting byte set: a b
683    
684  /(?<=foo\n)^bar/m  /(?<=foo\n)^bar/Im
685  Capturing subpattern count = 0  Capturing subpattern count = 0
686    Contains explicit CR or LF match
687  Options: multiline  Options: multiline
688  No first char  No first char
689  Need char = 'r'  Need char = 'r'
690      foo\nbarbar      foo\nbarbar
691   0: bar   0: bar
692      ***Failers      ***Failers
693  No match  No match
694      rhubarb      rhubarb
695  No match  No match
696      barbell      barbell
697  No match  No match
698      abc\nbarton      abc\nbarton
699  No match  No match
700    
701  /^(?<=foo\n)bar/m  /^(?<=foo\n)bar/Im
702  Capturing subpattern count = 0  Capturing subpattern count = 0
703    Contains explicit CR or LF match
704  Options: multiline  Options: multiline
705  First char at start or follows \n  First char at start or follows newline
706  Need char = 'r'  Need char = 'r'
707      foo\nbarbar      foo\nbarbar
708   0: bar   0: bar
709      ***Failers      ***Failers
710  No match  No match
711      rhubarb      rhubarb
712  No match  No match
713      barbell      barbell
714  No match  No match
715      abc\nbarton      abc\nbarton
716  No match  No match
717    
718  /(?>^abc)/m  /(?>^abc)/Im
719  Capturing subpattern count = 0  Capturing subpattern count = 0
720  Options: multiline  Options: multiline
721  First char at start or follows \n  First char at start or follows newline
722  Need char = 'c'  Need char = 'c'
723      abc      abc
724   0: abc   0: abc
# Line 745  Need char = 'c' Line 726  Need char = 'c'
726   0: abc   0: abc
727      *** Failers      *** Failers
728  No match  No match
729      defabc      defabc
730  No match  No match
731    
732  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 758  Failed: lookbehind assertion is not fixe Line 739  Failed: lookbehind assertion is not fixe
739  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
740    
741  /The next three are in testinput2 because they have variable length branches/  /The next three are in testinput2 because they have variable length branches/
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 's'  
742    
743  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
744  Capturing subpattern count = 0  Capturing subpattern count = 0
745  No options  No options
746  First char = '-'  First char = '-'
# Line 776  Need char = 't' Line 753  Need char = 't'
753  No match  No match
754      cart      cart
755  No match  No match
756      horse-and-cart      horse-and-cart
757  No match  No match
758    
759  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
760  Capturing subpattern count = 0  Capturing subpattern count = 0
761  No options  No options
 Case state changes  
762  No first char  No first char
763  No need char  No need char
764    
765  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
766  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
767  No options  No options
768  First char at start or follows \n  First char at start or follows newline
769  No need char  No need char
770      alphabetabcd      alphabetabcd
771   0: alphabetabcd   0: alphabetabcd
# Line 800  No need char Line 775  No need char
775   1: <unset>   1: <unset>
776   2: xyz   2: xyz
777    
778  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
779  Capturing subpattern count = 0  Capturing subpattern count = 0
780  No options  No options
 Case state changes  
781  First char = 'Z'  First char = 'Z'
782  Need char = 'Z'  Need char = 'Z'
783      abxyZZ      abxyZZ
# Line 816  Need char = 'Z' Line 790  Need char = 'Z'
790   0: ZZ   0: ZZ
791      bZZ      bZZ
792   0: ZZ   0: ZZ
793      BZZ      BZZ
794   0: ZZ   0: ZZ
795      *** Failers      *** Failers
796  No match  No match
797      ZZ      ZZ
798  No match  No match
799      abXYZZ      abXYZZ
800  No match  No match
801      zzz      zzz
802  No match  No match
803      bzz      bzz
804  No match  No match
805    
806  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
807  Capturing subpattern count = 1  Capturing subpattern count = 1
808  No options  No options
809  First char = 'b'  First char = 'b'
810  Need char = 'r'  Need char = 'r'
811      bar      bar
812   0: bar   0: bar
813      foobbar      foobbar
814   0: bar   0: bar
815      *** Failers      *** Failers
816  No match  No match
817      fooabar      fooabar
818  No match  No match
819    
820  /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/I
821  Capturing subpattern count = 0  Capturing subpattern count = 0
822  No options  No options
823  First char = 'T'  First char = 'T'
824  Need char = 't'  Need char = 't'
825    
826  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
827  Capturing subpattern count = 1  Capturing subpattern count = 1
828  Options: anchored  Options: anchored
829  No first char  No first char
830  No need char  No need char
831      *** Failers      *** Failers
832  No match  No match
833      a      a
834  No match  No match
835    
836  /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/I
837  Capturing subpattern count = 0  Capturing subpattern count = 0
838  No options  No options
839  First char = 'T'  First char = 'T'
840  Need char = 'g'  Need char = 'g'
841    
842  /^(a\1?){4}$/  /^(a\1?){4}$/I
843  Capturing subpattern count = 1  Capturing subpattern count = 1
844  Max back reference = 1  Max back reference = 1
845  Options: anchored  Options: anchored
# Line 874  No need char Line 848  No need char
848      aaaaaa      aaaaaa
849   0: aaaaaa   0: aaaaaa
850   1: aa   1: aa
851    
852  /These are syntax tests from Perl 5.005/  /These are syntax tests from Perl 5.005/I
853  Capturing subpattern count = 0  Capturing subpattern count = 0
854  No options  No options
855  First char = 'T'  First char = 'T'
# Line 917  Failed: reference to non-existent subpat Line 891  Failed: reference to non-existent subpat
891  /(a)|\2/  /(a)|\2/
892  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
893    
894  /a[b-a]/i  /a[b-a]/Ii
895  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
896    
897  /a[]b/i  /a[]b/Ii
898  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
899    
900  /a[/i  /a[/Ii
901  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
902    
903  /*a/i  /*a/Ii
904  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
905    
906  /(*)b/i  /(*)b/Ii
907  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
908    
909  /abc)/i  /abc)/Ii
910  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
911    
912  /(abc/i  /(abc/Ii
913  Failed: missing ) at offset 4  Failed: missing ) at offset 4
914    
915  /a**/i  /a**/Ii
916  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
917    
918  /)(/i  /)(/Ii
919  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
920    
921  /:(?:/  /:(?:/
# Line 951  Failed: missing ) at offset 4 Line 925  Failed: missing ) at offset 4
925  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
926    
927  /a(?{)b/  /a(?{)b/
928  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
929    
930  /a(?{{})b/  /a(?{{})b/
931  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
932    
933  /a(?{}})b/  /a(?{}})b/
934  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
935    
936  /a(?{"{"})b/  /a(?{"{"})b/
937  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
938    
939  /a(?{"{"}})b/  /a(?{"{"}})b/
940  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
941    
942  /(?(1?)a|b)/  /(?(1?)a|b)/
943  Failed: malformed number after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
   
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
944    
945  /[a[:xyz:/  /[a[:xyz:/
946  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
# Line 989  Failed: POSIX code 9: bad escape sequenc Line 960  Failed: POSIX code 9: bad escape sequenc
960  /abc/\i  /abc/\i
961  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
962    
963  /(a)bc(d)/  /(a)bc(d)/I
964  Capturing subpattern count = 2  Capturing subpattern count = 2
965  No options  No options
966  First char = 'a'  First char = 'a'
# Line 1008  Need char = 'd' Line 979  Need char = 'd'
979   1: a   1: a
980   2: d   2: d
981  copy substring 5 failed -7  copy substring 5 failed -7
982    
983  /(.{20})/  /(.{20})/I
984  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
985  No options  No options
986  No first char  No first char
987  No need char  No need char
# Line 1021  No need char Line 991  No need char
991      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
992   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
993   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
994  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
995      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
996   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
997   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
998   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
999    
1000  /(.{15})/  /(.{15})/I
1001  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1002  No options  No options
1003  No first char  No first char
1004  No need char  No need char
# Line 1042  No need char Line 1011  No need char
1011   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1012   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1013    
1014  /(.{16})/  /(.{16})/I
1015  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1016  No options  No options
1017  No first char  No first char
1018  No need char  No need char
# Line 1054  No need char Line 1022  No need char
1022      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1023   0: abcdefghijklmnop   0: abcdefghijklmnop
1024   1: abcdefghijklmnop   1: abcdefghijklmnop
1025  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1026   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1027   0L abcdefghijklmnop   0L abcdefghijklmnop
1028   1L abcdefghijklmnop   1L abcdefghijklmnop
1029    
1030  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1031  Capturing subpattern count = 3  Capturing subpattern count = 3
1032  Options: anchored  Options: anchored
1033  No first char  No first char
1034  No need char  No need char
1035      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1036   0: adef   0: adef
1037   1: a   1: a
1038   2: <unset>   2: <unset>
# Line 1077  get substring 4 failed -7 Line 1045  get substring 4 failed -7
1045   1L a   1L a
1046   2L   2L
1047   3L f   3L f
1048      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1049   0: bcdef   0: bcdef
1050   1: bc   1: bc
1051   2: bc   2: bc
# Line 1090  get substring 4 failed -7 Line 1058  get substring 4 failed -7
1058   1L bc   1L bc
1059   2L bc   2L bc
1060   3L f   3L f
1061      adefghijk\C0      adefghijk\C0
1062   0: adef   0: adef
1063   1: a   1: a
1064   2: <unset>   2: <unset>
1065   3: f   3: f
1066   0C adef (4)   0C adef (4)
1067    
1068  /^abc\00def/  /^abc\00def/I
1069  Capturing subpattern count = 0  Capturing subpattern count = 0
1070  Options: anchored  Options: anchored
1071  No first char  No first char
1072  No need char  No need char
1073      abc\00def\L\C0      abc\00def\L\C0
1074   0: abc\x00def   0: abc\x00def
1075   0C abc (7)   0C abc (7)
1076   0L abc   0L abc
1077    
1078  /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]+
1079  )((?:[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]+
1080  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 432  
1081  Capturing subpattern count = 8  Capturing subpattern count = 8
1082  Partial matching not supported  Contains explicit CR or LF match
1083  No options  No options
1084  First char = 'w'  First char = 'w'
1085  Need char = 'd'  Need char = 'd'
1086    
1087  /.*X/D  /.*X/IDZ
1088  ------------------------------------------------------------------  ------------------------------------------------------------------
1089    0   7 Bra 0          Bra
1090    3     Any*          Any*
1091    5     X          X
1092    7   7 Ket          Ket
1093   10     End          End
1094  ------------------------------------------------------------------  ------------------------------------------------------------------
1095  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1096  No options  No options
1097  First char at start or follows \n  First char at start or follows newline
1098  Need char = 'X'  Need char = 'X'
1099    
1100  /.*X/Ds  /.*X/IDZs
1101  ------------------------------------------------------------------  ------------------------------------------------------------------
1102    0   7 Bra 0          Bra
1103    3     Any*          AllAny*
1104    5     X          X
1105    7   7 Ket          Ket
1106   10     End          End
1107  ------------------------------------------------------------------  ------------------------------------------------------------------
1108  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1109  Options: anchored dotall  Options: anchored dotall
1110  No first char  No first char
1111  Need char = 'X'  Need char = 'X'
1112    
1113  /(.*X|^B)/D  /(.*X|^B)/IDZ
1114  ------------------------------------------------------------------  ------------------------------------------------------------------
1115    0  19 Bra 0          Bra
1116    3   7 Bra 1          CBra 1
1117    6     Any*          Any*
1118    8     X          X
1119   10   6 Alt          Alt
1120   13     ^          ^
1121   14     B          B
1122   16  13 Ket          Ket
1123   19  19 Ket          Ket
1124   22     End          End
1125  ------------------------------------------------------------------  ------------------------------------------------------------------
1126  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1127  No options  No options
1128  First char at start or follows \n  First char at start or follows newline
1129  No need char  No need char
1130    
1131  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1132  ------------------------------------------------------------------  ------------------------------------------------------------------
1133    0  19 Bra 0          Bra
1134    3   7 Bra 1          CBra 1
1135    6     Any*          AllAny*
1136    8     X          X
1137   10   6 Alt          Alt
1138   13     ^          ^
1139   14     B          B
1140   16  13 Ket          Ket
1141   19  19 Ket          Ket
1142   22     End          End
1143  ------------------------------------------------------------------  ------------------------------------------------------------------
1144  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1145  Options: anchored dotall  Options: anchored dotall
1146  No first char  No first char
1147  No need char  No need char
1148    
1149  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1150  ------------------------------------------------------------------  ------------------------------------------------------------------
1151    0  19 Bra 0          Bra
1152    3   7 Bra 1          CBra 1
1153    6     Any*          AllAny*
1154    8     X          X
1155   10   6 Alt          Alt
1156   13     ^          ^
1157   14     B          B
1158   16  13 Ket          Ket
1159   19  19 Ket          Ket
1160   22     End          End
1161  ------------------------------------------------------------------  ------------------------------------------------------------------
1162  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1163  Options: anchored dotall  Options: anchored dotall
1164  No first char  No first char
1165  No need char  No need char
1166    
1167  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1168  ------------------------------------------------------------------  ------------------------------------------------------------------
1169    0  25 Bra 0          Bra
1170    3   9 Bra 0          Bra
1171    6  04 Opt       04 Opt
1172    8     Any*          AllAny*
1173   10     X          X
1174   12   8 Alt          Alt
1175   15  04 Opt       04 Opt
1176   17     ^          ^
1177   18     B          B
1178   20  17 Ket          Ket
1179   23  00 Opt       00 Opt
1180   25  25 Ket          Ket
1181   28     End          End
1182  ------------------------------------------------------------------  ------------------------------------------------------------------
1183  Capturing subpattern count = 0  Capturing subpattern count = 0
1184  Partial matching not supported  Options: anchored
1185  No options  No first char
 First char at start or follows \n  
1186  No need char  No need char
1187    
1188  /\Biss\B/+  /\Biss\B/I+
1189  Capturing subpattern count = 0  Capturing subpattern count = 0
1190  No options  No options
1191  First char = 'i'  First char = 'i'
# Line 1233  Need char = 's' Line 1194  Need char = 's'
1194   0: iss   0: iss
1195   0+ issippi   0+ issippi
1196    
1197  /\Biss\B/+P  /\Biss\B/I+P
1198      Mississippi      Mississippi
1199   0: iss   0: iss
1200   0+ issippi   0+ issippi
1201    
1202  /iss/G+  /iss/IG+
1203  Capturing subpattern count = 0  Capturing subpattern count = 0
1204  No options  No options
1205  First char = 'i'  First char = 'i'
# Line 1249  Need char = 's' Line 1210  Need char = 's'
1210   0: iss   0: iss
1211   0+ ippi   0+ ippi
1212    
1213  /\Biss\B/G+  /\Biss\B/IG+
1214  Capturing subpattern count = 0  Capturing subpattern count = 0
1215  No options  No options
1216  First char = 'i'  First char = 'i'
# Line 1258  Need char = 's' Line 1219  Need char = 's'
1219   0: iss   0: iss
1220   0+ issippi   0+ issippi
1221    
1222  /\Biss\B/g+  /\Biss\B/Ig+
1223  Capturing subpattern count = 0  Capturing subpattern count = 0
1224  No options  No options
1225  First char = 'i'  First char = 'i'
# Line 1273  No match Line 1234  No match
1234      Mississippi\A      Mississippi\A
1235  No match  No match
1236    
1237  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1238  Capturing subpattern count = 0  Capturing subpattern count = 0
1239  No options  No options
1240  First char = 'i'  First char = 'i'
# Line 1284  Need char = 's' Line 1245  Need char = 's'
1245   0: iss   0: iss
1246   0+ ippi   0+ ippi
1247    
1248  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1249  Capturing subpattern count = 0  Capturing subpattern count = 0
1250  No options  No options
1251  First char = 'i'  First char = 'i'
# Line 1293  Need char = 's' Line 1254  Need char = 's'
1254   0: iss   0: iss
1255   0+ issippi   0+ issippi
1256    
1257  /^iss/g+  /^iss/Ig+
1258  Capturing subpattern count = 0  Capturing subpattern count = 0
1259  Options: anchored  Options: anchored
1260  No first char  No first char
# Line 1301  No need char Line 1262  No need char
1262      ississippi      ississippi
1263   0: iss   0: iss
1264   0+ issippi   0+ issippi
1265    
1266  /.*iss/g+  /.*iss/Ig+
1267  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1268  No options  No options
1269  First char at start or follows \n  First char at start or follows newline
1270  Need char = 's'  Need char = 's'
1271      abciss\nxyzisspqr      abciss\nxyzisspqr
1272   0: abciss   0: abciss
1273   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1274   0: xyziss   0: xyziss
1275   0+ pqr   0+ pqr
1276    
1277  /.i./+g  /.i./I+g
1278  Capturing subpattern count = 0  Capturing subpattern count = 0
1279  No options  No options
1280  No first char  No first char
# Line 1340  Need char = 'i' Line 1300  Need char = 'i'
1300   0+ river   0+ river
1301   0: riv   0: riv
1302   0+ er   0+ er
1303      Missouri river\A      Missouri river\A
1304   0: Mis   0: Mis
1305   0+ souri river   0+ souri river
1306    
1307  /^.is/+g  /^.is/I+g
1308  Capturing subpattern count = 0  Capturing subpattern count = 0
1309  Options: anchored  Options: anchored
1310  No first char  No first char
# Line 1353  No need char Line 1313  No need char
1313   0: Mis   0: Mis
1314   0+ sissippi   0+ sissippi
1315    
1316  /^ab\n/g+  /^ab\n/Ig+
1317  Capturing subpattern count = 0  Capturing subpattern count = 0
1318    Contains explicit CR or LF match
1319  Options: anchored  Options: anchored
1320  No first char  No first char
1321  No need char  No need char
# Line 1362  No need char Line 1323  No need char
1323   0: ab\x0a   0: ab\x0a
1324   0+ ab\x0acd   0+ ab\x0acd
1325    
1326  /^ab\n/mg+  /^ab\n/Img+
1327  Capturing subpattern count = 0  Capturing subpattern count = 0
1328    Contains explicit CR or LF match
1329  Options: multiline  Options: multiline
1330  First char at start or follows \n  First char at start or follows newline
1331  Need char = 10  Need char = 10
1332      ab\nab\ncd      ab\nab\ncd
1333   0: ab\x0a   0: ab\x0a
# Line 1373  Need char = 10 Line 1335  Need char = 10
1335   0: ab\x0a   0: ab\x0a
1336   0+ cd   0+ cd
1337    
1338  /abc/  /abc/I
1339  Capturing subpattern count = 0  Capturing subpattern count = 0
1340  No options  No options
1341  First char = 'a'  First char = 'a'
1342  Need char = 'c'  Need char = 'c'
1343    
1344  /abc|bac/  /abc|bac/I
1345  Capturing subpattern count = 0  Capturing subpattern count = 0
1346  No options  No options
1347  No first char  No first char
1348  Need char = 'c'  Need char = 'c'
1349    
1350  /(abc|bac)/  /(abc|bac)/I
1351  Capturing subpattern count = 1  Capturing subpattern count = 1
1352  No options  No options
1353  No first char  No first char
1354  Need char = 'c'  Need char = 'c'
1355    
1356  /(abc|(c|dc))/  /(abc|(c|dc))/I
1357  Capturing subpattern count = 2  Capturing subpattern count = 2
1358  No options  No options
1359  No first char  No first char
1360  Need char = 'c'  Need char = 'c'
1361    
1362  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1363  Capturing subpattern count = 2  Capturing subpattern count = 2
1364  No options  No options
1365  No first char  No first char
1366  Need char = 'c'  Need char = 'c'
1367    
1368  /a*/  /a*/I
1369  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1370  No options  No options
1371  No first char  No first char
1372  No need char  No need char
1373    
1374  /a+/  /a+/I
1375  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1376  No options  No options
1377  First char = 'a'  First char = 'a'
1378  No need char  No need char
1379    
1380  /(baa|a+)/  /(baa|a+)/I
1381  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1382  No options  No options
1383  No first char  No first char
1384  Need char = 'a'  Need char = 'a'
1385    
1386  /a{0,3}/  /a{0,3}/I
1387  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1388  No options  No options
1389  No first char  No first char
1390  No need char  No need char
1391    
1392  /baa{3,}/  /baa{3,}/I
1393  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1394  No options  No options
1395  First char = 'b'  First char = 'b'
1396  Need char = 'a'  Need char = 'a'
1397    
1398  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1399  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1400  No options  No options
1401  First char = '"'  First char = '"'
1402  Need char = '"'  Need char = '"'
1403    
1404  /(abc|ab[cd])/  /(abc|ab[cd])/I
1405  Capturing subpattern count = 1  Capturing subpattern count = 1
1406  No options  No options
1407  First char = 'a'  First char = 'a'
1408  No need char  No need char
1409    
1410  /(a|.)/  /(a|.)/I
1411  Capturing subpattern count = 1  Capturing subpattern count = 1
1412  No options  No options
1413  No first char  No first char
1414  No need char  No need char
1415    
1416  /a|ba|\w/  /a|ba|\w/I
1417  Capturing subpattern count = 0  Capturing subpattern count = 0
1418  No options  No options
1419  No first char  No first char
1420  No need char  No need char
1421    
1422  /abc(?=pqr)/  /abc(?=pqr)/I
1423  Capturing subpattern count = 0  Capturing subpattern count = 0
1424  No options  No options
1425  First char = 'a'  First char = 'a'
1426  Need char = 'r'  Need char = 'r'
1427    
1428  /...(?<=abc)/  /...(?<=abc)/I
1429  Capturing subpattern count = 0  Capturing subpattern count = 0
1430  No options  No options
1431  No first char  No first char
1432  No need char  No need char
1433    
1434  /abc(?!pqr)/  /abc(?!pqr)/I
1435  Capturing subpattern count = 0  Capturing subpattern count = 0
1436  No options  No options
1437  First char = 'a'  First char = 'a'
1438  Need char = 'c'  Need char = 'c'
1439    
1440  /ab./  /ab./I
1441  Capturing subpattern count = 0  Capturing subpattern count = 0
1442  No options  No options
1443  First char = 'a'  First char = 'a'
1444  Need char = 'b'  Need char = 'b'
1445    
1446  /ab[xyz]/  /ab[xyz]/I
1447  Capturing subpattern count = 0  Capturing subpattern count = 0
1448  No options  No options
1449  First char = 'a'  First char = 'a'
1450  Need char = 'b'  Need char = 'b'
1451    
1452  /abc*/  /abc*/I
1453  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1454  No options  No options
1455  First char = 'a'  First char = 'a'
1456  Need char = 'b'  Need char = 'b'
1457    
1458  /ab.c*/  /ab.c*/I
1459  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1460  No options  No options
1461  First char = 'a'  First char = 'a'
1462  Need char = 'b'  Need char = 'b'
1463    
1464  /a.c*/  /a.c*/I
1465  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1466  No options  No options
1467  First char = 'a'  First char = 'a'
1468  No need char  No need char
1469    
1470  /.c*/  /.c*/I
1471  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1472  No options  No options
1473  No first char  No first char
1474  No need char  No need char
1475    
1476  /ac*/  /ac*/I
1477  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1478  No options  No options
1479  First char = 'a'  First char = 'a'
1480  No need char  No need char
1481    
1482  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1483  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1484  No options  No options
1485  No first char  No first char
1486  No need char  No need char
1487    
1488  /a.c*|aba/  /a.c*|aba/I
1489  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1490  No options  No options
1491  First char = 'a'  First char = 'a'
1492  No need char  No need char
1493    
1494  /.+a/  /.+a/I
1495  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1496  No options  No options
1497  No first char  No first char
1498  Need char = 'a'  Need char = 'a'
1499    
1500  /(?=abcda)a.*/  /(?=abcda)a.*/I
1501  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1502  No options  No options
1503  First char = 'a'  First char = 'a'
1504  Need char = 'a'  Need char = 'a'
1505    
1506  /(?=a)a.*/  /(?=a)a.*/I
1507  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1508  No options  No options
1509  First char = 'a'  First char = 'a'
1510  No need char  No need char
1511    
1512  /a(b)*/  /a(b)*/I
1513  Capturing subpattern count = 1  Capturing subpattern count = 1
1514  No options  No options
1515  First char = 'a'  First char = 'a'
1516  No need char  No need char
1517    
1518  /a\d*/  /a\d*/I
1519  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1520  No options  No options
1521  First char = 'a'  First char = 'a'
1522  No need char  No need char
1523    
1524  /ab\d*/  /ab\d*/I
1525  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1526  No options  No options
1527  First char = 'a'  First char = 'a'
1528  Need char = 'b'  Need char = 'b'
1529    
1530  /a(\d)*/  /a(\d)*/I
1531  Capturing subpattern count = 1  Capturing subpattern count = 1
1532  No options  No options
1533  First char = 'a'  First char = 'a'
1534  No need char  No need char
1535    
1536  /abcde{0,0}/  /abcde{0,0}/I
1537  Capturing subpattern count = 0  Capturing subpattern count = 0
1538  No options  No options
1539  First char = 'a'  First char = 'a'
1540  Need char = 'd'  Need char = 'd'
1541    
1542  /ab\d+/  /ab\d+/I
1543  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1544  No options  No options
1545  First char = 'a'  First char = 'a'
1546  Need char = 'b'  Need char = 'b'
1547    
1548  /a(?(1)b)/  /a(?(1)b)(.)/I
1549  Capturing subpattern count = 0  Capturing subpattern count = 1
1550  No options  No options
1551  First char = 'a'  First char = 'a'
1552  No need char  No need char
1553    
1554  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1555  Capturing subpattern count = 0  Capturing subpattern count = 1
1556  No options  No options
1557  First char = 'a'  First char = 'a'
1558  Need char = 'g'  Need char = 'g'
1559    
1560  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1561  Capturing subpattern count = 0  Capturing subpattern count = 1
1562  No options  No options
1563  First char = 'a'  First char = 'a'
1564  No need char  No need char
1565    
1566  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1567  Capturing subpattern count = 0  Capturing subpattern count = 1
1568  No options  No options
1569  First char = 'a'  First char = 'a'
1570  Need char = 'g'  Need char = 'g'
1571    
1572  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1573  Capturing subpattern count = 0  Capturing subpattern count = 1
1574  No options  No options
1575  First char = 'a'  First char = 'a'
1576  Need char = 'b'  Need char = 'b'
1577    
1578  /ab\d{0}e/  /ab\d{0}e/I
1579  Capturing subpattern count = 0  Capturing subpattern count = 0
1580  No options  No options
1581  First char = 'a'  First char = 'a'
1582  Need char = 'e'  Need char = 'e'
1583    
1584  /a?b?/  /a?b?/I
1585  Capturing subpattern count = 0  Capturing subpattern count = 0
1586  No options  No options
1587  No first char  No first char
# Line 1653  No need char Line 1596  No need char
1596   0:   0:
1597      *** Failers      *** Failers
1598   0:   0:
1599      \N      \N
1600  No match  No match
1601    
1602  /|-/  /|-/I
1603  Capturing subpattern count = 0  Capturing subpattern count = 0
1604  No options  No options
1605  No first char  No first char
# Line 1669  No need char Line 1612  No need char
1612   0: -   0: -
1613      *** Failers      *** Failers
1614   0:   0:
1615      \Nabc      \Nabc
1616  No match  No match
1617    
1618  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/P
# Line 1698  No match Line 1641  No match
1641   1: bbbb   1: bbbb
1642   2: z   2: z
1643   3: z   3: z
1644    
1645  /^.?abcd/S  /^.?abcd/IS
1646  Capturing subpattern count = 0  Capturing subpattern count = 0
1647  Options: anchored  Options: anchored
1648  No first char  No first char
# Line 1713  Study returned NULL Line 1656  Study returned NULL
1656    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1657    )*            # Zero or more contents    )*            # Zero or more contents
1658    \)            # Closing )    \)            # Closing )
1659    /x    /Ix
1660  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1661  Options: extended  Options: extended
1662  First char = '('  First char = '('
1663  Need char = ')'  Need char = ')'
# Line 1725  Need char = ')' Line 1667  Need char = ')'
1667   0: (abcd)   0: (abcd)
1668      xyz(abcd)      xyz(abcd)
1669   0: (abcd)   0: (abcd)
1670      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1671   0: (ab(xy)cd)   0: (ab(xy)cd)
1672      (ab(xycd)pqr      (ab(xycd)pqr
1673   0: (xycd)   0: (xycd)
1674      () abc ()      () abc ()
1675   0: ()   0: ()
1676      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1677   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1678      *** Failers      *** Failers
1679  No match  No match
1680      abcd      abcd
1681  No match  No match
1682      abcd)      abcd)
1683  No match  No match
1684      (abcd      (abcd
1685  No match  No match
1686    
1687  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1688  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1689  Options: extended  Options: extended
1690  First char = '('  First char = '('
1691  Need char = ')'  Need char = ')'
1692      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1693   0: (ab(xy)cd)   0: (ab(xy)cd)
1694   1: cd   1: cd
1695      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1757  Need char = ')' Line 1698  Need char = ')'
1698   0: (x(y)z)   0: (x(y)z)
1699   1: z   1: z
1700    
1701  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1702  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1703  Options: extended  Options: extended
1704  First char = '('  First char = '('
1705  Need char = ')'  Need char = ')'
# Line 1767  Need char = ')' Line 1707  Need char = ')'
1707   0: (abcd)   0: (abcd)
1708      (ab(xy)cd)      (ab(xy)cd)
1709   0: (xy)   0: (xy)
1710      (a(b(c)d)e)      (a(b(c)d)e)
1711   0: (c)   0: (c)
1712      ((ab))      ((ab))
1713   0: ((ab))   0: ((ab))
1714      *** Failers      *** Failers
1715  No match  No match
1716      ()      ()
1717  No match  No match
1718    
1719  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1720  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1721  Options: extended  Options: extended
1722  First char = '('  First char = '('
1723  Need char = ')'  Need char = ')'
# Line 1787  Need char = ')' Line 1726  Need char = ')'
1726      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1727   0: (fsh)   0: (fsh)
1728    
1729  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1730  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1731  Options: extended  Options: extended
1732  First char = '('  First char = '('
1733  Need char = ')'  Need char = ')'
# Line 1797  Need char = ')' Line 1735  Need char = ')'
1735   0: (ab(xy)cd)   0: (ab(xy)cd)
1736   1: cd   1: cd
1737    
1738  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1739  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1740  Options: extended  Options: extended
1741  First char = '('  First char = '('
1742  Need char = ')'  Need char = ')'
# Line 1808  Need char = ')' Line 1745  Need char = ')'
1745   1: ab(xy)cd   1: ab(xy)cd
1746   2: cd   2: cd
1747    
1748  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1749  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1750  Options: extended  Options: extended
1751  First char = '('  First char = '('
1752  Need char = ')'  Need char = ')'
# Line 1825  Need char = ')' Line 1761  Need char = ')'
1761   2: ab(xy)cd   2: ab(xy)cd
1762   3: cd   3: cd
1763    
1764  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1765  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1766  Options: extended  Options: extended
1767  First char = '('  First char = '('
1768  Need char = ')'  Need char = ')'
# Line 1842  Need char = ')' Line 1777  Need char = ')'
1777   2: 123   2: 123
1778   3: cd   3: cd
1779    
1780  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1781  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1782  Options: extended  Options: extended
1783  First char = '('  First char = '('
1784  Need char = ')'  Need char = ')'
# Line 1862  Need char = ')' Line 1796  Need char = ')'
1796  10: ab(xy)cd  10: ab(xy)cd
1797  11: cd  11: cd
1798    
1799  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1800  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1801  Options: extended  Options: extended
1802  First char = '('  First char = '('
1803  Need char = ')'  Need char = ')'
# Line 1872  Need char = ')' Line 1805  Need char = ')'
1805   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1806   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1807   2: 123   2: 123
  3: <unset>  
1808    
1809  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1810  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1811  Options: extended  Options: extended
1812  First char = '('  First char = '('
1813  Need char = ')'  Need char = ')'
# Line 1891  Need char = ')' Line 1822  Need char = ')'
1822   2: ij   2: ij
1823   3: (cd(ef)gh)   3: (cd(ef)gh)
1824    
1825  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1826  ------------------------------------------------------------------  ------------------------------------------------------------------
1827    0  37 Bra 0          Bra
1828    3     ^          ^
1829    4     [0-9A-Za-z]          [0-9A-Za-z]
1830   37  37 Ket          Ket
1831   40     End          End
1832  ------------------------------------------------------------------  ------------------------------------------------------------------
1833  Capturing subpattern count = 0  Capturing subpattern count = 0
1834  Options: anchored  Options: anchored
1835  No first char  No first char
1836  No need char  No need char
1837    
1838  /^[[:^alnum:]]/D  /^[[:^alnum:]]/DZ
1839  ------------------------------------------------------------------  ------------------------------------------------------------------
1840    0  37 Bra 0          Bra
1841    3     ^          ^
1842    4     [\x00-/:-@[-`{-\xff]          [\x00-/:-@[-`{-\xff] (neg)
1843   37  37 Ket          Ket
1844   40     End          End
1845  ------------------------------------------------------------------  ------------------------------------------------------------------
1846  Capturing subpattern count = 0  Capturing subpattern count = 0
1847  Options: anchored  Options: anchored
1848  No first char  No first char
1849  No need char  No need char
1850    
1851  /^[[:alpha:]]/D  /^[[:alpha:]]/DZ
1852  ------------------------------------------------------------------  ------------------------------------------------------------------
1853    0  37 Bra 0          Bra
1854    3     ^          ^
1855    4     [A-Za-z]          [A-Za-z]
1856   37  37 Ket          Ket
1857   40     End          End
1858  ------------------------------------------------------------------  ------------------------------------------------------------------
1859  Capturing subpattern count = 0  Capturing subpattern count = 0
1860  Options: anchored  Options: anchored
1861  No first char  No first char
1862  No need char  No need char
1863    
1864  /^[[:^alpha:]]/D  /^[[:^alpha:]]/DZ
1865  ------------------------------------------------------------------  ------------------------------------------------------------------
1866    0  37 Bra 0          Bra
1867    3     ^          ^
1868    4     [\x00-@[-`{-\xff]          [\x00-@[-`{-\xff] (neg)
1869   37  37 Ket          Ket
1870   40     End          End
1871  ------------------------------------------------------------------  ------------------------------------------------------------------
1872  Capturing subpattern count = 0  Capturing subpattern count = 0
1873  Options: anchored  Options: anchored
1874  No first char  No first char
1875  No need char  No need char
1876    
1877  /[_[:alpha:]]/IS  /[_[:alpha:]]/IS
1878  Capturing subpattern count = 0  Capturing subpattern count = 0
1879  No options  No options
# Line 1951  No need char Line 1882  No need char
1882  Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  Starting 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
1883    _ a b c d e f g h i j k l m n o p q r s t u v w x y z    _ a b c d e f g h i j k l m n o p q r s t u v w x y z
1884    
1885  /^[[:ascii:]]/D  /^[[:ascii:]]/DZ
1886  ------------------------------------------------------------------  ------------------------------------------------------------------
1887    0  37 Bra 0          Bra
1888    3     ^          ^
1889    4     [\x00-\x7f]          [\x00-\x7f]
1890   37  37 Ket          Ket
1891   40     End          End
1892  ------------------------------------------------------------------  ------------------------------------------------------------------
1893  Capturing subpattern count = 0  Capturing subpattern count = 0
1894  Options: anchored  Options: anchored
1895  No first char  No first char
1896  No need char  No need char
1897    
1898  /^[[:^ascii:]]/D  /^[[:^ascii:]]/DZ
1899  ------------------------------------------------------------------  ------------------------------------------------------------------
1900    0  37 Bra 0          Bra
1901    3     ^          ^
1902    4     [\x80-\xff]          [\x80-\xff] (neg)
1903   37  37 Ket          Ket
1904   40     End          End
1905  ------------------------------------------------------------------  ------------------------------------------------------------------
1906  Capturing subpattern count = 0  Capturing subpattern count = 0
1907  Options: anchored  Options: anchored
1908  No first char  No first char
1909  No need char  No need char
1910    
1911  /^[[:blank:]]/D  /^[[:blank:]]/DZ
1912  ------------------------------------------------------------------  ------------------------------------------------------------------
1913    0  37 Bra 0          Bra
1914    3     ^          ^
1915    4     [\x09 ]          [\x09 ]
1916   37  37 Ket          Ket
1917   40     End          End
1918  ------------------------------------------------------------------  ------------------------------------------------------------------
1919  Capturing subpattern count = 0  Capturing subpattern count = 0
1920  Options: anchored  Options: anchored
1921  No first char  No first char
1922  No need char  No need char
1923    
1924  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
1925  ------------------------------------------------------------------  ------------------------------------------------------------------
1926    0  37 Bra 0          Bra
1927    3     ^          ^
1928    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1929   37  37 Ket          Ket
1930   40     End          End
1931  ------------------------------------------------------------------  ------------------------------------------------------------------
1932  Capturing subpattern count = 0  Capturing subpattern count = 0
1933  Options: anchored  Options: anchored
# Line 2005  No need char Line 1936  No need char
1936    
1937  /[\n\x0b\x0c\x0d[:blank:]]/IS  /[\n\x0b\x0c\x0d[:blank:]]/IS
1938  Capturing subpattern count = 0  Capturing subpattern count = 0
1939    Contains explicit CR or LF match
1940  No options  No options
1941  No first char  No first char
1942  No need char  No need char
1943  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1944    
1945  /^[[:cntrl:]]/D  /^[[:cntrl:]]/DZ
1946  ------------------------------------------------------------------  ------------------------------------------------------------------
1947    0  37 Bra 0          Bra
1948    3     ^          ^
1949    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
1950   37  37 Ket          Ket
1951   40     End          End
1952  ------------------------------------------------------------------  ------------------------------------------------------------------
1953  Capturing subpattern count = 0  Capturing subpattern count = 0
1954  Options: anchored  Options: anchored
1955  No first char  No first char
1956  No need char  No need char
1957    
1958  /^[[:digit:]]/D  /^[[:digit:]]/DZ
1959  ------------------------------------------------------------------  ------------------------------------------------------------------
1960    0  37 Bra 0          Bra
1961    3     ^          ^
1962    4     [0-9]          [0-9]
1963   37  37 Ket          Ket
1964   40     End          End
1965  ------------------------------------------------------------------  ------------------------------------------------------------------
1966  Capturing subpattern count = 0  Capturing subpattern count = 0
1967  Options: anchored  Options: anchored
1968  No first char  No first char
1969  No need char  No need char
1970    
1971  /^[[:graph:]]/D  /^[[:graph:]]/DZ
1972  ------------------------------------------------------------------  ------------------------------------------------------------------
1973    0  37 Bra 0          Bra
1974    3     ^          ^
1975    4     [!-~]          [!-~]
1976   37  37 Ket          Ket
1977   40     End          End
1978  ------------------------------------------------------------------  ------------------------------------------------------------------
1979  Capturing subpattern count = 0  Capturing subpattern count = 0
1980  Options: anchored  Options: anchored
1981  No first char  No first char
1982  No need char  No need char
1983    
1984  /^[[:lower:]]/D  /^[[:lower:]]/DZ
1985  ------------------------------------------------------------------  ------------------------------------------------------------------
1986    0  37 Bra 0          Bra
1987    3     ^          ^
1988    4     [a-z]          [a-z]
1989   37  37 Ket          Ket
1990   40     End          End
1991  ------------------------------------------------------------------  ------------------------------------------------------------------
1992  Capturing subpattern count = 0  Capturing subpattern count = 0
1993  Options: anchored  Options: anchored
1994  No first char  No first char
1995  No need char  No need char
1996    
1997  /^[[:print:]]/D  /^[[:print:]]/DZ
1998  ------------------------------------------------------------------  ------------------------------------------------------------------
1999    0  37 Bra 0          Bra
2000    3     ^          ^
2001    4     [ -~]          [ -~]
2002   37  37 Ket          Ket
2003   40     End          End
2004  ------------------------------------------------------------------  ------------------------------------------------------------------
2005  Capturing subpattern count = 0  Capturing subpattern count = 0
2006  Options: anchored  Options: anchored
2007  No first char  No first char
2008  No need char  No need char
2009    
2010  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2011  ------------------------------------------------------------------  ------------------------------------------------------------------
2012    0  37 Bra 0          Bra
2013    3     ^          ^
2014    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2015   37  37 Ket          Ket
2016   40     End          End
2017  ------------------------------------------------------------------  ------------------------------------------------------------------
2018  Capturing subpattern count = 0  Capturing subpattern count = 0
2019  Options: anchored  Options: anchored
2020  No first char  No first char
2021  No need char  No need char
2022    
2023  /^[[:space:]]/D  /^[[:space:]]/DZ
2024  ------------------------------------------------------------------  ------------------------------------------------------------------
2025    0  37 Bra 0          Bra
2026    3     ^          ^
2027    4     [\x09-\x0d ]          [\x09-\x0d ]
2028   37  37 Ket          Ket
2029   40     End          End
2030  ------------------------------------------------------------------  ------------------------------------------------------------------
2031  Capturing subpattern count = 0  Capturing subpattern count = 0
2032  Options: anchored  Options: anchored
2033  No first char  No first char
2034  No need char  No need char
2035    
2036  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2037  ------------------------------------------------------------------  ------------------------------------------------------------------
2038    0  37 Bra 0          Bra
2039    3     ^          ^
2040    4     [A-Z]          [A-Z]
2041   37  37 Ket          Ket
2042   40     End          End
2043  ------------------------------------------------------------------  ------------------------------------------------------------------
2044  Capturing subpattern count = 0  Capturing subpattern count = 0
2045  Options: anchored  Options: anchored
2046  No first char  No first char
2047  No need char  No need char
2048    
2049  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2050  ------------------------------------------------------------------  ------------------------------------------------------------------
2051    0  37 Bra 0          Bra
2052    3     ^          ^
2053    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2054   37  37 Ket          Ket
2055   40     End          End
2056  ------------------------------------------------------------------  ------------------------------------------------------------------
2057  Capturing subpattern count = 0  Capturing subpattern count = 0
2058  Options: anchored  Options: anchored
2059  No first char  No first char
2060  No need char  No need char
2061    
2062  /^[[:word:]]/D  /^[[:word:]]/DZ
2063  ------------------------------------------------------------------  ------------------------------------------------------------------
2064    0  37 Bra 0          Bra
2065    3     ^          ^
2066    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2067   37  37 Ket          Ket
2068   40     End          End
2069  ------------------------------------------------------------------  ------------------------------------------------------------------
2070  Capturing subpattern count = 0  Capturing subpattern count = 0
2071  Options: anchored  Options: anchored
2072  No first char  No first char
2073  No need char  No need char
2074    
2075  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2076  ------------------------------------------------------------------  ------------------------------------------------------------------
2077    0  37 Bra 0          Bra
2078    3     ^          ^
2079    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2080   37  37 Ket          Ket
2081   40     End          End
2082  ------------------------------------------------------------------  ------------------------------------------------------------------
2083  Capturing subpattern count = 0  Capturing subpattern count = 0
2084  Options: anchored  Options: anchored
2085  No first char  No first char
2086  No need char  No need char
2087    
2088  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2089  ------------------------------------------------------------------  ------------------------------------------------------------------
2090    0  37 Bra 0          Bra
2091    3     ^          ^
2092    4     [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
2093   37  37 Ket          Ket
2094   40     End          End
2095  ------------------------------------------------------------------  ------------------------------------------------------------------
2096  Capturing subpattern count = 0  Capturing subpattern count = 0
2097  Options: anchored  Options: anchored
2098  No first char  No first char
2099  No need char  No need char
2100    
2101  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2102  ------------------------------------------------------------------  ------------------------------------------------------------------
2103    0  37 Bra 0          Bra
2104    3     ^          ^
2105    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2106   37  37 Ket          Ket
2107   40     End          End
2108  ------------------------------------------------------------------  ------------------------------------------------------------------
2109  Capturing subpattern count = 0  Capturing subpattern count = 0
2110  Options: anchored  Options: anchored
2111  No first char  No first char
2112  No need char  No need char
2113    
2114  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2115  ------------------------------------------------------------------  ------------------------------------------------------------------
2116    0  36 Bra 0          Bra
2117    3     [%01A-Za-z]          [%01A-Za-z]
2118   36  36 Ket          Ket
2119   39     End          End
2120  ------------------------------------------------------------------  ------------------------------------------------------------------
2121  Capturing subpattern count = 0  Capturing subpattern count = 0
2122  No options  No options
2123  No first char  No first char
2124  No need char  No need char
2125    
2126  /[[.ch.]]/  /[[.ch.]]/I
2127  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2128    
2129  /[[=ch=]]/  /[[=ch=]]/I
2130  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2131    
2132  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2133  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2134    
2135  /[[:upper:]]/i  /[[:upper:]]/Ii
2136  Capturing subpattern count = 0  Capturing subpattern count = 0
2137  Options: caseless  Options: caseless
2138  No first char  No first char
2139  No need char  No need char
2140      A      A
2141   0: A   0: A
2142      a      a
2143   0: a   0: a
2144    
2145  /[[:lower:]]/i  /[[:lower:]]/Ii
2146  Capturing subpattern count = 0  Capturing subpattern count = 0
2147  Options: caseless  Options: caseless
2148  No first char  No first char
2149  No need char  No need char
2150      A      A
2151   0: A   0: A
2152      a      a
2153   0: a   0: a
2154    
2155  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2156  Capturing subpattern count = 1  Capturing subpattern count = 1
2157  Options: caseless  Options: caseless
 Case state changes  
2158  No first char  No first char
2159  No need char  No need char
2160      ab      ab
# Line 2237  No need char Line 2168  No need char
2168   1: a   1: a
2169      Ab      Ab
2170  No match  No match
2171      AB      AB
2172  No match  No match
2173    
2174  /[\200-\410]/  /[\200-\110]/I
2175  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2176    
2177  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2178  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2179    
2180  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2181  Capturing subpattern count = 0  Capturing subpattern count = 0
2182  No options  No options
2183  First char = 'T'  First char = 'T'
2184  Need char = 'd'  Need char = 'd'
2185    
2186  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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)/  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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)/I
2187  Capturing subpattern count = 271  Capturing subpattern count = 271
2188  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2189  No options  No options
2190  No first char  No first char
2191  No need char  No need char
# Line 2533  No need char Line 2463  No need char
2463  270: ABC  270: ABC
2464  271: ABC  271: ABC
2465    
2466  /This one's here because Perl does this differently and PCRE can't at present/  /This one's here because Perl does this differently and PCRE can't at present/I
2467  Capturing subpattern count = 0  Capturing subpattern count = 0
2468  No options  No options
2469  First char = 'T'  First char = 'T'
2470  Need char = 't'  Need char = 't'
2471    
2472  /(main(O)?)+/  /(main(O)?)+/I
2473  Capturing subpattern count = 2  Capturing subpattern count = 2
2474  No options  No options
2475  First char = 'm'  First char = 'm'
# Line 2551  Need char = 'n' Line 2481  Need char = 'n'
2481   0: mainOmain   0: mainOmain
2482   1: main   1: main
2483   2: O   2: O
2484    
2485  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2486  Capturing subpattern count = 1  Capturing subpattern count = 1
2487  No options  No options
2488  First char = 'T'  First char = 'T'
2489  Need char = 's'  Need char = 's'
2490    
2491  /^(a(b)?)+$/  /^(a(b)?)+$/I
2492  Capturing subpattern count = 2  Capturing subpattern count = 2
2493  Options: anchored  Options: anchored
2494  No first char  No first char
# Line 2567  No need char Line 2497  No need char
2497   0: aba   0: aba
2498   1: a   1: a
2499   2: b   2: b
2500    
2501  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2502  Capturing subpattern count = 2  Capturing subpattern count = 2
2503  Options: anchored  Options: anchored
2504  No first char  No first char
2505  No need char  No need char
2506      aabbaa      aabbaa
2507   0: aabbaa   0: aabbaa
2508   1: aa   1: aa
2509   2: bb   2: bb
2510    
2511  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2512  Capturing subpattern count = 2  Capturing subpattern count = 2
2513  Options: anchored  Options: anchored
2514  No first char  No first char
2515  No need char  No need char
2516      aabbaa      aabbaa
2517   0: aabbaa   0: aabbaa
2518   1: aa   1: aa
2519   2: bb   2: bb
2520    
2521  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2522  Capturing subpattern count = 2  Capturing subpattern count = 2
2523  Options: anchored  Options: anchored
2524  No first char  No first char
2525  No need char  No need char
2526      aabbaa      aabbaa
2527   0: aabbaa   0: aabbaa
2528   1: aa   1: aa
2529   2: bb   2: bb
2530    
2531  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2532  Capturing subpattern count = 1  Capturing subpattern count = 1
2533  Options: anchored  Options: anchored
2534  No first char  No first char
2535  No need char  No need char
2536      aabbaa      aabbaa
2537   0: aabbaa   0: aabbaa
2538   1: bb   1: bb
2539    
2540  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2541  Capturing subpattern count = 3  Capturing subpattern count = 3
2542  Options: anchored  Options: anchored
2543  No first char  No first char
2544  No need char  No need char
2545      aabbaa      aabbaa
2546   0: aabbaa   0: aabbaa
2547   1: aa   1: aa
2548   2: bb   2: bb
2549   3: b   3: b
2550    
2551  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2552  Capturing subpattern count = 2  Capturing subpattern count = 2
2553  Options: anchored  Options: anchored
2554  No first char  No first char
2555  No need char  No need char
2556      aabbaa      aabbaa
2557   0: aabbaa   0: aabbaa
2558   1: bb   1: bb
2559   2: b   2: b
2560    
2561  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2562  Capturing subpattern count = 1  Capturing subpattern count = 1
2563  Options: anchored  Options: anchored
2564  No first char  No first char
2565  No need char  No need char
2566      aabbaa      aabbaa
2567   0: aabbaa   0: aabbaa
2568   1: bb   1: bb
2569    
2570  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2571  Capturing subpattern count = 1  Capturing subpattern count = 1
2572  Options: anchored  Options: anchored
2573  No first char  No first char
2574  No need char  No need char
2575      aabbbaa      aabbbaa
2576   0: aabbbaa   0: aabbbaa
2577   1: bbb   1: bbb
2578    
2579  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2580  Capturing subpattern count = 1  Capturing subpattern count = 1
2581  Options: anchored  Options: anchored
2582  No first char  No first char
2583  No need char  No need char
2584      aabbbaa      aabbbaa
2585   0: aabbbaa   0: aabbbaa
2586   1: bbb   1: bbb
2587    
2588  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2589  Capturing subpattern count = 1  Capturing subpattern count = 1
2590  Options: anchored  Options: anchored
2591  No first char  No first char
2592  No need char  No need char
2593      aabbaa      aabbaa
2594   0: aabbaa   0: aabbaa
2595   1: b   1: b
2596    
2597  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2598  Capturing subpattern count = 1  Capturing subpattern count = 1
2599  Options: anchored  Options: anchored
2600  No first char  No first char
2601  No need char  No need char
2602      aabbbaa      aabbbaa
2603   0: aabbbaa   0: aabbbaa
2604   1: bb   1: bb
2605    
2606  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2607  Capturing subpattern count = 3  Capturing subpattern count = 3
2608  Options: anchored  Options: anchored
2609  No first char  No first char
2610  No need char  No need char
2611      aabbbaa      aabbbaa
2612   0: aabbbaa   0: aabbbaa
2613   1: aa   1: aa
2614   2: bbb   2: bbb
2615   3: bb   3: bb
2616    
2617  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2618  Capturing subpattern count = 3  Capturing subpattern count = 3
2619  Options: anchored  Options: anchored
2620  No first char  No first char
2621  No need char  No need char
2622      aabbbbaa      aabbbbaa
2623   0: aabbbbaa   0: aabbbbaa
2624   1: aa   1: aa
2625   2: bbbb   2: bbbb
2626   3: bb   3: bb
2627    
2628  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2629  Capturing subpattern count = 0  Capturing subpattern count = 0
2630  No options  No options
2631  First char = '-'  First char = '-'
2632  Need char = '-'  Need char = '-'
2633    
2634  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2635  ------------------------------------------------------------------  ------------------------------------------------------------------
2636    0   3 Bra 0          Bra
2637    3   3 Ket          Ket
2638    6     End          End
2639  ------------------------------------------------------------------  ------------------------------------------------------------------
2640  Capturing subpattern count = 0  Capturing subpattern count = 0
2641  Options: extended  Options: extended
2642  No first char  No first char
2643  No need char  No need char
2644    
2645  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 9  
2646  ------------------------------------------------------------------  ------------------------------------------------------------------
2647    0   5 Bra 0          Bra
2648    3     a          a
2649    5   5 Ket          Ket
2650    8     End          End
2651  ------------------------------------------------------------------  ------------------------------------------------------------------
2652  Capturing subpattern count = 0  Capturing subpattern count = 0
2653  Options: extended  Options: extended
2654  First char = 'a'  First char = 'a'
2655  No need char  No need char
2656    
2657  /[\s]/D  /[\s]/DZ
2658  ------------------------------------------------------------------  ------------------------------------------------------------------
2659    0  36 Bra 0          Bra
2660    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
2661   36  36 Ket          Ket
2662   39     End          End
2663  ------------------------------------------------------------------  ------------------------------------------------------------------
2664  Capturing subpattern count = 0  Capturing subpattern count = 0
2665  No options  No options
2666  No first char  No first char
2667  No need char  No need char
2668    
2669  /[\S]/D  /[\S]/DZ
2670  ------------------------------------------------------------------  ------------------------------------------------------------------
2671    0  36 Bra 0          Bra
2672    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2673   36  36 Ket          Ket
2674   39     End          End
2675  ------------------------------------------------------------------  ------------------------------------------------------------------
2676  Capturing subpattern count = 0  Capturing subpattern count = 0
2677  No options  No options
2678  No first char  No first char
2679  No need char  No need char
2680    
2681  /a(?i)b/D  /a(?i)b/DZ
2682  ------------------------------------------------------------------  ------------------------------------------------------------------
2683    0   9 Bra 0          Bra
2684    3     a          a
2685    5  01 Opt       01 Opt
2686    7  NC b       NC b
2687    9   9 Ket          Ket
2688   12     End          End
2689  ------------------------------------------------------------------  ------------------------------------------------------------------
2690  Capturing subpattern count = 0  Capturing subpattern count = 0
2691  No options  No options
 Case state changes  
2692  First char = 'a'  First char = 'a'
2693  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2694      ab      ab
2695   0: ab   0: ab
2696      aB      aB
2697   0: aB   0: aB
2698      *** Failers      *** Failers
2699  No match  No match
2700      AB      AB
2701  No match  No match
2702    
2703  /(a(?i)b)/D  /(a(?i)b)/DZ
2704  ------------------------------------------------------------------  ------------------------------------------------------------------
2705    0  17 Bra 0          Bra
2706    3   9 Bra 1          CBra 1
2707    6     a          a
2708    8  01 Opt       01 Opt
2709   10  NC b       NC b
2710   12   9 Ket          Ket
2711   15  00 Opt       00 Opt
2712   17  17 Ket          Ket
2713   20     End          End
2714  ------------------------------------------------------------------  ------------------------------------------------------------------
2715  Capturing subpattern count = 1  Capturing subpattern count = 1
2716  No options  No options
 Case state changes  
2717  First char = 'a'  First char = 'a'
2718  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2719      ab      ab
# Line 2796  Need char = 'b' (caseless) Line 2722  Need char = 'b' (caseless)
2722      aB      aB
2723   0: aB   0: aB
2724   1: aB   1: aB
2725      *** Failers      *** Failers
2726  No match  No match
2727      AB      AB
2728  No match  No match
2729    
2730  /   (?i)abc/xD  /   (?i)abc/IxDZ
2731  ------------------------------------------------------------------  ------------------------------------------------------------------
2732    0   9 Bra 0          Bra
2733    3  NC abc       NC abc
2734    9   9 Ket          Ket
2735   12     End          End
2736  ------------------------------------------------------------------  ------------------------------------------------------------------
2737  Capturing subpattern count = 0  Capturing subpattern count = 0
2738  Options: caseless extended  Options: caseless extended
# Line 2814  First char = 'a' (caseless) Line 2740  First char = 'a' (caseless)
2740  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2741    
2742  /#this is a comment  /#this is a comment
2743    (?i)abc/xD    (?i)abc/IxDZ
2744  ------------------------------------------------------------------  ------------------------------------------------------------------
2745    0   9 Bra 0          Bra
2746    3  NC abc       NC abc
2747    9   9 Ket          Ket
2748   12     End          End
2749  ------------------------------------------------------------------  ------------------------------------------------------------------
2750  Capturing subpattern count = 0  Capturing subpattern count = 0
2751  Options: caseless extended  Options: caseless extended
2752  First char = 'a' (caseless)  First char = 'a' (caseless)
2753  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2754    
2755  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2756  ------------------------------------------------------------------  ------------------------------------------------------------------
2757    0 603 Bra 0          Bra
2758    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2759  603 603 Ket          Ket
2760  606     End          End
2761  ------------------------------------------------------------------  ------------------------------------------------------------------
2762  Capturing subpattern count = 0  Capturing subpattern count = 0
2763  No options  No options
2764  First char = '1'  First char = '1'
2765  Need char = '0'  Need char = '0'
2766    
2767  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2768  ------------------------------------------------------------------  ------------------------------------------------------------------
2769    0 603 Bra 0          Bra
2770    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2771  603 603 Ket          Ket
2772  606     End          End
2773  ------------------------------------------------------------------  ------------------------------------------------------------------
2774  Capturing subpattern count = 0  Capturing subpattern count = 0
2775  No options  No options
2776  First char = '1'  First char = '1'
2777  Need char = '0'  Need char = '0'
2778    
2779  /\Q\E/D  /\Q\E/DZ
2780  ------------------------------------------------------------------  ------------------------------------------------------------------
2781    0   3 Bra 0          Bra
2782    3   3 Ket          Ket
2783    6     End          End
2784  ------------------------------------------------------------------  ------------------------------------------------------------------
2785  Capturing subpattern count = 0  Capturing subpattern count = 0
2786  No options  No options
# Line 2863  No need char Line 2789  No need char
2789      \      \
2790   0:   0:
2791    
2792  /\Q\Ex/D  /\Q\Ex/DZ
2793  ------------------------------------------------------------------  ------------------------------------------------------------------
2794    0   5 Bra 0          Bra
2795    3     x          x
2796    5   5 Ket          Ket
2797    8     End          End
2798  ------------------------------------------------------------------  ------------------------------------------------------------------
2799  Capturing subpattern count = 0  Capturing subpattern count = 0
2800  No options  No options
2801  First char = 'x'  First char = 'x'
2802  No need char  No need char
2803    
2804  / \Q\E/D  / \Q\E/DZ
2805  ------------------------------------------------------------------  ------------------------------------------------------------------
2806    0   5 Bra 0          Bra
2807    3  
2808    5   5 Ket          Ket
2809    8     End          End
2810  ------------------------------------------------------------------  ------------------------------------------------------------------
2811  Capturing subpattern count = 0  Capturing subpattern count = 0
2812  No options  No options
2813  First char = ' '  First char = ' '
2814  No need char  No need char
2815    
2816  /a\Q\E/D  /a\Q\E/DZ
2817  ------------------------------------------------------------------  ------------------------------------------------------------------
2818    0   5 Bra 0          Bra
2819    3     a          a
2820    5   5 Ket          Ket
2821    8     End          End
2822  ------------------------------------------------------------------  ------------------------------------------------------------------
2823  Capturing subpattern count = 0  Capturing subpattern count = 0
2824  No options  No options
# Line 2902  No need char Line 2828  No need char
2828   0: a   0: a
2829    bca    bca
2830   0: a   0: a
2831    bac    bac
2832   0: a   0: a
2833    
2834  /a\Q\Eb/D  /a\Q\Eb/DZ
2835  ------------------------------------------------------------------  ------------------------------------------------------------------
2836    0   7 Bra 0          Bra
2837    3     ab          ab
2838    7   7 Ket          Ket
2839   10     End          End
2840  ------------------------------------------------------------------  ------------------------------------------------------------------
2841  Capturing subpattern count = 0  Capturing subpattern count = 0
2842  No options  No options
# Line 2919  Need char = 'b' Line 2845  Need char = 'b'
2845    abc    abc
2846   0: ab   0: ab
2847    
2848  /\Q\Eabc/D  /\Q\Eabc/DZ
2849  ------------------------------------------------------------------  ------------------------------------------------------------------
2850    0   9 Bra 0          Bra
2851    3     abc          abc
2852    9   9 Ket          Ket
2853   12     End          End
2854  ------------------------------------------------------------------  ------------------------------------------------------------------
2855  Capturing subpattern count = 0  Capturing subpattern count = 0
2856  No options  No options
2857  First char = 'a'  First char = 'a'
2858  Need char = 'c'  Need char = 'c'
2859    
2860  /x*+\w/D  /x*+\w/DZ
2861  ------------------------------------------------------------------  ------------------------------------------------------------------
2862    0  12 Bra 0          Bra
2863    3   5 Once          x*+
2864    6     x*          \w
2865    8   5 Ket          Ket
2866   11     \w          End
  12  12 Ket  
  15     End  
2867  ------------------------------------------------------------------  ------------------------------------------------------------------
2868  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2869  No options  No options
2870  No first char  No first char
2871  No need char  No need char
# Line 2950  No need char Line 2873  No need char
2873   0: F   0: F
2874      xxxxx      xxxxx
2875  No match  No match
2876    
2877  /x?+/D  /x?+/DZ
2878  ------------------------------------------------------------------  ------------------------------------------------------------------
2879    0  11 Bra 0          Bra
2880    3   5 Once          x?+
2881    6     x?          Ket
2882    8   5 Ket          End
  11  11 Ket  
  14     End  
2883  ------------------------------------------------------------------  ------------------------------------------------------------------
2884  Capturing subpattern count = 0  Capturing subpattern count = 0
2885  No options  No options
2886  No first char  No first char
2887  No need char  No need char
2888    
2889  /x++/D  /x++/DZ
2890  ------------------------------------------------------------------  ------------------------------------------------------------------
2891    0  11 Bra 0          Bra
2892    3   5 Once          x++
2893    6     x+          Ket
2894    8   5 Ket          End
  11  11 Ket  
  14     End  
2895  ------------------------------------------------------------------  ------------------------------------------------------------------
2896  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2897  No options  No options
2898  First char = 'x'  First char = 'x'
2899  No need char  No need char
2900    
2901  /x{1,3}+/D  /x{1,3}+/DZ
2902  ------------------------------------------------------------------  ------------------------------------------------------------------
2903    0  15 Bra 0          Bra
2904    3   9 Once          Once
2905    6     x          x
2906    8     x{,2}          x{0,2}
2907   12   9 Ket          Ket
2908   15  15 Ket          Ket
2909   18     End          End
2910  ------------------------------------------------------------------  ------------------------------------------------------------------
2911  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2912  No options  No options
2913  First char = 'x'  First char = 'x'
2914  No need char  No need char
2915    
2916  /(x)*+/D  /(x)*+/DZ
2917  ------------------------------------------------------------------  ------------------------------------------------------------------
2918    0  18 Bra 0          Bra
2919    3  12 Once          Once
2920    6     Brazero          Brazero
2921    7   5 Bra 1          CBra 1
2922   10     x          x
2923   12   5 KetRmax          KetRmax
2924   15  12 Ket          Ket
2925   18  18 Ket          Ket
2926   21     End          End
2927  ------------------------------------------------------------------  ------------------------------------------------------------------
2928  Capturing subpattern count = 1  Capturing subpattern count = 1
2929  No options  No options
2930  No first char  No first char
2931  No need char  No need char
2932    
2933  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2934  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2935  Options: anchored  Options: anchored
2936  No first char  No first char
2937  No need char  No need char
# Line 3026  No need char Line 2942  No need char
2942  No match  No match
2943      this is not a line with only words and spaces!      this is not a line with only words and spaces!
2944  No match  No match
2945    
2946  /(\d++)(\w)/  /(\d++)(\w)/I
2947  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
2948  No options  No options
2949  No first char  No first char
2950  No need char  No need char
# Line 3039  No need char Line 2954  No need char
2954   2: a   2: a
2955      *** Failers      *** Failers
2956  No match  No match
2957      12345+      12345+
2958  No match  No match
2959    
2960  /a++b/  /a++b/I
2961  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2962  No options  No options
2963  First char = 'a'  First char = 'a'
2964  Need char = 'b'  Need char = 'b'
2965      aaab      aaab
2966   0: aaab   0: aaab
2967    
2968  /(a++b)/  /(a++b)/I
2969  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2970  No options  No options
2971  First char = 'a'  First char = 'a'
2972  Need char = 'b'  Need char = 'b'
# Line 3061  Need char = 'b' Line 2974  Need char = 'b'
2974   0: aaab   0: aaab
2975   1: aaab   1: aaab
2976    
2977  /(a++)b/  /(a++)b/I
2978  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2979  No options  No options
2980  First char = 'a'  First char = 'a'
2981  Need char = 'b'  Need char = 'b'
# Line 3071  Need char = 'b' Line 2983  Need char = 'b'
2983   0: aaab   0: aaab
2984   1: aaa   1: aaa
2985    
2986  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
2987  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2988  No options  No options
2989  No first char  No first char
2990  No need char  No need char
2991      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
2992   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
2993   1: x   1: x
2994    
2995  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
2996  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2997  No options  No options
2998  First char = '('  First char = '('
2999  Need char = ')'  Need char = ')'
# Line 3095  Need char = ')' Line 3005  Need char = ')'
3005   1: xyz   1: xyz
3006      *** Failers      *** Failers
3007  No match  No match
3008      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3009  No match  No match
3010    
3011  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3012  ------------------------------------------------------------------  ------------------------------------------------------------------
3013    0  53 Bra 0          Bra
3014    3  47 Once          Once
3015    6   9 Bra 1          CBra 1
3016    9     abc          abc
3017   15   9 Ket          Ket
3018   18     Brazero          Brazero
3019   19  28 Bra 0          Bra
3020   22   9 Bra 1          CBra 1
3021   25     abc          abc
3022   31   9 Ket          Ket
3023   34     Brazero          Brazero
3024   35   9 Bra 1          CBra 1
3025   38     abc          abc
3026   44   9 Ket          Ket
3027   47  28 Ket          Ket
3028   50  47 Ket          Ket
3029   53  53 Ket          Ket
3030   56     End          End
3031  ------------------------------------------------------------------  ------------------------------------------------------------------
3032  Capturing subpattern count = 1  Capturing subpattern count = 1
3033  No options  No options
3034  First char = 'a'  First char = 'a'
3035  Need char = 'c'  Need char = 'c'
3036    
3037  /a+?+/  /a+?+/I
3038  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3039    
3040  /a{2,3}?+b/  /a{2,3}?+b/I
3041  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3042    
3043  /(?U)a+?+/  /(?U)a+?+/I
3044  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3045    
3046  /a{2,3}?+b/U  /a{2,3}?+b/IU
3047  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3048    
3049  /x(?U)a++b/D  /x(?U)a++b/DZ
3050  ------------------------------------------------------------------  ------------------------------------------------------------------
3051    0  15 Bra 0          Bra
3052    3     x          x
3053    5   5 Once          a++
3054    8     a+          b
3055   10   5 Ket          Ket
3056   13     b          End
  15  15 Ket  
  18     End  
3057  ------------------------------------------------------------------  ------------------------------------------------------------------
3058  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3059  No options  No options
3060  First char = 'x'  First char = 'x'
3061  Need char = 'b'  Need char = 'b'
3062      xaaaab      xaaaab
3063   0: xaaaab   0: xaaaab
3064    
3065  /(?U)xa++b/D  /(?U)xa++b/DZ
3066  ------------------------------------------------------------------  ------------------------------------------------------------------
3067    0  15 Bra 0          Bra
3068    3     x          x
3069    5   5 Once          a++
3070    8     a+          b
3071   10   5 Ket          Ket
3072   13     b          End
  15  15 Ket  
  18     End  
3073  ------------------------------------------------------------------  ------------------------------------------------------------------
3074  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3075  Options: ungreedy  Options: ungreedy
3076  First char = 'x'  First char = 'x'
3077  Need char = 'b'  Need char = 'b'
3078      xaaaab      xaaaab
3079   0: xaaaab   0: xaaaab
3080    
3081  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3082  ------------------------------------------------------------------  ------------------------------------------------------------------
3083    0 106 Bra 0          Bra
3084    3     ^          ^
3085    4  99 Bra 1          CBra 1
3086    7   5 Bra 2          CBra 2
3087   10     a+          a+
3088   12   5 Ket          Ket
3089   15  37 Bra 3          CBra 3
3090   18     [ab]+?          [ab]+?
3091   52  37 Ket          Ket
3092   55  37 Bra 4          CBra 4
3093   58     [bc]+          [bc]+
3094   92  37 Ket          Ket
3095   95   5 Bra 5          CBra 5
3096   98     \w*          \w*
3097  100   5 Ket          Ket
3098  103  99 Ket          Ket
3099  106 106 Ket          Ket
3100  109     End          End
3101  ------------------------------------------------------------------  ------------------------------------------------------------------
3102  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3103  Options: anchored  Options: anchored
3104  No first char  No first char
3105  No need char  No need char
3106    
3107  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3108  ------------------------------------------------------------------  ------------------------------------------------------------------
3109    0  10 Bra 0          Bra
3110    3     ^          ^
3111    4     x          x
3112    6     a+?          a++
3113    8     b          b
3114   10  10 Ket          Ket
3115   13     End          End
3116  ------------------------------------------------------------------  ------------------------------------------------------------------
3117  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3118  Options: anchored  Options: anchored
3119  No first char  No first char
3120  Need char = 'b'  Need char = 'b'
3121    
3122  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3123  ------------------------------------------------------------------  ------------------------------------------------------------------
3124    0  16 Bra 0          Bra
3125    3     ^          ^
3126    4     x          x
3127    6   5 Bra 1          CBra 1
3128    9     a+?          a+?
3129   11   5 Ket          Ket
3130   14     b          b
3131   16  16 Ket          Ket
3132   19     End          End
3133  ------------------------------------------------------------------  ------------------------------------------------------------------
3134  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3135  Options: anchored  Options: anchored
3136  No first char  No first char
3137  Need char = 'b'  Need char = 'b'
3138    
3139  /[.x.]/  /[.x.]/I
3140  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3141    
3142  /[=x=]/  /[=x=]/I
3143  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3144    
3145  /[:x:]/  /[:x:]/I
3146  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3147    
3148  /\l/  /\l/I
3149  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3150    
3151  /\L/  /\L/I
3152  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3153    
3154  /\N{name}/  /\N{name}/I
3155  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3156    
3157  /\u/  /\u/I
3158  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3159    
3160  /\U/  /\U/I
3161  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3162    
3163  /[/  /[/I
3164  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3165    
3166  /[a-/  /[a-/I
3167  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3168    
3169  /[[:space:]/  /[[:space:]/I
3170  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3171    
3172  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3173  ------------------------------------------------------------------  ------------------------------------------------------------------
3174    0  36 Bra 0          Bra
3175    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
3176   36  36 Ket          Ket
3177   39     End          End
3178  ------------------------------------------------------------------  ------------------------------------------------------------------
3179  Capturing subpattern count = 0  Capturing subpattern count = 0
3180  No options  No options
3181  No first char  No first char
3182  No need char  No need char
3183    
3184  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3185  ------------------------------------------------------------------  ------------------------------------------------------------------
3186    0  36 Bra 0          Bra
3187    3     [\x09-\x0d ]          [\x09-\x0d ]
3188   36  36 Ket          Ket
3189   39     End          End
3190  ------------------------------------------------------------------  ------------------------------------------------------------------
3191  Capturing subpattern count = 0  Capturing subpattern count = 0
3192  No options  No options
3193  No first char  No first char
3194  No need char  No need char
3195    
3196  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3197  ------------------------------------------------------------------  ------------------------------------------------------------------
3198    0  36 Bra 0          Bra
3199    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3200   36  36 Ket          Ket
3201   39     End          End
3202  ------------------------------------------------------------------  ------------------------------------------------------------------
3203  Capturing subpattern count = 0  Capturing subpattern count = 0
3204  No options  No options
3205  No first char  No first char
3206  No need char  No need char
3207    
3208  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3209  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3210  Options: extended  Options: extended
3211  First char = '<'  First char = '<'
3212  Need char = '>'  Need char = '>'
# Line 3321  Need char = '>' Line 3218  Need char = '>'
3218   0: <abc <123> hij>   0: <abc <123> hij>
3219      <abc <def> hij>      <abc <def> hij>
3220   0: <def>   0: <def>
3221      <abc<>def>      <abc<>def>
3222   0: <abc<>def>   0: <abc<>def>
3223      <abc<>      <abc<>
3224   0: <>   0: <>
3225      *** Failers      *** Failers
3226  No match  No match
3227      <abc      <abc
3228  No match  No match
3229    
3230  |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  |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|IDZ
 Memory allocation (code space): 826  
3231  ------------------------------------------------------------------  ------------------------------------------------------------------
3232    0 822 Bra 0          Bra
3233    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          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
3234  821     \b          \b
3235  822 822 Ket          Ket
3236  825     End          End
3237  ------------------------------------------------------------------  ------------------------------------------------------------------
3238  Capturing subpattern count = 0  Capturing subpattern count = 0
3239  No options  No options
3240  First char = '8'  First char = '8'
3241  Need char = 'X'  Need char = 'X'
3242    
3243  |\$\<\.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  |\$\<\.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|IDZ
 Memory allocation (code space): 816  
3244  ------------------------------------------------------------------  ------------------------------------------------------------------
3245    0 812 Bra 0          Bra
3246    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          $<.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
3247  811     \b          \b
3248  812 812 Ket          Ket
3249  815     End          End
3250  ------------------------------------------------------------------  ------------------------------------------------------------------
3251  Capturing subpattern count = 0  Capturing subpattern count = 0
3252  No options  No options
# Line 3361  Need char = 'X' Line 3256  Need char = 'X'
3256  /(.*)\d+\1/I  /(.*)\d+\1/I
3257  Capturing subpattern count = 1  Capturing subpattern count = 1
3258  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3259  No options  No options
3260  No first char  No first char
3261  No need char  No need char
3262    
3263  /(.*)\d+/I  /(.*)\d+/I
3264  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3265  No options  No options
3266  First char at start or follows \n  First char at start or follows newline
3267  No need char  No need char
3268    
3269  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3270  Capturing subpattern count = 1  Capturing subpattern count = 1
3271  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3272  Options: dotall  Options: dotall
3273  No first char  No first char
3274  No need char  No need char
3275    
3276  /(.*)\d+/Is  /(.*)\d+/Is
3277  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3278  Options: anchored dotall  Options: anchored dotall
3279  No first char  No first char
3280  No need char  No need char
# Line 3391  No need char Line 3282  No need char
3282  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3283  Capturing subpattern count = 2  Capturing subpattern count = 2
3284  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3285  No options  No options
3286  First char at start or follows \n  First char at start or follows newline
3287  Need char = 'z'  Need char = 'z'
3288    
3289  /((.*))\d+\1/I  /((.*))\d+\1/I
3290  Capturing subpattern count = 2  Capturing subpattern count = 2
3291  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3292  No options  No options
3293  No first char  No first char
3294  No need char  No need char
# Line 3407  No need char Line 3296  No need char
3296   0: bc123bc   0: bc123bc
3297   1: bc   1: bc
3298   2: bc   2: bc
3299    
3300  /a[b]/I  /a[b]/I
3301  Capturing subpattern count = 0  Capturing subpattern count = 0
3302  No options  No options
# Line 3416  Need char = 'b' Line 3305  Need char = 'b'
3305    
3306  /(?=a).*/I  /(?=a).*/I
3307  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3308  No options  No options
3309  First char = 'a'  First char = 'a'
3310  No need char  No need char
3311    
3312  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3313  Capturing subpattern count = 0  Capturing subpattern count = 0
3314  Options: caseless  Options: caseless
3315  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3430  Need char = 'z' (caseless) Line 3318  Need char = 'z' (caseless)
3318  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3319  Capturing subpattern count = 0  Capturing subpattern count = 0
3320  No options  No options
 Case state changes  
3321  First char = 'a'  First char = 'a'
3322  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3323    
# Line 3464  No options Line 3351  No options
3351  No first char  No first char
3352  Need char = 'a'  Need char = 'a'
3353    
3354  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3355  Capturing subpattern count = 0  Capturing subpattern count = 1
3356  No options  No options
3357  First char = 'a'  First char = 'a'
3358  No need char  No need char
3359    
3360  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3361  Capturing subpattern count = 0  Capturing subpattern count = 1
3362  No options  No options
3363  First char = 'a'  First char = 'a'
3364  Need char = 'z'  Need char = 'z'
3365    
3366  /(?(1)abz)/I  /(?(1)abz)(.)/I
3367  Capturing subpattern count = 0  Capturing subpattern count = 1
3368  No options  No options
3369  No first char  No first char
3370  No need char  No need char
3371    
3372  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3373  Capturing subpattern count = 0  Capturing subpattern count = 1
3374  No options  No options
3375  No first char  No first char
3376  Need char = '3'  Need char = '3'
# Line 3550  No options Line 3437  No options
3437  First char = 'a'  First char = 'a'
3438  Need char = 'b'  Need char = 'b'
3439    
3440  /^a/mI  /^a/Im
3441  Capturing subpattern count = 0  Capturing subpattern count = 0
3442  Options: multiline  Options: multiline
3443  First char at start or follows \n  First char at start or follows newline
3444  Need char = 'a'  Need char = 'a'
3445    abcde    abcde
3446   0: a   0: a
3447    xy\nabc    xy\nabc
3448   0: a   0: a
3449    *** Failers    *** Failers
3450  No match  No match
3451    xyabc    xyabc
3452  No match  No match
3453    
3454  /c|abc/I  /c|abc/I
# Line 3580  Starting byte set: A B a b Line 3467  Starting byte set: A B a b
3467  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3468  Capturing subpattern count = 0  Capturing subpattern count = 0
3469  No options  No options
 Case state changes  
3470  No first char  No first char
3471  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3472  Starting byte set: a b  Starting byte set: a b
3473    
3474  /abc(?C)def/  /abc(?C)def/I
3475  Capturing subpattern count = 0  Capturing subpattern count = 0
3476  No options  No options
3477  First char = 'a'  First char = 'a'
# Line 3594  Need char = 'f' Line 3480  Need char = 'f'
3480  --->abcdef  --->abcdef
3481    0 ^  ^       d    0 ^  ^       d
3482   0: abcdef   0: abcdef
3483      1234abcdef      1234abcdef
3484  --->1234abcdef  --->1234abcdef
3485    0     ^  ^       d    0     ^  ^       d
3486   0: abcdef   0: abcdef
# Line 3602  Need char = 'f' Line 3488  Need char = 'f'
3488  No match  No match
3489      abcxyz      abcxyz
3490  No match  No match
3491      abcxyzf      abcxyzf
3492  --->abcxyzf  --->abcxyzf
3493    0 ^  ^        d    0 ^  ^        d
3494  No match  No match
3495    
3496  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3497  Capturing subpattern count = 0  Capturing subpattern count = 0
3498  No options  No options
3499  First char = 'a'  First char = 'a'
# Line 3617  Need char = 'f' Line 3503  Need char = 'f'
3503    0    ^  ^       d    0    ^  ^       d
3504    1    ^    ^     f    1    ^    ^     f
3505   0: abcdef   0: abcdef
3506    
3507  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3508  Capturing subpattern count = 0  Capturing subpattern count = 0
3509  No options  No options
3510  No first char  No first char
# Line 3633  Need char = 'f' Line 3519  Need char = 'f'
3519   0: 4abcdef   0: 4abcdef
3520      *** Failers      *** Failers
3521  No match  No match
3522      abcdef      abcdef
3523  --->abcdef  --->abcdef
3524    1 ^          \d    1 ^          \d
3525    1  ^         \d    1  ^         \d
# Line 3642  No match Line 3528  No match
3528    1     ^      \d    1     ^      \d
3529    1      ^     \d    1      ^     \d
3530  No match  No match
3531    
3532  /(?C255)ab/  /(?C255)ab/I
3533  Capturing subpattern count = 0  Capturing subpattern count = 0
3534  No options  No options
3535  First char = 'a'  First char = 'a'
3536  Need char = 'b'  Need char = 'b'
3537    
3538  /(?C256)ab/  /(?C256)ab/I
3539  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3540    
3541  /(?Cab)xx/  /(?Cab)xx/I
3542  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3543    
3544  /(?C12vr)x/  /(?C12vr)x/I
3545  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3546    
3547  /abc(?C)def/  /abc(?C)def/I
3548  Capturing subpattern count = 0  Capturing subpattern count = 0
3549  No options  No options
3550  First char = 'a'  First char = 'a'
# Line 3670  No match Line 3556  No match
3556    0         ^  ^       d    0         ^  ^       d
3557   0: abcdef   0: abcdef
3558    
3559  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3560  Capturing subpattern count = 1  Capturing subpattern count = 1
3561  No options  No options
3562  First char = 'a'  First char = 'a'
# Line 3681  Need char = 'f' Line 3567  Need char = 'f'
3567    1    ^    ^     f    1    ^    ^     f
3568   0: abcdef   0: abcdef
3569   1: abc   1: abc
3570      123abcdef\C+      123abcdef\C+
3571  Callout 0: last capture = 1  Callout 0: last capture = 1
3572   0: <unset>   0: <unset>
3573   1: abc   1: abc
# Line 3694  Callout 1: last capture = 1 Line 3580  Callout 1: last capture = 1
3580         ^    ^     f         ^    ^     f
3581   0: abcdef   0: abcdef
3582   1: abc   1: abc
3583      123abcdef\C-      123abcdef\C-
3584   0: abcdef   0: abcdef
3585   1: abc   1: abc
3586      *** Failers      *** Failers
3587  No match  No match
3588      123abcdef\C!1      123abcdef\C!1
3589  --->123abcdef  --->123abcdef
3590    0    ^  ^       d    0    ^  ^       d
3591    1    ^    ^     f    1    ^    ^     f
3592  No match  No match
3593    
3594  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3595  Capturing subpattern count = 1  Capturing subpattern count = 1
3596  No options  No options
3597  No first char  No first char
# Line 3718  No need char Line 3604  No need char
3604    1 ^        ^    )    1 ^        ^    )
3605   0: abcabcabc   0: abcabcabc
3606   1: abc   1: abc
3607      abcabc\C!1!3      abcabc\C!1!3
3608  --->abcabc  --->abcabc
3609    0 ^          (abc(?C1))*    0 ^          (abc(?C1))*
3610    1 ^  ^       )    1 ^  ^       )
# Line 3729  No need char Line 3615  No need char
3615  --->*** Failers  --->*** Failers
3616    0 ^               (abc(?C1))*    0 ^               (abc(?C1))*
3617   0:   0:
3618      abcabcabc\C!1!3      abcabcabc\C!1!3
3619  --->abcabcabc  --->abcabcabc
3620    0 ^             (abc(?C1))*    0 ^             (abc(?C1))*
3621    1 ^  ^          )    1 ^  ^          )
# Line 3738  No need char Line 3624  No need char
3624   0: abcabc   0: abcabc
3625   1: abc   1: abc
3626    
3627  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3628  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3629  No options  No options
3630  No first char  No first char
3631  No need char  No need char
# Line 3763  Callout 0: last capture = 1 Line 3648  Callout 0: last capture = 1
3648      ^     ^    )      ^     ^    )
3649   0: 123456   0: 123456
3650   1: 456   1: 456
3651      123456789\C+      123456789\C+
3652  Callout 0: last capture = -1  Callout 0: last capture = -1
3653   0: <unset>   0: <unset>
3654  --->123456789  --->123456789
# Line 3781  Callout 0: last capture = 1 Line 3666  Callout 0: last capture = 1
3666   0: 123456789   0: 123456789
3667   1: 789   1: 789
3668    
3669  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3670  Capturing subpattern count = 2  Capturing subpattern count = 2
3671  No options  No options
3672  First char = 'x'  First char = 'x'
# Line 3800  Callout 1: last capture = -1 Line 3685  Callout 1: last capture = -1
3685   0: xyzabc   0: xyzabc
3686   1: xyzabc   1: xyzabc
3687    
3688  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3689  Capturing subpattern count = 3  Capturing subpattern count = 3
3690  No options  No options
3691  First char = 'X'  First char = 'X'
# Line 3822  Callout 1: last capture = 1 Line 3707  Callout 1: last capture = 1
3707   1: X   1: X
3708   2: xyzabc   2: xyzabc
3709    
3710  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3711  Capturing subpattern count = 1  Capturing subpattern count = 1
3712  No options  No options
3713  First char = 'a'  First char = 'a'
# Line 3835  Callout 0: last capture = 1 Line 3720  Callout 0: last capture = 1
3720      ^          a      ^          a
3721   0: abcdef   0: abcdef
3722   1: abc   1: abc
3723    
3724  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3725  Capturing subpattern count = 1  Capturing subpattern count = 1
3726  No options  No options
3727  First char = 'a'  First char = 'a'
3728  Need char = 'z'  Need char = 'z'
3729      abcxyz\C+      abcxyz\C+
3730  Callout 1: last capture = 1  Callout 1: last capture = 1
3731   0: <unset>   0: <unset>
3732   1: abc   1: abc
# Line 3853  Callout 2: last capture = -1 Line 3738  Callout 2: last capture = -1
3738      ^          a      ^          a
3739   0: abcxyz   0: abcxyz
3740    
3741  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3742  Capturing subpattern count = 1  Capturing subpattern count = 1
3743  No options  No options
3744  First char = 'x'  First char = 'x'
# Line 3866  Callout 0: last capture = 1 Line 3751  Callout 0: last capture = 1
3751         ^       )         ^       )
3752   0: xyz   0: xyz
3753   1: abc   1: abc
3754    
3755  /a(b+)(c*)(?C1)/  /a(b+)(c*)(?C1)/I
3756  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3757  No options  No options
3758  First char = 'a'  First char = 'a'
3759  Need char = 'b'  Need char = 'b'
# Line 3893  Callout data = 1 Line 3777  Callout data = 1
3777  Callout data = 1  Callout data = 1
3778  No match  No match
3779    
3780  /a(b+?)(c*?)(?C1)/  /a(b+?)(c*?)(?C1)/I
3781  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3782  No options  No options
3783  First char = 'a'  First char = 'a'
3784  Need char = 'b'  Need char = 'b'
# Line 3918  Callout data = 1 Line 3801  Callout data = 1
3801    1 ^        ^    1 ^        ^
3802  Callout data = 1  Callout data = 1
3803  No match  No match
3804    
3805  /(?C)abc/  /(?C)abc/I
3806  Capturing subpattern count = 0  Capturing subpattern count = 0
3807  No options  No options
3808  First char = 'a'  First char = 'a'
3809  Need char = 'c'  Need char = 'c'
3810    
3811  /(?C)^abc/  /(?C)^abc/I
3812  Capturing subpattern count = 0  Capturing subpattern count = 0
3813  Options: anchored  Options: anchored
3814  No first char  No first char
3815  No need char  No need char
3816    
3817  /(?C)a|b/S  /(?C)a|b/IS
3818  Capturing subpattern count = 0  Capturing subpattern count = 0
3819  No options  No options
3820  No first char  No first char
3821  No need char  No need char
3822  Starting byte set: a b  Starting byte set: a b
3823    
3824  /(?R)/  /(?R)/I
3825  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3826    
3827  /(a|(?R))/  /(a|(?R))/I
3828  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3829    
3830  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3831  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3832    
3833  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3834  Capturing subpattern count = 3  Capturing subpattern count = 3
3835  No options  No options
3836  First char = 'x'  First char = 'x'
# Line 3976  No need char Line 3859  No need char
3859   3: xxab   3: xxab
3860      *** Failers      *** Failers
3861  No match  No match
3862      xyab      xyab
3863  No match  No match
3864    
3865  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3866  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3867    
3868  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3869  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3870    
3871  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3872  Capturing subpattern count = 1  Capturing subpattern count = 1
3873  Options: anchored  Options: anchored
3874  No first char  No first char
# Line 3996  No need char Line 3879  No need char
3879      a(b)c      a(b)c
3880   0: a(b)c   0: a(b)c
3881   1: c   1: c
3882      a(b(c))d      a(b(c))d
3883   0: a(b(c))d   0: a(b(c))d
3884   1: d   1: d
3885      *** Failers)      *** Failers)
3886  No match  No match
3887      a(b(c)d      a(b(c)d
3888  No match  No match
3889    
3890  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3891  Capturing subpattern count = 1  Capturing subpattern count = 1
3892  Options: anchored  Options: anchored
3893  No first char  No first char
# Line 4019  Need char = '<' Line 3902  Need char = '<'
3902   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3903   1: (1(2)3)   1: (1(2)3)
3904    
3905  /(a(?1)b)/D  /(a(?1)b)/DZ
3906  ------------------------------------------------------------------  ------------------------------------------------------------------
3907    0  22 Bra 0          Bra
3908    3  16 Bra 1          CBra 1
3909    6     a          a
3910    8   6 Once          Once
3911   11   3 Recurse          Recurse
3912   14   6 Ket          Ket
3913   17     b          b
3914   19  16 Ket          Ket
3915   22  22 Ket          Ket
3916   25     End          End
3917  ------------------------------------------------------------------  ------------------------------------------------------------------
3918  Capturing subpattern count = 1  Capturing subpattern count = 1
3919  No options  No options
3920  First char = 'a'  First char = 'a'
3921  Need char = 'b'  Need char = 'b'
3922    
3923  /(a(?1)+b)/D  /(a(?1)+b)/DZ
3924  ------------------------------------------------------------------  ------------------------------------------------------------------
3925    0  22 Bra 0          Bra
3926    3  16 Bra 1          CBra 1
3927    6     a          a
3928    8   6 Once          Once
3929   11   3 Recurse          Recurse
3930   14   6 KetRmax          KetRmax
3931   17     b          b
3932   19  16 Ket          Ket
3933   22  22 Ket          Ket
3934   25     End          End
3935  ------------------------------------------------------------------  ------------------------------------------------------------------
3936  Capturing subpattern count = 1  Capturing subpattern count = 1
3937  No options  No options
3938  First char = 'a'  First char = 'a'
3939  Need char = 'b'  Need char = 'b'
3940    
3941  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii
3942  Capturing subpattern count = 4  Capturing subpattern count = 4
3943  Max back reference = 4  Max back reference = 4
 Partial matching not supported  
3944  Options: anchored caseless  Options: anchored caseless
3945  No first char  No first char
3946  No need char  No need char
# Line 4078  No need char Line 3960  No need char
3960   2: <unset>   2: <unset>
3961   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
3962   4: A   4: A
3963      Able was I ere I saw Elba.      Able was I ere I saw Elba.
3964   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
3965   1: <unset>   1: <unset>
3966   2: <unset>   2: <unset>
# Line 4086  No need char Line 3968  No need char
3968   4: A   4: A
3969      *** Failers      *** Failers
3970  No match  No match
3971      The quick brown fox      The quick brown fox
3972  No match  No match
3973    
3974  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3975  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3976  Options: anchored  Options: anchored
3977  No first char  No first char
3978  No need char  No need char
# Line 4109  No need char Line 3990  No need char
3990  No match  No match
3991      ((2+2)*-3)-7)      ((2+2)*-3)-7)
3992  No match  No match
3993    
3994  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
3995  Capturing subpattern count = 2  Capturing subpattern count = 2
3996  Options: anchored  Options: anchored
3997  No first char  No first char
# Line 4119  No need char Line 4000  No need char
4000   0: xyz   0: xyz
4001   1: xyz   1: xyz
4002   2: y   2: y
4003      xxyzxyzz      xxyzxyzz
4004   0: xxyzxyzz   0: xxyzxyzz
4005   1: xxyzxyzz   1: xxyzxyzz
4006   2: xyzxyz   2: xyzxyz
# Line 4127  No need char Line 4008  No need char
4008  No match  No match
4009      xxyzz      xxyzz
4010  No match  No match
4011      xxyzxyzxyzz      xxyzxyzxyzz
4012  No match  No match
4013    
4014  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4015  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4016  Options: extended  Options: extended
4017  First char = '<'  First char = '<'
4018  Need char = '>'  Need char = '>'
# Line 4152  Need char = '>' Line 4032  Need char = '>'
4032   0: <def>   0: <def>
4033   1: <def>   1: <def>
4034   2: <def>   2: <def>
4035      <abc<>def>      <abc<>def>
4036   0: <abc<>def>   0: <abc<>def>
4037   1: <abc<>def>   1: <abc<>def>
4038   2: <abc<>def>   2: <abc<>def>
4039      <abc<>      <abc<>
4040   0: <>   0: <>
4041   1: <>   1: <>
4042   2: <>   2: <>
# Line 4165  No match Line 4045  No match
4045      <abc      <abc
4046  No match  No match
4047    
4048  /(?1)/  /(?1)/I
4049  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4050    
4051  /((?2)(abc)/  /((?2)(abc)/I
4052  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4053    
4054  /^(abc)def(?1)/  /^(abc)def(?1)/I
4055  Capturing subpattern count = 1  Capturing subpattern count = 1
4056  Options: anchored  Options: anchored
4057  No first char  No first char
# Line 4180  No need char Line 4060  No need char
4060   0: abcdefabc   0: abcdefabc
4061   1: abc   1: abc
4062    
4063  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4064  Capturing subpattern count = 1  Capturing subpattern count = 1
4065  Options: anchored  Options: anchored
4066  No first char  No first char
# Line 4191  No need char Line 4071  No need char
4071      a=b      a=b
4072   0: a=b   0: a=b
4073   1: a   1: a
4074      a=bc      a=bc
4075   0: a=bc   0: a=bc
4076   1: a   1: a
4077    
4078  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4079  Capturing subpattern count = 2  Capturing subpattern count = 2
4080  Options: anchored  Options: anchored
4081  No first char  No first char
# Line 4208  No need char Line 4088  No need char
4088   0: a=b   0: a=b
4089   1: a   1: a
4090   2: b   2: b
4091      a=bc      a=bc
4092   0: a=bc   0: a=bc
4093   1: a   1: a
4094   2: c   2: c
4095    
4096  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4097  ------------------------------------------------------------------  ------------------------------------------------------------------
4098    0  28 Bra 0          Bra
4099    3     a          a
4100    5   5 Bra 1          CBra 1
4101    8     b          b
4102   10   5 Alt          Alt
4103   13     c          c
4104   15  10 Ket          Ket
4105   18     d          d
4106   20   5 Bra 2          CBra 2
4107   23     e          e
4108   25   5 Ket          Ket
4109   28  28 Ket          Ket
4110   31     End          End
4111  ------------------------------------------------------------------  ------------------------------------------------------------------
4112  Capturing subpattern count = 2  Capturing subpattern count = 2
4113  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4240  Need char = 'e' Line 4120  Need char = 'e'
4120   0: abde   0: abde
4121   1: b   1: b
4122   2: e   2: e
4123      acde      acde
4124   0: acde   0: acde
4125   1: c   1: c
4126   2: e   2: e
4127    
4128  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4129  ------------------------------------------------------------------  ------------------------------------------------------------------
4130    0  35 Bra 0          Bra
4131    3  21 Bra 0          Bra
4132    6     a          a
4133    8  13 Bra 1          CBra 1
4134   11     c          c
4135   13   5 Bra 2          CBra 2
4136   16     d          d
4137   18   5 Ket          Ket
4138   21  13 Ket          Ket
4139   24  21 Ket          Ket
4140   27   5 Bra 3          CBra 3
4141   30     a          a
4142   32   5 Ket          Ket
4143   35  35 Ket          Ket
4144   38     End          End
4145  ------------------------------------------------------------------  ------------------------------------------------------------------
4146  Capturing subpattern count = 3  Capturing subpattern count = 3
4147  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4272  No options Line 4152  No options
4152  First char = 'a'  First char = 'a'
4153  Need char = 'a'  Need char = 'a'
4154    
4155  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4156  ------------------------------------------------------------------  ------------------------------------------------------------------
4157    0  34 Bra 0          Bra
4158    3   5 Bra 1          CBra 1
4159    6     a          a
4160    8   5 Ket          Ket
4161   11     Any          Any
4162   12     Any          Any
4163   13     Any          Any
4164   14     \1          \1
4165   17     bbb          bbb
4166   23   6 Once          Once
4167   26   3 Recurse          Recurse
4168   29   6 Ket          Ket
4169   32     d          d
4170   34  34 Ket          Ket
4171   37     End          End
4172  ------------------------------------------------------------------  ------------------------------------------------------------------
4173  Capturing subpattern count = 1  Capturing subpattern count = 1
4174  Max back reference = 1  Max back reference = 1
# Line 4298  No options Line 4178  No options
4178  First char = 'a'  First char = 'a'
4179  Need char = 'd'  Need char = 'd'
4180    
4181  /^\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  /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
4182  Capturing subpattern count = 4  Capturing subpattern count = 4
4183  Max back reference = 4  Max back reference = 4
4184  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4306  Named capturing subpatterns: Line 4186  Named capturing subpatterns:
4186    one     1    one     1
4187    three   3    three   3
4188    two     2    two     2
 Partial matching not supported  
4189  Options: anchored caseless  Options: anchored caseless
4190  No first char  No first char
4191  No need char  No need char
# Line 4326  No need char Line 4205  No need char
4205   2: <unset>   2: <unset>
4206   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4207   4: A   4: A
4208      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4209   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4210   1: <unset>   1: <unset>
4211   2: <unset>   2: <unset>
# Line 4334  No need char Line 4213  No need char
4213   4: A   4: A
4214      *** Failers      *** Failers
4215  No match  No match
4216      The quick brown fox      The quick brown fox
4217  No match  No match
4218    
4219  /((?(R)a|b))\1(?1)?/  /((?(R)a|b))\1(?1)?/I
4220  Capturing subpattern count = 1  Capturing subpattern count = 1
4221  Max back reference = 1  Max back reference = 1
4222  No options  No options
# Line 4346  No need char Line 4225  No need char
4225    bb    bb
4226   0: bb   0: bb
4227   1: b   1: b
4228    bbaa    bbaa
4229   0: bba   0: bba
4230   1: b   1: b
4231    
4232  /(.*)a/sI  /(.*)a/Is
4233  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4234  Options: anchored dotall  Options: anchored dotall
4235  No first char  No first char
4236  Need char = 'a'  Need char = 'a'
4237    
4238  /(.*)a\1/sI  /(.*)a\1/Is
4239  Capturing subpattern count = 1  Capturing subpattern count = 1
4240  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4241  Options: dotall  Options: dotall
4242  No first char  No first char
4243  Need char = 'a'  Need char = 'a'
4244    
4245  /(.*)a(b)\2/sI  /(.*)a(b)\2/Is
4246  Capturing subpattern count = 2  Capturing subpattern count = 2
4247  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4248  Options: anchored dotall  Options: anchored dotall
4249  No first char  No first char
4250  Need char = 'b'  Need char = 'b'
4251    
4252  /((.*)a|(.*)b)z/sI  /((.*)a|(.*)b)z/Is
4253  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4254  Options: anchored dotall  Options: anchored dotall
4255  No first char  No first char
4256  Need char = 'z'  Need char = 'z'
4257    
4258  /((.*)a|(.*)b)z\1/sI  /((.*)a|(.*)b)z\1/Is
4259  Capturing subpattern count = 3  Capturing subpattern count = 3
4260  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4261  Options: dotall  Options: dotall
4262  No first char  No first char
4263  Need char = 'z'  Need char = 'z'
4264    
4265  /((.*)a|(.*)b)z\2/sI  /((.*)a|(.*)b)z\2/Is
4266  Capturing subpattern count = 3  Capturing subpattern count = 3
4267  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4268  Options: dotall  Options: dotall
4269  No first char  No first char
4270  Need char = 'z'  Need char = 'z'
4271    
4272  /((.*)a|(.*)b)z\3/sI  /((.*)a|(.*)b)z\3/Is
4273  Capturing subpattern count = 3  Capturing subpattern count = 3
4274  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4275  Options: dotall  Options: dotall
4276  No first char  No first char
4277  Need char = 'z'  Need char = 'z'
4278    
4279  /((.*)a|^(.*)b)z\3/sI  /((.*)a|^(.*)b)z\3/Is
4280  Capturing subpattern count = 3  Capturing subpattern count = 3
4281  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4282  Options: anchored dotall  Options: anchored dotall
4283  No first char  No first char
4284  Need char = 'z'  Need char = 'z'
4285    
4286  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4287  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4288  Options: anchored dotall  Options: anchored dotall
4289  No first char  No first char
4290  No need char  No need char
4291    
4292  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4293  Capturing subpattern count = 31  Capturing subpattern count = 31
4294  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4295  Options: dotall  Options: dotall
4296  No first char  No first char
4297  No need char  No need char
4298    
4299  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4300  Capturing subpattern count = 32  Capturing subpattern count = 32
4301  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4302  Options: dotall  Options: dotall
4303  No first char  No first char
4304  No need char  No need char
4305    
4306  /(a)(bc)/ND  /(a)(bc)/INDZ
4307  ------------------------------------------------------------------  ------------------------------------------------------------------
4308    0  21 Bra 0          Bra
4309    3   5 Bra 0          Bra
4310    6     a          a
4311    8   5 Ket          Ket
4312   11   7 Bra 0          Bra
4313   14     bc          bc
4314   18   7 Ket          Ket
4315   21  21 Ket          Ket
4316   24     End          End
4317  ------------------------------------------------------------------  ------------------------------------------------------------------
4318  Capturing subpattern count = 0  Capturing subpattern count = 0
4319  Options: no_auto_capture  Options: no_auto_capture
# Line 4454  Need char = 'c' Line 4322  Need char = 'c'
4322    abc    abc
4323   0: abc   0: abc
4324    
4325  /(?P<one>a)(bc)/ND  /(?P<one>a)(bc)/INDZ
4326  ------------------------------------------------------------------  ------------------------------------------------------------------
4327    0  21 Bra 0          Bra
4328    3   5 Bra 1          CBra 1
4329    6     a          a
4330    8   5 Ket          Ket
4331   11   7 Bra 0          Bra
4332   14     bc          bc
4333   18   7 Ket          Ket
4334   21  21 Ket          Ket
4335   24     End          End
4336  ------------------------------------------------------------------  ------------------------------------------------------------------
4337  Capturing subpattern count = 1  Capturing subpattern count = 1
4338  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4476  Need char = 'c' Line 4344  Need char = 'c'
4344   0: abc   0: abc
4345   1: a   1: a
4346    
4347  /(a)(?P<named>bc)/ND  /(a)(?P<named>bc)/INDZ
4348  ------------------------------------------------------------------  ------------------------------------------------------------------
4349    0  21 Bra 0          Bra
4350    3   5 Bra 0          Bra
4351    6     a          a
4352    8   5 Ket          Ket
4353   11   7 Bra 1          CBra 1
4354   14     bc          bc
4355   18   7 Ket          Ket
4356   21  21 Ket          Ket
4357   24     End          End
4358  ------------------------------------------------------------------  ------------------------------------------------------------------
4359  Capturing subpattern count = 1  Capturing subpattern count = 1
4360  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4495  Options: no_auto_capture Line 4363  Options: no_auto_capture
4363  First char = 'a'  First char = 'a'
4364  Need char = 'c'  Need char = 'c'
4365    
4366  /(a+)*zz/  /(a+)*zz/I
4367  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4368  No options  No options
4369  No first char  No first char
4370  Need char = 'z'  Need char = 'z'
4371    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4372  Minimum match() limit = 8  Minimum match() limit = 8
4373  Minimum match() recursion limit = 7  Minimum match() recursion limit = 6
4374   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4375   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4376    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4377  Minimum match() limit = 32768  Minimum match() limit = 32768
4378  Minimum match() recursion limit = 43  Minimum match() recursion limit = 42
4379  No match  No match
4380    
4381  /(aaa(?C1)bbb|ab)/  /(aaa(?C1)bbb|ab)/I
4382  Capturing subpattern count = 1  Capturing subpattern count = 1
4383  No options  No options
4384  First char = 'a'  First char = 'a'
# Line 4538  Callout data = 1 Line 4405  Callout data = 1
4405  Callout data = -1  Callout data = -1
4406  No match  No match
4407    
4408  /ab(?P<one>cd)ef(?P<two>gh)/  /ab(?P<one>cd)ef(?P<two>gh)/I
4409  Capturing subpattern count = 2  Capturing subpattern count = 2
4410  Named capturing subpatterns:  Named capturing subpatterns:
4411    one   1    one   1
# Line 4555  Need char = 'h' Line 4422  Need char = 'h'
4422   1: cd   1: cd
4423   2: gh   2: gh
4424   1C cd (2)   1C cd (2)
4425   2G gh (2)    G gh (2) two
4426      abcdefgh\Cone\Ctwo      abcdefgh\Cone\Ctwo
4427   0: abcdefgh   0: abcdefgh
4428   1: cd   1: cd
4429   2: gh   2: gh
4430   1C cd (2)    C cd (2) one
4431   2C gh (2)    C gh (2) two
4432      abcdefgh\Cthree      abcdefgh\Cthree
4433  no parentheses with name "three"  no parentheses with name "three"
4434   0: abcdefgh   0: abcdefgh
4435   1: cd   1: cd
4436   2: gh   2: gh
4437    copy substring three failed -7
4438    
4439  /(?P<Tes>)(?P<Test>)/D  /(?P<Tes>)(?P<Test>)/DZ
4440  ------------------------------------------------------------------  ------------------------------------------------------------------
4441    0  15 Bra 0          Bra
4442    3   3 Bra 1          CBra 1
4443    6   3 Ket          Ket
4444    9   3 Bra 2          CBra 2
4445   12   3 Ket          Ket
4446   15  15 Ket          Ket
4447   18     End          End
4448  ------------------------------------------------------------------  ------------------------------------------------------------------
4449  Capturing subpattern count = 2  Capturing subpattern count = 2
4450  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4586  No options Line 4454  No options
4454  No first char  No first char
4455  No need char  No need char
4456    
4457  /(?P<Test>)(?P<Tes>)/D  /(?P<Test>)(?P<Tes>)/DZ
4458  ------------------------------------------------------------------  ------------------------------------------------------------------
4459    0  15 Bra 0          Bra
4460    3   3 Bra 1          CBra 1
4461    6   3 Ket          Ket
4462    9   3 Bra 2          CBra 2
4463   12   3 Ket          Ket
4464   15  15 Ket          Ket
4465   18     End          End
4466  ------------------------------------------------------------------  ------------------------------------------------------------------
4467  Capturing subpattern count = 2  Capturing subpattern count = 2
4468  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4604  No options Line 4472  No options
4472  No first char  No first char
4473  No need char  No need char
4474    
4475  /(?P<Z>zz)(?P<A>aa)/  /(?P<Z>zz)(?P<A>aa)/I
4476  Capturing subpattern count = 2  Capturing subpattern count = 2
4477  Named capturing subpatterns:  Named capturing subpatterns:
4478    A   2    A   2
# Line 4616  Need char = 'a' Line 4484  Need char = 'a'
4484   0: zzaa   0: zzaa
4485   1: zz   1: zz
4486   2: aa   2: aa
4487   1C zz (2)    C zz (2) Z
4488      zzaa\CA      zzaa\CA
4489   0: zzaa   0: zzaa
4490   1: zz   1: zz
4491   2: aa   2: aa
4492   2C aa (2)    C aa (2) A
4493    
4494  /(?P<x>eks)(?P<x>eccs)/  /(?P<x>eks)(?P<x>eccs)/I
4495  Failed: two named groups have the same name at offset 16  Failed: two named subpatterns have the same name at offset 15
4496    
4497  /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/  /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4498  Failed: two named groups have the same name at offset 31  Failed: two named subpatterns have the same name at offset 30
4499    
4500  "\[((?P<elem>\d+)(,(?P>elem))*)\]"  "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
4501  Capturing subpattern count = 3  Capturing subpattern count = 3
4502  Named capturing subpatterns:  Named capturing subpatterns:
4503    elem   2    elem   2
 Partial matching not supported  
4504  No options  No options
4505  First char = '['  First char = '['
4506  Need char = ']'  Need char = ']'
# Line 4644  Need char = ']' Line 4511  Need char = ']'
4511   3: ,4234   3: ,4234
4512      *** Failers      *** Failers
4513  No match  No match
4514      []      []
4515  No match  No match
4516    
4517  "\[((?P<elem>\d+)(,(?P>elem))*)?\]"  "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
4518  Capturing subpattern count = 3  Capturing subpattern count = 3
4519  Named capturing subpatterns:  Named capturing subpatterns:
4520    elem   2    elem   2
 Partial matching not supported  
4521  No options  No options
4522  First char = '['  First char = '['
4523  Need char = ']'  Need char = ']'
# Line 4660  Need char = ']' Line 4526  Need char = ']'
4526   1: 10,20,30,5,5,4,4,2,43,23,4234   1: 10,20,30,5,5,4,4,2,43,23,4234
4527   2: 10   2: 10
4528   3: ,4234   3: ,4234
4529      []      []
4530   0: []   0: []
4531    
4532  /(a(b(?2)c))?/D  /(a(b(?2)c))?/DZ
4533  ------------------------------------------------------------------  ------------------------------------------------------------------
4534    0  31 Bra 0          Bra
4535    3     Brazero          Brazero
4536    4  24 Bra 1          CBra 1
4537    7     a          a
4538    9  16 Bra 2          CBra 2
4539   12     b          b
4540   14   6 Once          Once
4541   17   9 Recurse          Recurse
4542   20   6 Ket          Ket
4543   23     c          c
4544   25  16 Ket          Ket
4545   28  24 Ket          Ket
4546   31  31 Ket          Ket
4547   34     End          End
4548  ------------------------------------------------------------------  ------------------------------------------------------------------
4549  Capturing subpattern count = 2  Capturing subpattern count = 2
4550  No options  No options
4551  No first char  No first char
4552  No need char  No need char
4553    
4554  /(a(b(?2)c))*/D  /(a(b(?2)c))*/DZ
4555  ------------------------------------------------------------------  ------------------------------------------------------------------
4556    0  31 Bra 0          Bra
4557    3     Brazero          Brazero
4558    4  24 Bra 1          CBra 1
4559    7     a          a
4560    9  16 Bra 2          CBra 2
4561   12     b          b
4562   14   6 Once          Once