/[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 91 by nigel, Sat Feb 24 21:41:34 2007 UTC revision 432 by ph10, Wed Sep 2 16:02:56 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 newline  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 newline  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 newline  First char at start or follows newline
323  No need char  No need char
# 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
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 newline  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 newline  First char at start or follows newline
# Line 567  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: missing ) at offset 6
555    
556    /(?(1a))/
557  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
558    
559  /(?(?i))/  /(?(?i))/
# Line 576  Failed: assertion expected after (?( at Line 563  Failed: assertion expected after (?( at
563  Failed: reference to non-existent subpattern at offset 7  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
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
# Line 611  First char = 'b' (caseless) Line 596  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
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 628  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 644  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 newline  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 677  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 newline  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 newline  First char at start or follows newline
# Line 741  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 754  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 772  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
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 newline  First char at start or follows newline
769  No need char  No need char
# Line 795  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
781  First char = 'Z'  First char = 'Z'
# Line 810  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 868  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 911  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 945  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 or name after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
944    
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
   
945  /[a[:xyz:/  /[a[:xyz:/
946  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
947    
# Line 983  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 1002  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 1020  No need char Line 996  No need char
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 1036  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 1052  No need char Line 1026  No need char
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 1071  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 1084  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 newline  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 newline  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 newline  
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 1227  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 1243  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 1252  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 1267  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 1278  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 1287  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 1295  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 newline  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 1334  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 1347  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 1356  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 newline  First char at start or follows newline
1331  Need char = 10  Need char = 10
# Line 1367  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 1647  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 1663  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 1692  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 1707  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 1719  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 1751  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 1761  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 1781  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 1791  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 1802  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 1819  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 1836  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 1856  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 1868  Need char = ')' Line 1807  Need char = ')'
1807   2: 123   2: 123
1808   3: <unset>   3: <unset>
1809    
1810  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1811  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1812  Options: extended  Options: extended
1813  First char = '('  First char = '('
1814  Need char = ')'  Need char = ')'
# Line 1885  Need char = ')' Line 1823  Need char = ')'
1823   2: ij   2: ij
1824   3: (cd(ef)gh)   3: (cd(ef)gh)
1825    
1826  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1827  ------------------------------------------------------------------  ------------------------------------------------------------------
1828    0  37 Bra 0          Bra
1829    3     ^          ^
1830    4     [0-9A-Za-z]          [0-9A-Za-z]
1831   37  37 Ket          Ket
1832   40     End          End
1833  ------------------------------------------------------------------  ------------------------------------------------------------------
1834  Capturing subpattern count = 0  Capturing subpattern count = 0
1835  Options: anchored  Options: anchored
1836  No first char  No first char
1837  No need char  No need char
1838    
1839  /^[[:^alnum:]]/D  /^[[:^alnum:]]/DZ
1840  ------------------------------------------------------------------  ------------------------------------------------------------------
1841    0  37 Bra 0          Bra
1842    3     ^          ^
1843    4     [\x00-/:-@[-`{-\xff]          [\x00-/:-@[-`{-\xff] (neg)
1844   37  37 Ket          Ket
1845   40     End          End
1846  ------------------------------------------------------------------  ------------------------------------------------------------------
1847  Capturing subpattern count = 0  Capturing subpattern count = 0
1848  Options: anchored  Options: anchored
1849  No first char  No first char
1850  No need char  No need char
1851    
1852  /^[[:alpha:]]/D  /^[[:alpha:]]/DZ
1853  ------------------------------------------------------------------  ------------------------------------------------------------------
1854    0  37 Bra 0          Bra
1855    3     ^          ^
1856    4     [A-Za-z]          [A-Za-z]
1857   37  37 Ket          Ket
1858   40     End          End
1859  ------------------------------------------------------------------  ------------------------------------------------------------------
1860  Capturing subpattern count = 0  Capturing subpattern count = 0
1861  Options: anchored  Options: anchored
1862  No first char  No first char
1863  No need char  No need char
1864    
1865  /^[[:^alpha:]]/D  /^[[:^alpha:]]/DZ
1866  ------------------------------------------------------------------  ------------------------------------------------------------------
1867    0  37 Bra 0          Bra
1868    3     ^          ^
1869    4     [\x00-@[-`{-\xff]          [\x00-@[-`{-\xff] (neg)
1870   37  37 Ket          Ket
1871   40     End          End
1872  ------------------------------------------------------------------  ------------------------------------------------------------------
1873  Capturing subpattern count = 0  Capturing subpattern count = 0
1874  Options: anchored  Options: anchored
1875  No first char  No first char
1876  No need char  No need char
1877    
1878  /[_[:alpha:]]/IS  /[_[:alpha:]]/IS
1879  Capturing subpattern count = 0  Capturing subpattern count = 0
1880  No options  No options
# Line 1945  No need char Line 1883  No need char
1883  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
1884    _ 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
1885    
1886  /^[[:ascii:]]/D  /^[[:ascii:]]/DZ
1887  ------------------------------------------------------------------  ------------------------------------------------------------------
1888    0  37 Bra 0          Bra
1889    3     ^          ^
1890    4     [\x00-\x7f]          [\x00-\x7f]
1891   37  37 Ket          Ket
1892   40     End          End
1893  ------------------------------------------------------------------  ------------------------------------------------------------------
1894  Capturing subpattern count = 0  Capturing subpattern count = 0
1895  Options: anchored  Options: anchored
1896  No first char  No first char
1897  No need char  No need char
1898    
1899  /^[[:^ascii:]]/D  /^[[:^ascii:]]/DZ
1900  ------------------------------------------------------------------  ------------------------------------------------------------------
1901    0  37 Bra 0          Bra
1902    3     ^          ^
1903    4     [\x80-\xff]          [\x80-\xff] (neg)
1904   37  37 Ket          Ket
1905   40     End          End
1906  ------------------------------------------------------------------  ------------------------------------------------------------------
1907  Capturing subpattern count = 0  Capturing subpattern count = 0
1908  Options: anchored  Options: anchored
1909  No first char  No first char
1910  No need char  No need char
1911    
1912  /^[[:blank:]]/D  /^[[:blank:]]/DZ
1913  ------------------------------------------------------------------  ------------------------------------------------------------------
1914    0  37 Bra 0          Bra
1915    3     ^          ^
1916    4     [\x09 ]          [\x09 ]
1917   37  37 Ket          Ket
1918   40     End          End
1919  ------------------------------------------------------------------  ------------------------------------------------------------------
1920  Capturing subpattern count = 0  Capturing subpattern count = 0
1921  Options: anchored  Options: anchored
1922  No first char  No first char
1923  No need char  No need char
1924    
1925  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
1926  ------------------------------------------------------------------  ------------------------------------------------------------------
1927    0  37 Bra 0          Bra
1928    3     ^          ^
1929    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1930   37  37 Ket          Ket
1931   40     End          End
1932  ------------------------------------------------------------------  ------------------------------------------------------------------
1933  Capturing subpattern count = 0  Capturing subpattern count = 0
1934  Options: anchored  Options: anchored
# Line 1999  No need char Line 1937  No need char
1937    
1938  /[\n\x0b\x0c\x0d[:blank:]]/IS  /[\n\x0b\x0c\x0d[:blank:]]/IS
1939  Capturing subpattern count = 0  Capturing subpattern count = 0
1940    Contains explicit CR or LF match
1941  No options  No options
1942  No first char  No first char
1943  No need char  No need char
1944  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1945    
1946  /^[[:cntrl:]]/D  /^[[:cntrl:]]/DZ
1947  ------------------------------------------------------------------  ------------------------------------------------------------------
1948    0  37 Bra 0          Bra
1949    3     ^          ^
1950    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
1951   37  37 Ket          Ket
1952   40     End          End
1953  ------------------------------------------------------------------  ------------------------------------------------------------------
1954  Capturing subpattern count = 0  Capturing subpattern count = 0
1955  Options: anchored  Options: anchored
1956  No first char  No first char
1957  No need char  No need char
1958    
1959  /^[[:digit:]]/D  /^[[:digit:]]/DZ
1960  ------------------------------------------------------------------  ------------------------------------------------------------------
1961    0  37 Bra 0          Bra
1962    3     ^          ^
1963    4     [0-9]          [0-9]
1964   37  37 Ket          Ket
1965   40     End          End
1966  ------------------------------------------------------------------  ------------------------------------------------------------------
1967  Capturing subpattern count = 0  Capturing subpattern count = 0
1968  Options: anchored  Options: anchored
1969  No first char  No first char
1970  No need char  No need char
1971    
1972  /^[[:graph:]]/D  /^[[:graph:]]/DZ
1973  ------------------------------------------------------------------  ------------------------------------------------------------------
1974    0  37 Bra 0          Bra
1975    3     ^          ^
1976    4     [!-~]          [!-~]
1977   37  37 Ket          Ket
1978   40     End          End
1979  ------------------------------------------------------------------  ------------------------------------------------------------------
1980  Capturing subpattern count = 0  Capturing subpattern count = 0
1981  Options: anchored  Options: anchored
1982  No first char  No first char
1983  No need char  No need char
1984    
1985  /^[[:lower:]]/D  /^[[:lower:]]/DZ
1986  ------------------------------------------------------------------  ------------------------------------------------------------------
1987    0  37 Bra 0          Bra
1988    3     ^          ^
1989    4     [a-z]          [a-z]
1990   37  37 Ket          Ket
1991   40     End          End
1992  ------------------------------------------------------------------  ------------------------------------------------------------------
1993  Capturing subpattern count = 0  Capturing subpattern count = 0
1994  Options: anchored  Options: anchored
1995  No first char  No first char
1996  No need char  No need char
1997    
1998  /^[[:print:]]/D  /^[[:print:]]/DZ
1999  ------------------------------------------------------------------  ------------------------------------------------------------------
2000    0  37 Bra 0          Bra
2001    3     ^          ^
2002    4     [ -~]          [ -~]
2003   37  37 Ket          Ket
2004   40     End          End
2005  ------------------------------------------------------------------  ------------------------------------------------------------------
2006  Capturing subpattern count = 0  Capturing subpattern count = 0
2007  Options: anchored  Options: anchored
2008  No first char  No first char
2009  No need char  No need char
2010    
2011  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2012  ------------------------------------------------------------------  ------------------------------------------------------------------
2013    0  37 Bra 0          Bra
2014    3     ^          ^
2015    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2016   37  37 Ket          Ket
2017   40     End          End
2018  ------------------------------------------------------------------  ------------------------------------------------------------------
2019  Capturing subpattern count = 0  Capturing subpattern count = 0
2020  Options: anchored  Options: anchored
2021  No first char  No first char
2022  No need char  No need char
2023    
2024  /^[[:space:]]/D  /^[[:space:]]/DZ
2025  ------------------------------------------------------------------  ------------------------------------------------------------------
2026    0  37 Bra 0          Bra
2027    3     ^          ^
2028    4     [\x09-\x0d ]          [\x09-\x0d ]
2029   37  37 Ket          Ket
2030   40     End          End
2031  ------------------------------------------------------------------  ------------------------------------------------------------------
2032  Capturing subpattern count = 0  Capturing subpattern count = 0
2033  Options: anchored  Options: anchored
2034  No first char  No first char
2035  No need char  No need char
2036    
2037  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2038  ------------------------------------------------------------------  ------------------------------------------------------------------
2039    0  37 Bra 0          Bra
2040    3     ^          ^
2041    4     [A-Z]          [A-Z]
2042   37  37 Ket          Ket
2043   40     End          End
2044  ------------------------------------------------------------------  ------------------------------------------------------------------
2045  Capturing subpattern count = 0  Capturing subpattern count = 0
2046  Options: anchored  Options: anchored
2047  No first char  No first char
2048  No need char  No need char
2049    
2050  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2051  ------------------------------------------------------------------  ------------------------------------------------------------------
2052    0  37 Bra 0          Bra
2053    3     ^          ^
2054    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2055   37  37 Ket          Ket
2056   40     End          End
2057  ------------------------------------------------------------------  ------------------------------------------------------------------
2058  Capturing subpattern count = 0  Capturing subpattern count = 0
2059  Options: anchored  Options: anchored
2060  No first char  No first char
2061  No need char  No need char
2062    
2063  /^[[:word:]]/D  /^[[:word:]]/DZ
2064  ------------------------------------------------------------------  ------------------------------------------------------------------
2065    0  37 Bra 0          Bra
2066    3     ^          ^
2067    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2068   37  37 Ket          Ket
2069   40     End          End
2070  ------------------------------------------------------------------  ------------------------------------------------------------------
2071  Capturing subpattern count = 0  Capturing subpattern count = 0
2072  Options: anchored  Options: anchored
2073  No first char  No first char
2074  No need char  No need char
2075    
2076  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2077  ------------------------------------------------------------------  ------------------------------------------------------------------
2078    0  37 Bra 0          Bra
2079    3     ^          ^
2080    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2081   37  37 Ket          Ket
2082   40     End          End
2083  ------------------------------------------------------------------  ------------------------------------------------------------------
2084  Capturing subpattern count = 0  Capturing subpattern count = 0
2085  Options: anchored  Options: anchored
2086  No first char  No first char
2087  No need char  No need char
2088    
2089  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2090  ------------------------------------------------------------------  ------------------------------------------------------------------
2091    0  37 Bra 0          Bra
2092    3     ^          ^
2093    4     [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
2094   37  37 Ket          Ket
2095   40     End          End
2096  ------------------------------------------------------------------  ------------------------------------------------------------------
2097  Capturing subpattern count = 0  Capturing subpattern count = 0
2098  Options: anchored  Options: anchored
2099  No first char  No first char
2100  No need char  No need char
2101    
2102  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2103  ------------------------------------------------------------------  ------------------------------------------------------------------
2104    0  37 Bra 0          Bra
2105    3     ^          ^
2106    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2107   37  37 Ket          Ket
2108   40     End          End
2109  ------------------------------------------------------------------  ------------------------------------------------------------------
2110  Capturing subpattern count = 0  Capturing subpattern count = 0
2111  Options: anchored  Options: anchored
2112  No first char  No first char
2113  No need char  No need char
2114    
2115  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2116  ------------------------------------------------------------------  ------------------------------------------------------------------
2117    0  36 Bra 0          Bra
2118    3     [%01A-Za-z]          [%01A-Za-z]
2119   36  36 Ket          Ket
2120   39     End          End
2121  ------------------------------------------------------------------  ------------------------------------------------------------------
2122  Capturing subpattern count = 0  Capturing subpattern count = 0
2123  No options  No options
2124  No first char  No first char
2125  No need char  No need char
2126    
2127  /[[.ch.]]/  /[[.ch.]]/I
2128  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2129    
2130  /[[=ch=]]/  /[[=ch=]]/I
2131  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2132    
2133  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2134  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2135    
2136  /[[:upper:]]/i  /[[:upper:]]/Ii
2137  Capturing subpattern count = 0  Capturing subpattern count = 0
2138  Options: caseless  Options: caseless
2139  No first char  No first char
2140  No need char  No need char
2141      A      A
2142   0: A   0: A
2143      a      a
2144   0: a   0: a
2145    
2146  /[[:lower:]]/i  /[[:lower:]]/Ii
2147  Capturing subpattern count = 0  Capturing subpattern count = 0
2148  Options: caseless  Options: caseless
2149  No first char  No first char
2150  No need char  No need char
2151      A      A
2152   0: A   0: A
2153      a      a
2154   0: a   0: a
2155    
2156  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2157  Capturing subpattern count = 1  Capturing subpattern count = 1
2158  Options: caseless  Options: caseless
2159  No first char  No first char
# Line 2230  No need char Line 2169  No need char
2169   1: a   1: a
2170      Ab      Ab
2171  No match  No match
2172      AB      AB
2173  No match  No match
2174    
2175  /[\200-\110]/  /[\200-\110]/I
2176  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2177    
2178  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2179  Failed: invalid condition (?(0) at offset 6  Failed: invalid condition (?(0) at offset 6
2180    
2181  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2182  Capturing subpattern count = 0  Capturing subpattern count = 0
2183  No options  No options
2184  First char = 'T'  First char = 'T'
2185  Need char = 'd'  Need char = 'd'
2186    
2187  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2188  Capturing subpattern count = 271  Capturing subpattern count = 271
2189  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2190  No options  No options
2191  No first char  No first char
2192  No need char  No need char
# Line 2526  No need char Line 2464  No need char
2464  270: ABC  270: ABC
2465  271: ABC  271: ABC
2466    
2467  /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
2468  Capturing subpattern count = 0  Capturing subpattern count = 0
2469  No options  No options
2470  First char = 'T'  First char = 'T'
2471  Need char = 't'  Need char = 't'
2472    
2473  /(main(O)?)+/  /(main(O)?)+/I
2474  Capturing subpattern count = 2  Capturing subpattern count = 2
2475  No options  No options
2476  First char = 'm'  First char = 'm'
# Line 2544  Need char = 'n' Line 2482  Need char = 'n'
2482   0: mainOmain   0: mainOmain
2483   1: main   1: main
2484   2: O   2: O
2485    
2486  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2487  Capturing subpattern count = 1  Capturing subpattern count = 1
2488  No options  No options
2489  First char = 'T'  First char = 'T'
2490  Need char = 's'  Need char = 's'
2491    
2492  /^(a(b)?)+$/  /^(a(b)?)+$/I
2493  Capturing subpattern count = 2  Capturing subpattern count = 2
2494  Options: anchored  Options: anchored
2495  No first char  No first char
# Line 2560  No need char Line 2498  No need char
2498   0: aba   0: aba
2499   1: a   1: a
2500   2: b   2: b
2501    
2502  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2503  Capturing subpattern count = 2  Capturing subpattern count = 2
2504  Options: anchored  Options: anchored
2505  No first char  No first char
2506  No need char  No need char
2507      aabbaa      aabbaa
2508   0: aabbaa   0: aabbaa
2509   1: aa   1: aa
2510   2: bb   2: bb
2511    
2512  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2513  Capturing subpattern count = 2  Capturing subpattern count = 2
2514  Options: anchored  Options: anchored
2515  No first char  No first char
2516  No need char  No need char
2517      aabbaa      aabbaa
2518   0: aabbaa   0: aabbaa
2519   1: aa   1: aa
2520   2: bb   2: bb
2521    
2522  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2523  Capturing subpattern count = 2  Capturing subpattern count = 2
2524  Options: anchored  Options: anchored
2525  No first char  No first char
2526  No need char  No need char
2527      aabbaa      aabbaa
2528   0: aabbaa   0: aabbaa
2529   1: aa   1: aa
2530   2: bb   2: bb
2531    
2532  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2533  Capturing subpattern count = 1  Capturing subpattern count = 1
2534  Options: anchored  Options: anchored
2535  No first char  No first char
2536  No need char  No need char
2537      aabbaa      aabbaa
2538   0: aabbaa   0: aabbaa
2539   1: bb   1: bb
2540    
2541  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2542  Capturing subpattern count = 3  Capturing subpattern count = 3
2543  Options: anchored  Options: anchored
2544  No first char  No first char
2545  No need char  No need char
2546      aabbaa      aabbaa
2547   0: aabbaa   0: aabbaa
2548   1: aa   1: aa
2549   2: bb   2: bb
2550   3: b   3: b
2551    
2552  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2553  Capturing subpattern count = 2  Capturing subpattern count = 2
2554  Options: anchored  Options: anchored
2555  No first char  No first char
2556  No need char  No need char
2557      aabbaa      aabbaa
2558   0: aabbaa   0: aabbaa
2559   1: bb   1: bb
2560   2: b   2: b
2561    
2562  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2563  Capturing subpattern count = 1  Capturing subpattern count = 1
2564  Options: anchored  Options: anchored
2565  No first char  No first char
2566  No need char  No need char
2567      aabbaa      aabbaa
2568   0: aabbaa   0: aabbaa
2569   1: bb   1: bb
2570    
2571  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2572  Capturing subpattern count = 1  Capturing subpattern count = 1
2573  Options: anchored  Options: anchored
2574  No first char  No first char
2575  No need char  No need char
2576      aabbbaa      aabbbaa
2577   0: aabbbaa   0: aabbbaa
2578   1: bbb   1: bbb
2579    
2580  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2581  Capturing subpattern count = 1  Capturing subpattern count = 1
2582  Options: anchored  Options: anchored
2583  No first char  No first char
2584  No need char  No need char
2585      aabbbaa      aabbbaa
2586   0: aabbbaa   0: aabbbaa
2587   1: bbb   1: bbb
2588    
2589  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2590  Capturing subpattern count = 1  Capturing subpattern count = 1
2591  Options: anchored  Options: anchored
2592  No first char  No first char
2593  No need char  No need char
2594      aabbaa      aabbaa
2595   0: aabbaa   0: aabbaa
2596   1: b   1: b
2597    
2598  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2599  Capturing subpattern count = 1  Capturing subpattern count = 1
2600  Options: anchored  Options: anchored
2601  No first char  No first char
2602  No need char  No need char
2603      aabbbaa      aabbbaa
2604   0: aabbbaa   0: aabbbaa
2605   1: bb   1: bb
2606    
2607  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2608  Capturing subpattern count = 3  Capturing subpattern count = 3
2609  Options: anchored  Options: anchored
2610  No first char  No first char
2611  No need char  No need char
2612      aabbbaa      aabbbaa
2613   0: aabbbaa   0: aabbbaa
2614   1: aa   1: aa
2615   2: bbb   2: bbb
2616   3: bb   3: bb
2617    
2618  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2619  Capturing subpattern count = 3  Capturing subpattern count = 3
2620  Options: anchored  Options: anchored
2621  No first char  No first char
2622  No need char  No need char
2623      aabbbbaa      aabbbbaa
2624   0: aabbbbaa   0: aabbbbaa
2625   1: aa   1: aa
2626   2: bbbb   2: bbbb
2627   3: bb   3: bb
2628    
2629  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2630  Capturing subpattern count = 0  Capturing subpattern count = 0
2631  No options  No options
2632  First char = '-'  First char = '-'
2633  Need char = '-'  Need char = '-'
2634    
2635  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2636  ------------------------------------------------------------------  ------------------------------------------------------------------
2637    0   3 Bra 0          Bra
2638    3   3 Ket          Ket
2639    6     End          End
2640  ------------------------------------------------------------------  ------------------------------------------------------------------
2641  Capturing subpattern count = 0  Capturing subpattern count = 0
2642  Options: extended  Options: extended
2643  No first char  No first char
2644  No need char  No need char
2645    
2646  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 9  
2647  ------------------------------------------------------------------  ------------------------------------------------------------------
2648    0   5 Bra 0          Bra
2649    3     a          a
2650    5   5 Ket          Ket
2651    8     End          End
2652  ------------------------------------------------------------------  ------------------------------------------------------------------
2653  Capturing subpattern count = 0  Capturing subpattern count = 0
2654  Options: extended  Options: extended
2655  First char = 'a'  First char = 'a'
2656  No need char  No need char
2657    
2658  /[\s]/D  /[\s]/DZ
2659  ------------------------------------------------------------------  ------------------------------------------------------------------
2660    0  36 Bra 0          Bra
2661    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
2662   36  36 Ket          Ket
2663   39     End          End
2664  ------------------------------------------------------------------  ------------------------------------------------------------------
2665  Capturing subpattern count = 0  Capturing subpattern count = 0
2666  No options  No options
2667  No first char  No first char
2668  No need char  No need char
2669    
2670  /[\S]/D  /[\S]/DZ
2671  ------------------------------------------------------------------  ------------------------------------------------------------------
2672    0  36 Bra 0          Bra
2673    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2674   36  36 Ket          Ket
2675   39     End          End
2676  ------------------------------------------------------------------  ------------------------------------------------------------------
2677  Capturing subpattern count = 0  Capturing subpattern count = 0
2678  No options  No options
2679  No first char  No first char
2680  No need char  No need char
2681    
2682  /a(?i)b/D  /a(?i)b/DZ
2683  ------------------------------------------------------------------  ------------------------------------------------------------------
2684    0   9 Bra 0          Bra
2685    3     a          a
2686    5  01 Opt       01 Opt
2687    7  NC b       NC b
2688    9   9 Ket          Ket
2689   12     End          End
2690  ------------------------------------------------------------------  ------------------------------------------------------------------
2691  Capturing subpattern count = 0  Capturing subpattern count = 0
2692  No options  No options
# Line 2760  Need char = 'b' (caseless) Line 2696  Need char = 'b' (caseless)
2696   0: ab   0: ab
2697      aB      aB
2698   0: aB   0: aB
2699      *** Failers      *** Failers
2700  No match  No match
2701      AB      AB
2702  No match  No match
2703    
2704  /(a(?i)b)/D  /(a(?i)b)/DZ
2705  ------------------------------------------------------------------  ------------------------------------------------------------------
2706    0  17 Bra 0          Bra
2707    3   9 Bra 1          CBra 1
2708    6     a          a
2709    8  01 Opt       01 Opt
2710   10  NC b       NC b
2711   12   9 Ket          Ket
2712   15  00 Opt       00 Opt
2713   17  17 Ket          Ket
2714   20     End          End
2715  ------------------------------------------------------------------  ------------------------------------------------------------------
2716  Capturing subpattern count = 1  Capturing subpattern count = 1
2717  No options  No options
# Line 2787  Need char = 'b' (caseless) Line 2723  Need char = 'b' (caseless)
2723      aB      aB
2724   0: aB   0: aB
2725   1: aB   1: aB
2726      *** Failers      *** Failers
2727  No match  No match
2728      AB      AB
2729  No match  No match
2730    
2731  /   (?i)abc/xD  /   (?i)abc/IxDZ
2732  ------------------------------------------------------------------  ------------------------------------------------------------------
2733    0   9 Bra 0          Bra
2734    3  NC abc       NC abc
2735    9   9 Ket          Ket
2736   12     End          End
2737  ------------------------------------------------------------------  ------------------------------------------------------------------
2738  Capturing subpattern count = 0  Capturing subpattern count = 0
2739  Options: caseless extended  Options: caseless extended
# Line 2805  First char = 'a' (caseless) Line 2741  First char = 'a' (caseless)
2741  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2742    
2743  /#this is a comment  /#this is a comment
2744    (?i)abc/xD    (?i)abc/IxDZ
2745  ------------------------------------------------------------------  ------------------------------------------------------------------
2746    0   9 Bra 0          Bra
2747    3  NC abc       NC abc
2748    9   9 Ket          Ket
2749   12     End          End
2750  ------------------------------------------------------------------  ------------------------------------------------------------------
2751  Capturing subpattern count = 0  Capturing subpattern count = 0
2752  Options: caseless extended  Options: caseless extended
2753  First char = 'a' (caseless)  First char = 'a' (caseless)
2754  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2755    
2756  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2757  ------------------------------------------------------------------  ------------------------------------------------------------------
2758    0 603 Bra 0          Bra
2759    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2760  603 603 Ket          Ket
2761  606     End          End
2762  ------------------------------------------------------------------  ------------------------------------------------------------------
2763  Capturing subpattern count = 0  Capturing subpattern count = 0
2764  No options  No options
2765  First char = '1'  First char = '1'
2766  Need char = '0'  Need char = '0'
2767    
2768  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2769  ------------------------------------------------------------------  ------------------------------------------------------------------
2770    0 603 Bra 0          Bra
2771    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2772  603 603 Ket          Ket
2773  606     End          End
2774  ------------------------------------------------------------------  ------------------------------------------------------------------
2775  Capturing subpattern count = 0  Capturing subpattern count = 0
2776  No options  No options
2777  First char = '1'  First char = '1'
2778  Need char = '0'  Need char = '0'
2779    
2780  /\Q\E/D  /\Q\E/DZ
2781  ------------------------------------------------------------------  ------------------------------------------------------------------
2782    0   3 Bra 0          Bra
2783    3   3 Ket          Ket
2784    6     End          End
2785  ------------------------------------------------------------------  ------------------------------------------------------------------
2786  Capturing subpattern count = 0  Capturing subpattern count = 0
2787  No options  No options
# Line 2854  No need char Line 2790  No need char
2790      \      \
2791   0:   0:
2792    
2793  /\Q\Ex/D  /\Q\Ex/DZ
2794  ------------------------------------------------------------------  ------------------------------------------------------------------
2795    0   5 Bra 0          Bra
2796    3     x          x
2797    5   5 Ket          Ket
2798    8     End          End
2799  ------------------------------------------------------------------  ------------------------------------------------------------------
2800  Capturing subpattern count = 0  Capturing subpattern count = 0
2801  No options  No options
2802  First char = 'x'  First char = 'x'
2803  No need char  No need char
2804    
2805  / \Q\E/D  / \Q\E/DZ
2806  ------------------------------------------------------------------  ------------------------------------------------------------------
2807    0   5 Bra 0          Bra
2808    3  
2809    5   5 Ket          Ket
2810    8     End          End
2811  ------------------------------------------------------------------  ------------------------------------------------------------------
2812  Capturing subpattern count = 0  Capturing subpattern count = 0
2813  No options  No options
2814  First char = ' '  First char = ' '
2815  No need char  No need char
2816    
2817  /a\Q\E/D  /a\Q\E/DZ
2818  ------------------------------------------------------------------  ------------------------------------------------------------------
2819    0   5 Bra 0          Bra
2820    3     a          a
2821    5   5 Ket          Ket
2822    8     End          End
2823  ------------------------------------------------------------------  ------------------------------------------------------------------
2824  Capturing subpattern count = 0  Capturing subpattern count = 0
2825  No options  No options
# Line 2893  No need char Line 2829  No need char
2829   0: a   0: a
2830    bca    bca
2831   0: a   0: a
2832    bac    bac
2833   0: a   0: a
2834    
2835  /a\Q\Eb/D  /a\Q\Eb/DZ
2836  ------------------------------------------------------------------  ------------------------------------------------------------------
2837    0   7 Bra 0          Bra
2838    3     ab          ab
2839    7   7 Ket          Ket
2840   10     End          End
2841  ------------------------------------------------------------------  ------------------------------------------------------------------
2842  Capturing subpattern count = 0  Capturing subpattern count = 0
2843  No options  No options
# Line 2910  Need char = 'b' Line 2846  Need char = 'b'
2846    abc    abc
2847   0: ab   0: ab
2848    
2849  /\Q\Eabc/D  /\Q\Eabc/DZ
2850  ------------------------------------------------------------------  ------------------------------------------------------------------
2851    0   9 Bra 0          Bra
2852    3     abc          abc
2853    9   9 Ket          Ket
2854   12     End          End
2855  ------------------------------------------------------------------  ------------------------------------------------------------------
2856  Capturing subpattern count = 0  Capturing subpattern count = 0
2857  No options  No options
2858  First char = 'a'  First char = 'a'
2859  Need char = 'c'  Need char = 'c'
2860    
2861  /x*+\w/D  /x*+\w/DZ
2862  ------------------------------------------------------------------  ------------------------------------------------------------------
2863    0  12 Bra 0          Bra
2864    3   5 Once          x*+
2865    6     x*          \w
2866    8   5 Ket          Ket
2867   11     \w          End
  12  12 Ket  
  15     End  
2868  ------------------------------------------------------------------  ------------------------------------------------------------------
2869  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2870  No options  No options
2871  No first char  No first char
2872  No need char  No need char
# Line 2941  No need char Line 2874  No need char
2874   0: F   0: F
2875      xxxxx      xxxxx
2876  No match  No match
2877    
2878  /x?+/D  /x?+/DZ
2879  ------------------------------------------------------------------  ------------------------------------------------------------------
2880    0  11 Bra 0          Bra
2881    3   5 Once          x?+
2882    6     x?          Ket
2883    8   5 Ket          End
  11  11 Ket  
  14     End  
2884  ------------------------------------------------------------------  ------------------------------------------------------------------
2885  Capturing subpattern count = 0  Capturing subpattern count = 0
2886  No options  No options
2887  No first char  No first char
2888  No need char  No need char
2889    
2890  /x++/D  /x++/DZ
2891  ------------------------------------------------------------------  ------------------------------------------------------------------
2892    0  11 Bra 0          Bra
2893    3   5 Once          x++
2894    6     x+          Ket
2895    8   5 Ket          End
  11  11 Ket  
  14     End  
2896  ------------------------------------------------------------------  ------------------------------------------------------------------
2897  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2898  No options  No options
2899  First char = 'x'  First char = 'x'
2900  No need char  No need char
2901    
2902  /x{1,3}+/D  /x{1,3}+/DZ
2903  ------------------------------------------------------------------  ------------------------------------------------------------------
2904    0  15 Bra 0          Bra
2905    3   9 Once          Once
2906    6     x          x
2907    8     x{,2}          x{0,2}
2908   12   9 Ket          Ket
2909   15  15 Ket          Ket
2910   18     End          End
2911  ------------------------------------------------------------------  ------------------------------------------------------------------
2912  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2913  No options  No options
2914  First char = 'x'  First char = 'x'
2915  No need char  No need char
2916    
2917  /(x)*+/D  /(x)*+/DZ
2918  ------------------------------------------------------------------  ------------------------------------------------------------------
2919    0  18 Bra 0          Bra
2920    3  12 Once          Once
2921    6     Brazero          Brazero
2922    7   5 Bra 1          CBra 1
2923   10     x          x
2924   12   5 KetRmax          KetRmax
2925   15  12 Ket          Ket
2926   18  18 Ket          Ket
2927   21     End          End
2928  ------------------------------------------------------------------  ------------------------------------------------------------------
2929  Capturing subpattern count = 1  Capturing subpattern count = 1
2930  No options  No options
2931  No first char  No first char
2932  No need char  No need char
2933    
2934  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2935  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2936  Options: anchored  Options: anchored
2937  No first char  No first char
2938  No need char  No need char
# Line 3017  No need char Line 2943  No need char
2943  No match  No match
2944      this is not a line with only words and spaces!      this is not a line with only words and spaces!
2945  No match  No match
2946    
2947  /(\d++)(\w)/  /(\d++)(\w)/I
2948  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
2949  No options  No options
2950  No first char  No first char
2951  No need char  No need char
# Line 3030  No need char Line 2955  No need char
2955   2: a   2: a
2956      *** Failers      *** Failers
2957  No match  No match
2958      12345+      12345+
2959  No match  No match
2960    
2961  /a++b/  /a++b/I
2962  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2963  No options  No options
2964  First char = 'a'  First char = 'a'
2965  Need char = 'b'  Need char = 'b'
2966      aaab      aaab
2967   0: aaab   0: aaab
2968    
2969  /(a++b)/  /(a++b)/I
2970  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2971  No options  No options
2972  First char = 'a'  First char = 'a'
2973  Need char = 'b'  Need char = 'b'
# Line 3052  Need char = 'b' Line 2975  Need char = 'b'
2975   0: aaab   0: aaab
2976   1: aaab   1: aaab
2977    
2978  /(a++)b/  /(a++)b/I
2979  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2980  No options  No options
2981  First char = 'a'  First char = 'a'
2982  Need char = 'b'  Need char = 'b'
# Line 3062  Need char = 'b' Line 2984  Need char = 'b'
2984   0: aaab   0: aaab
2985   1: aaa   1: aaa
2986    
2987  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
2988  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2989  No options  No options
2990  No first char  No first char
2991  No need char  No need char
2992      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
2993   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
2994   1: x   1: x
2995    
2996  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
2997  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2998  No options  No options
2999  First char = '('  First char = '('
3000  Need char = ')'  Need char = ')'
# Line 3086  Need char = ')' Line 3006  Need char = ')'
3006   1: xyz   1: xyz
3007      *** Failers      *** Failers
3008  No match  No match
3009      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3010  No match  No match
3011    
3012  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3013  ------------------------------------------------------------------  ------------------------------------------------------------------
3014    0  53 Bra 0          Bra
3015    3  47 Once          Once
3016    6   9 Bra 1          CBra 1
3017    9     abc          abc
3018   15   9 Ket          Ket
3019   18     Brazero          Brazero
3020   19  28 Bra 0          Bra
3021   22   9 Bra 1          CBra 1
3022   25     abc          abc
3023   31   9 Ket          Ket
3024   34     Brazero          Brazero
3025   35   9 Bra 1          CBra 1
3026   38     abc          abc
3027   44   9 Ket          Ket
3028   47  28 Ket          Ket
3029   50  47 Ket          Ket
3030   53  53 Ket          Ket
3031   56     End          End
3032  ------------------------------------------------------------------  ------------------------------------------------------------------
3033  Capturing subpattern count = 1  Capturing subpattern count = 1
3034  No options  No options
3035  First char = 'a'  First char = 'a'
3036  Need char = 'c'  Need char = 'c'
3037    
3038  /a+?+/  /a+?+/I
3039  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3040    
3041  /a{2,3}?+b/  /a{2,3}?+b/I
3042  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3043    
3044  /(?U)a+?+/  /(?U)a+?+/I
3045  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3046    
3047  /a{2,3}?+b/U  /a{2,3}?+b/IU
3048  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3049    
3050  /x(?U)a++b/D  /x(?U)a++b/DZ
3051  ------------------------------------------------------------------  ------------------------------------------------------------------
3052    0  15 Bra 0          Bra
3053    3     x          x
3054    5   5 Once          a++
3055    8     a+          b
3056   10   5 Ket          Ket
3057   13     b          End
  15  15 Ket  
  18     End  
3058  ------------------------------------------------------------------  ------------------------------------------------------------------
3059  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3060  No options  No options
3061  First char = 'x'  First char = 'x'
3062  Need char = 'b'  Need char = 'b'
3063      xaaaab      xaaaab
3064   0: xaaaab   0: xaaaab
3065    
3066  /(?U)xa++b/D  /(?U)xa++b/DZ
3067  ------------------------------------------------------------------  ------------------------------------------------------------------
3068    0  15 Bra 0          Bra
3069    3     x          x
3070    5   5 Once          a++
3071    8     a+          b
3072   10   5 Ket          Ket
3073   13     b          End
  15  15 Ket  
  18     End  
3074  ------------------------------------------------------------------  ------------------------------------------------------------------
3075  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3076  Options: ungreedy  Options: ungreedy
3077  First char = 'x'  First char = 'x'
3078  Need char = 'b'  Need char = 'b'
3079      xaaaab      xaaaab
3080   0: xaaaab   0: xaaaab
3081    
3082  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3083  ------------------------------------------------------------------  ------------------------------------------------------------------
3084    0 106 Bra 0          Bra
3085    3     ^          ^
3086    4  99 Bra 1          CBra 1
3087    7   5 Bra 2          CBra 2
3088   10     a+          a+
3089   12   5 Ket          Ket
3090   15  37 Bra 3          CBra 3
3091   18     [ab]+?          [ab]+?
3092   52  37 Ket          Ket
3093   55  37 Bra 4          CBra 4
3094   58     [bc]+          [bc]+
3095   92  37 Ket          Ket
3096   95   5 Bra 5          CBra 5
3097   98     \w*          \w*
3098  100   5 Ket          Ket
3099  103  99 Ket          Ket
3100  106 106 Ket          Ket
3101  109     End          End
3102  ------------------------------------------------------------------  ------------------------------------------------------------------
3103  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3104  Options: anchored  Options: anchored
3105  No first char  No first char
3106  No need char  No need char
3107    
3108  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3109  ------------------------------------------------------------------  ------------------------------------------------------------------
3110    0  10 Bra 0          Bra
3111    3     ^          ^
3112    4     x          x
3113    6     a+?          a++
3114    8     b          b
3115   10  10 Ket          Ket
3116   13     End          End
3117  ------------------------------------------------------------------  ------------------------------------------------------------------
3118  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3119  Options: anchored  Options: anchored
3120  No first char  No first char
3121  Need char = 'b'  Need char = 'b'
3122    
3123  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3124  ------------------------------------------------------------------  ------------------------------------------------------------------
3125    0  16 Bra 0          Bra
3126    3     ^          ^
3127    4     x          x
3128    6   5 Bra 1          CBra 1
3129    9     a+?          a+?
3130   11   5 Ket          Ket
3131   14     b          b
3132   16  16 Ket          Ket
3133   19     End          End
3134  ------------------------------------------------------------------  ------------------------------------------------------------------
3135  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3136  Options: anchored  Options: anchored
3137  No first char  No first char
3138  Need char = 'b'  Need char = 'b'
3139    
3140  /[.x.]/  /[.x.]/I
3141  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3142    
3143  /[=x=]/  /[=x=]/I
3144  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3145    
3146  /[:x:]/  /[:x:]/I
3147  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
3148    
3149  /\l/  /\l/I
3150  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
3151    
3152  /\L/  /\L/I
3153  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
3154    
3155  /\N{name}/  /\N{name}/I
3156  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
3157    
3158  /\u/  /\u/I
3159  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
3160    
3161  /\U/  /\U/I
3162  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
3163    
3164  /[/  /[/I
3165  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3166    
3167  /[a-/  /[a-/I
3168  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3169    
3170  /[[:space:]/  /[[:space:]/I
3171  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3172    
3173  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3174  ------------------------------------------------------------------  ------------------------------------------------------------------
3175    0  36 Bra 0          Bra
3176    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
3177   36  36 Ket          Ket
3178   39     End          End
3179  ------------------------------------------------------------------  ------------------------------------------------------------------
3180  Capturing subpattern count = 0  Capturing subpattern count = 0
3181  No options  No options
3182  No first char  No first char
3183  No need char  No need char
3184    
3185  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3186  ------------------------------------------------------------------  ------------------------------------------------------------------
3187    0  36 Bra 0          Bra
3188    3     [\x09-\x0d ]          [\x09-\x0d ]
3189   36  36 Ket          Ket
3190   39     End          End
3191  ------------------------------------------------------------------  ------------------------------------------------------------------
3192  Capturing subpattern count = 0  Capturing subpattern count = 0
3193  No options  No options
3194  No first char  No first char
3195  No need char  No need char
3196    
3197  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3198  ------------------------------------------------------------------  ------------------------------------------------------------------
3199    0  36 Bra 0          Bra
3200    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3201   36  36 Ket          Ket
3202   39     End          End
3203  ------------------------------------------------------------------  ------------------------------------------------------------------
3204  Capturing subpattern count = 0  Capturing subpattern count = 0
3205  No options  No options
3206  No first char  No first char
3207  No need char  No need char
3208    
3209  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3210  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3211  Options: extended  Options: extended
3212  First char = '<'  First char = '<'
3213  Need char = '>'  Need char = '>'
# Line 3312  Need char = '>' Line 3219  Need char = '>'
3219   0: <abc <123> hij>   0: <abc <123> hij>
3220      <abc <def> hij>      <abc <def> hij>
3221   0: <def>   0: <def>
3222      <abc<>def>      <abc<>def>
3223   0: <abc<>def>   0: <abc<>def>
3224      <abc<>      <abc<>
3225   0: <>   0: <>
3226      *** Failers      *** Failers
3227  No match  No match
3228      <abc      <abc
3229  No match  No match
3230    
3231  |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  
3232  ------------------------------------------------------------------  ------------------------------------------------------------------
3233    0 822 Bra 0          Bra
3234    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
3235  821     \b          \b
3236  822 822 Ket          Ket
3237  825     End          End
3238  ------------------------------------------------------------------  ------------------------------------------------------------------
3239  Capturing subpattern count = 0  Capturing subpattern count = 0
3240  No options  No options
3241  First char = '8'  First char = '8'
3242  Need char = 'X'  Need char = 'X'
3243    
3244  |\$\<\.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  
3245  ------------------------------------------------------------------  ------------------------------------------------------------------
3246    0 812 Bra 0          Bra
3247    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
3248  811     \b          \b
3249  812 812 Ket          Ket
3250  815     End          End
3251  ------------------------------------------------------------------  ------------------------------------------------------------------
3252  Capturing subpattern count = 0  Capturing subpattern count = 0
3253  No options  No options
# Line 3352  Need char = 'X' Line 3257  Need char = 'X'
3257  /(.*)\d+\1/I  /(.*)\d+\1/I
3258  Capturing subpattern count = 1  Capturing subpattern count = 1
3259  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3260  No options  No options
3261  No first char  No first char
3262  No need char  No need char
3263    
3264  /(.*)\d+/I  /(.*)\d+/I
3265  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3266  No options  No options
3267  First char at start or follows newline  First char at start or follows newline
3268  No need char  No need char
3269    
3270  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3271  Capturing subpattern count = 1  Capturing subpattern count = 1
3272  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3273  Options: dotall  Options: dotall
3274  No first char  No first char
3275  No need char  No need char
3276    
3277  /(.*)\d+/Is  /(.*)\d+/Is
3278  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3279  Options: anchored dotall  Options: anchored dotall
3280  No first char  No first char
3281  No need char  No need char
# Line 3382  No need char Line 3283  No need char
3283  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3284  Capturing subpattern count = 2  Capturing subpattern count = 2
3285  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3286  No options  No options
3287  First char at start or follows newline  First char at start or follows newline
3288  Need char = 'z'  Need char = 'z'
# Line 3390  Need char = 'z' Line 3290  Need char = 'z'
3290  /((.*))\d+\1/I  /((.*))\d+\1/I
3291  Capturing subpattern count = 2  Capturing subpattern count = 2
3292  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3293  No options  No options
3294  No first char  No first char
3295  No need char  No need char
# Line 3398  No need char Line 3297  No need char
3297   0: bc123bc   0: bc123bc
3298   1: bc   1: bc
3299   2: bc   2: bc
3300    
3301  /a[b]/I  /a[b]/I
3302  Capturing subpattern count = 0  Capturing subpattern count = 0
3303  No options  No options
# Line 3407  Need char = 'b' Line 3306  Need char = 'b'
3306    
3307  /(?=a).*/I  /(?=a).*/I
3308  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3309  No options  No options
3310  First char = 'a'  First char = 'a'
3311  No need char  No need char
3312    
3313  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3314  Capturing subpattern count = 0  Capturing subpattern count = 0
3315  Options: caseless  Options: caseless
3316  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3454  No options Line 3352  No options
3352  No first char  No first char
3353  Need char = 'a'  Need char = 'a'
3354    
3355  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3356  Capturing subpattern count = 0  Capturing subpattern count = 1
3357  No options  No options
3358  First char = 'a'  First char = 'a'
3359  No need char  No need char
3360    
3361  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3362  Capturing subpattern count = 0  Capturing subpattern count = 1
3363  No options  No options
3364  First char = 'a'  First char = 'a'
3365  Need char = 'z'  Need char = 'z'
3366    
3367  /(?(1)abz)/I  /(?(1)abz)(.)/I
3368  Capturing subpattern count = 0  Capturing subpattern count = 1
3369  No options  No options
3370  No first char  No first char
3371  No need char  No need char
3372    
3373  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3374  Capturing subpattern count = 0  Capturing subpattern count = 1
3375  No options  No options
3376  No first char  No first char
3377  Need char = '3'  Need char = '3'
# Line 3540  No options Line 3438  No options
3438  First char = 'a'  First char = 'a'
3439  Need char = 'b'  Need char = 'b'
3440    
3441  /^a/mI  /^a/Im
3442  Capturing subpattern count = 0  Capturing subpattern count = 0
3443  Options: multiline  Options: multiline
3444  First char at start or follows newline  First char at start or follows newline
3445  Need char = 'a'  Need char = 'a'
3446    abcde    abcde
3447   0: a   0: a
3448    xy\nabc    xy\nabc
3449   0: a   0: a
3450    *** Failers    *** Failers
3451  No match  No match
3452    xyabc    xyabc
3453  No match  No match
3454    
3455  /c|abc/I  /c|abc/I
# Line 3574  No first char Line 3472  No first char
3472  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3473  Starting byte set: a b  Starting byte set: a b
3474    
3475  /abc(?C)def/  /abc(?C)def/I
3476  Capturing subpattern count = 0  Capturing subpattern count = 0
3477  No options  No options
3478  First char = 'a'  First char = 'a'
# Line 3583  Need char = 'f' Line 3481  Need char = 'f'
3481  --->abcdef  --->abcdef
3482    0 ^  ^       d    0 ^  ^       d
3483   0: abcdef   0: abcdef
3484      1234abcdef      1234abcdef
3485  --->1234abcdef  --->1234abcdef
3486    0     ^  ^       d    0     ^  ^       d
3487   0: abcdef   0: abcdef
# Line 3591  Need char = 'f' Line 3489  Need char = 'f'
3489  No match  No match
3490      abcxyz      abcxyz
3491  No match  No match
3492      abcxyzf      abcxyzf
3493  --->abcxyzf  --->abcxyzf
3494    0 ^  ^        d    0 ^  ^        d
3495  No match  No match
3496    
3497  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3498  Capturing subpattern count = 0  Capturing subpattern count = 0
3499  No options  No options
3500  First char = 'a'  First char = 'a'
# Line 3606  Need char = 'f' Line 3504  Need char = 'f'
3504    0    ^  ^       d    0    ^  ^       d
3505    1    ^    ^     f    1    ^    ^     f
3506   0: abcdef   0: abcdef
3507    
3508  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3509  Capturing subpattern count = 0  Capturing subpattern count = 0
3510  No options  No options
3511  No first char  No first char
# Line 3622  Need char = 'f' Line 3520  Need char = 'f'
3520   0: 4abcdef   0: 4abcdef
3521      *** Failers      *** Failers
3522  No match  No match
3523      abcdef      abcdef
3524  --->abcdef  --->abcdef
3525    1 ^          \d    1 ^          \d
3526    1  ^         \d    1  ^         \d
# Line 3631  No match Line 3529  No match
3529    1     ^      \d    1     ^      \d
3530    1      ^     \d    1      ^     \d
3531  No match  No match
3532    
3533  /(?C255)ab/  /(?C255)ab/I
3534  Capturing subpattern count = 0  Capturing subpattern count = 0
3535  No options  No options
3536  First char = 'a'  First char = 'a'
3537  Need char = 'b'  Need char = 'b'
3538    
3539  /(?C256)ab/  /(?C256)ab/I
3540  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3541    
3542  /(?Cab)xx/  /(?Cab)xx/I
3543  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3544    
3545  /(?C12vr)x/  /(?C12vr)x/I
3546  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3547    
3548  /abc(?C)def/  /abc(?C)def/I
3549  Capturing subpattern count = 0  Capturing subpattern count = 0
3550  No options  No options
3551  First char = 'a'  First char = 'a'
# Line 3659  No match Line 3557  No match
3557    0         ^  ^       d    0         ^  ^       d
3558   0: abcdef   0: abcdef
3559    
3560  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3561  Capturing subpattern count = 1  Capturing subpattern count = 1
3562  No options  No options
3563  First char = 'a'  First char = 'a'
# Line 3670  Need char = 'f' Line 3568  Need char = 'f'
3568    1    ^    ^     f    1    ^    ^     f
3569   0: abcdef   0: abcdef
3570   1: abc   1: abc
3571      123abcdef\C+      123abcdef\C+
3572  Callout 0: last capture = 1  Callout 0: last capture = 1
3573   0: <unset>   0: <unset>
3574   1: abc   1: abc
# Line 3683  Callout 1: last capture = 1 Line 3581  Callout 1: last capture = 1
3581         ^    ^     f         ^    ^     f
3582   0: abcdef   0: abcdef
3583   1: abc   1: abc
3584      123abcdef\C-      123abcdef\C-
3585   0: abcdef   0: abcdef
3586   1: abc   1: abc
3587      *** Failers      *** Failers
3588  No match  No match
3589      123abcdef\C!1      123abcdef\C!1
3590  --->123abcdef  --->123abcdef
3591    0    ^  ^       d    0    ^  ^       d
3592    1    ^    ^     f    1    ^    ^     f
3593  No match  No match
3594    
3595  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3596  Capturing subpattern count = 1  Capturing subpattern count = 1
3597  No options  No options
3598  No first char  No first char
# Line 3707  No need char Line 3605  No need char
3605    1 ^        ^    )    1 ^        ^    )
3606   0: abcabcabc   0: abcabcabc
3607   1: abc   1: abc
3608      abcabc\C!1!3      abcabc\C!1!3
3609  --->abcabc  --->abcabc
3610    0 ^          (abc(?C1))*    0 ^          (abc(?C1))*
3611    1 ^  ^       )    1 ^  ^       )
# Line 3718  No need char Line 3616  No need char
3616  --->*** Failers  --->*** Failers
3617    0 ^               (abc(?C1))*    0 ^               (abc(?C1))*
3618   0:   0:
3619      abcabcabc\C!1!3      abcabcabc\C!1!3
3620  --->abcabcabc  --->abcabcabc
3621    0 ^             (abc(?C1))*    0 ^             (abc(?C1))*
3622    1 ^  ^          )    1 ^  ^          )
# Line 3727  No need char Line 3625  No need char
3625   0: abcabc   0: abcabc
3626   1: abc   1: abc
3627    
3628  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3629  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3630  No options  No options
3631  No first char  No first char
3632  No need char  No need char
# Line 3752  Callout 0: last capture = 1 Line 3649  Callout 0: last capture = 1
3649      ^     ^    )      ^     ^    )
3650   0: 123456   0: 123456
3651   1: 456   1: 456
3652      123456789\C+      123456789\C+
3653  Callout 0: last capture = -1  Callout 0: last capture = -1
3654   0: <unset>   0: <unset>
3655  --->123456789  --->123456789
# Line 3770  Callout 0: last capture = 1 Line 3667  Callout 0: last capture = 1
3667   0: 123456789   0: 123456789
3668   1: 789   1: 789
3669    
3670  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3671  Capturing subpattern count = 2  Capturing subpattern count = 2
3672  No options  No options
3673  First char = 'x'  First char = 'x'
# Line 3789  Callout 1: last capture = -1 Line 3686  Callout 1: last capture = -1
3686   0: xyzabc   0: xyzabc
3687   1: xyzabc   1: xyzabc
3688    
3689  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3690  Capturing subpattern count = 3  Capturing subpattern count = 3
3691  No options  No options
3692  First char = 'X'  First char = 'X'
# Line 3811  Callout 1: last capture = 1 Line 3708  Callout 1: last capture = 1
3708   1: X   1: X
3709   2: xyzabc   2: xyzabc
3710    
3711  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3712  Capturing subpattern count = 1  Capturing subpattern count = 1
3713  No options  No options
3714  First char = 'a'  First char = 'a'
# Line 3824  Callout 0: last capture = 1 Line 3721  Callout 0: last capture = 1
3721      ^          a      ^          a
3722   0: abcdef   0: abcdef
3723   1: abc   1: abc
3724    
3725  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3726  Capturing subpattern count = 1  Capturing subpattern count = 1
3727  No options  No options
3728  First char = 'a'  First char = 'a'
3729  Need char = 'z'  Need char = 'z'
3730      abcxyz\C+      abcxyz\C+
3731  Callout 1: last capture = 1  Callout 1: last capture = 1
3732   0: <unset>   0: <unset>
3733   1: abc   1: abc
# Line 3842  Callout 2: last capture = -1 Line 3739  Callout 2: last capture = -1
3739      ^          a      ^          a
3740   0: abcxyz   0: abcxyz
3741    
3742  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3743  Capturing subpattern count = 1  Capturing subpattern count = 1
3744  No options  No options
3745  First char = 'x'  First char = 'x'
# Line 3855  Callout 0: last capture = 1 Line 3752  Callout 0: last capture = 1
3752         ^       )         ^       )
3753   0: xyz   0: xyz
3754   1: abc   1: abc
3755    
3756  /a(b+)(c*)(?C1)/  /a(b+)(c*)(?C1)/I
3757  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3758  No options  No options
3759  First char = 'a'  First char = 'a'
3760  Need char = 'b'  Need char = 'b'
# Line 3882  Callout data = 1 Line 3778  Callout data = 1
3778  Callout data = 1  Callout data = 1
3779  No match  No match
3780    
3781  /a(b+?)(c*?)(?C1)/  /a(b+?)(c*?)(?C1)/I
3782  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3783  No options  No options
3784  First char = 'a'  First char = 'a'
3785  Need char = 'b'  Need char = 'b'
# Line 3907  Callout data = 1 Line 3802  Callout data = 1
3802    1 ^        ^    1 ^        ^
3803  Callout data = 1  Callout data = 1
3804  No match  No match
3805    
3806  /(?C)abc/  /(?C)abc/I
3807  Capturing subpattern count = 0  Capturing subpattern count = 0
3808  No options  No options
3809  First char = 'a'  First char = 'a'
3810  Need char = 'c'  Need char = 'c'
3811    
3812  /(?C)^abc/  /(?C)^abc/I
3813  Capturing subpattern count = 0  Capturing subpattern count = 0
3814  Options: anchored  Options: anchored
3815  No first char  No first char
3816  No need char  No need char
3817    
3818  /(?C)a|b/S  /(?C)a|b/IS
3819  Capturing subpattern count = 0  Capturing subpattern count = 0
3820  No options  No options
3821  No first char  No first char
3822  No need char  No need char
3823  Starting byte set: a b  Starting byte set: a b
3824    
3825  /(?R)/  /(?R)/I
3826  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3827    
3828  /(a|(?R))/  /(a|(?R))/I
3829  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3830    
3831  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3832  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3833    
3834  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3835  Capturing subpattern count = 3  Capturing subpattern count = 3
3836  No options  No options
3837  First char = 'x'  First char = 'x'
# Line 3965  No need char Line 3860  No need char
3860   3: xxab   3: xxab
3861      *** Failers      *** Failers
3862  No match  No match
3863      xyab      xyab
3864  No match  No match
3865    
3866  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3867  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3868    
3869  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3870  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3871    
3872  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3873  Capturing subpattern count = 1  Capturing subpattern count = 1
3874  Options: anchored  Options: anchored
3875  No first char  No first char
# Line 3985  No need char Line 3880  No need char
3880      a(b)c      a(b)c
3881   0: a(b)c   0: a(b)c
3882   1: c   1: c
3883      a(b(c))d      a(b(c))d
3884   0: a(b(c))d   0: a(b(c))d
3885   1: d   1: d
3886      *** Failers)      *** Failers)
3887  No match  No match
3888      a(b(c)d      a(b(c)d
3889  No match  No match
3890    
3891  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3892  Capturing subpattern count = 1  Capturing subpattern count = 1
3893  Options: anchored  Options: anchored
3894  No first char  No first char
# Line 4008  Need char = '<' Line 3903  Need char = '<'
3903   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3904   1: (1(2)3)   1: (1(2)3)
3905    
3906  /(a(?1)b)/D  /(a(?1)b)/DZ
3907  ------------------------------------------------------------------  ------------------------------------------------------------------
3908    0  22 Bra 0          Bra
3909    3  16 Bra 1          CBra 1
3910    6     a          a
3911    8   6 Once          Once
3912   11   3 Recurse          Recurse
3913   14   6 Ket          Ket
3914   17     b          b
3915   19  16 Ket          Ket
3916   22  22 Ket          Ket
3917   25     End          End
3918  ------------------------------------------------------------------  ------------------------------------------------------------------
3919  Capturing subpattern count = 1  Capturing subpattern count = 1
3920  No options  No options
3921  First char = 'a'  First char = 'a'
3922  Need char = 'b'  Need char = 'b'
3923    
3924  /(a(?1)+b)/D  /(a(?1)+b)/DZ
3925  ------------------------------------------------------------------  ------------------------------------------------------------------
3926    0  22 Bra 0          Bra
3927    3  16 Bra 1          CBra 1
3928    6     a          a
3929    8   6 Once          Once
3930   11   3 Recurse          Recurse
3931   14   6 KetRmax          KetRmax
3932   17     b          b
3933   19  16 Ket          Ket
3934   22  22 Ket          Ket
3935   25     End          End
3936  ------------------------------------------------------------------  ------------------------------------------------------------------
3937  Capturing subpattern count = 1  Capturing subpattern count = 1
3938  No options  No options
3939  First char = 'a'  First char = 'a'
3940  Need char = 'b'  Need char = 'b'
3941    
3942  /^\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
3943  Capturing subpattern count = 4  Capturing subpattern count = 4
3944  Max back reference = 4  Max back reference = 4
 Partial matching not supported  
3945  Options: anchored caseless  Options: anchored caseless
3946  No first char  No first char
3947  No need char  No need char
# Line 4067  No need char Line 3961  No need char
3961   2: <unset>   2: <unset>
3962   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
3963   4: A   4: A
3964      Able was I ere I saw Elba.      Able was I ere I saw Elba.
3965   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
3966   1: <unset>   1: <unset>
3967   2: <unset>   2: <unset>
# Line 4075  No need char Line 3969  No need char
3969   4: A   4: A
3970      *** Failers      *** Failers
3971  No match  No match
3972      The quick brown fox      The quick brown fox
3973  No match  No match
3974    
3975  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3976  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3977  Options: anchored  Options: anchored
3978  No first char  No first char
3979  No need char  No need char
# Line 4098  No need char Line 3991  No need char
3991  No match  No match
3992      ((2+2)*-3)-7)      ((2+2)*-3)-7)
3993  No match  No match
3994    
3995  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
3996  Capturing subpattern count = 2  Capturing subpattern count = 2
3997  Options: anchored  Options: anchored
3998  No first char  No first char
# Line 4108  No need char Line 4001  No need char
4001   0: xyz   0: xyz
4002   1: xyz   1: xyz
4003   2: y   2: y
4004      xxyzxyzz      xxyzxyzz
4005   0: xxyzxyzz   0: xxyzxyzz
4006   1: xxyzxyzz   1: xxyzxyzz
4007   2: xyzxyz   2: xyzxyz
# Line 4116  No need char Line 4009  No need char
4009  No match  No match
4010      xxyzz      xxyzz
4011  No match  No match
4012      xxyzxyzxyzz      xxyzxyzxyzz
4013  No match  No match
4014    
4015  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4016  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4017  Options: extended  Options: extended
4018  First char = '<'  First char = '<'
4019  Need char = '>'  Need char = '>'
# Line 4141  Need char = '>' Line 4033  Need char = '>'
4033   0: <def>   0: <def>
4034   1: <def>   1: <def>
4035   2: <def>   2: <def>
4036      <abc<>def>      <abc<>def>
4037   0: <abc<>def>   0: <abc<>def>
4038   1: <abc<>def>   1: <abc<>def>
4039   2: <abc<>def>   2: <abc<>def>
4040      <abc<>      <abc<>
4041   0: <>   0: <>
4042   1: <>   1: <>
4043   2: <>   2: <>
# Line 4154  No match Line 4046  No match
4046      <abc      <abc
4047  No match  No match
4048    
4049  /(?1)/  /(?1)/I
4050  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4051    
4052  /((?2)(abc)/  /((?2)(abc)/I
4053  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4054    
4055  /^(abc)def(?1)/  /^(abc)def(?1)/I
4056  Capturing subpattern count = 1  Capturing subpattern count = 1
4057  Options: anchored  Options: anchored
4058  No first char  No first char
# Line 4169  No need char Line 4061  No need char
4061   0: abcdefabc   0: abcdefabc
4062   1: abc   1: abc
4063    
4064  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4065  Capturing subpattern count = 1  Capturing subpattern count = 1
4066  Options: anchored  Options: anchored
4067  No first char  No first char
# Line 4180  No need char Line 4072  No need char
4072      a=b      a=b
4073   0: a=b   0: a=b
4074   1: a   1: a
4075      a=bc      a=bc
4076   0: a=bc   0: a=bc
4077   1: a   1: a
4078    
4079  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4080  Capturing subpattern count = 2  Capturing subpattern count = 2
4081  Options: anchored  Options: anchored
4082  No first char  No first char
# Line 4197  No need char Line 4089  No need char
4089   0: a=b   0: a=b
4090   1: a   1: a
4091   2: b   2: b
4092      a=bc      a=bc
4093   0: a=bc   0: a=bc
4094   1: a   1: a
4095   2: c   2: c
4096    
4097  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4098  ------------------------------------------------------------------  ------------------------------------------------------------------
4099    0  28 Bra 0          Bra
4100    3     a          a
4101    5   5 Bra 1          CBra 1
4102    8     b          b
4103   10   5 Alt          Alt
4104   13     c          c
4105   15  10 Ket          Ket
4106   18     d          d
4107   20   5 Bra 2          CBra 2
4108   23     e          e
4109   25   5 Ket          Ket
4110   28  28 Ket          Ket
4111   31     End          End
4112  ------------------------------------------------------------------  ------------------------------------------------------------------
4113  Capturing subpattern count = 2  Capturing subpattern count = 2
4114  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4229  Need char = 'e' Line 4121  Need char = 'e'
4121   0: abde   0: abde
4122   1: b   1: b
4123   2: e   2: e
4124      acde      acde
4125   0: acde   0: acde
4126   1: c   1: c
4127   2: e   2: e
4128    
4129  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4130  ------------------------------------------------------------------  ------------------------------------------------------------------
4131    0  35 Bra 0          Bra
4132    3  21 Bra 0          Bra
4133    6     a          a
4134    8  13 Bra 1          CBra 1
4135   11     c          c
4136   13   5 Bra 2          CBra 2
4137   16     d          d
4138   18   5 Ket          Ket
4139   21  13 Ket          Ket
4140   24  21 Ket          Ket
4141   27   5 Bra 3          CBra 3
4142   30     a          a
4143   32   5 Ket          Ket
4144   35  35 Ket          Ket
4145   38     End          End
4146  ------------------------------------------------------------------  ------------------------------------------------------------------
4147  Capturing subpattern count = 3  Capturing subpattern count = 3
4148  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4261  No options Line 4153  No options
4153  First char = 'a'  First char = 'a'
4154  Need char = 'a'  Need char = 'a'
4155    
4156  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4157  ------------------------------------------------------------------  ------------------------------------------------------------------
4158    0  34 Bra 0          Bra
4159    3   5 Bra 1          CBra 1
4160    6     a          a
4161    8   5 Ket          Ket
4162   11     Any          Any
4163   12     Any          Any
4164   13     Any          Any
4165   14     \1          \1
4166   17     bbb          bbb
4167   23   6 Once          Once
4168   26   3 Recurse          Recurse
4169   29   6 Ket          Ket
4170   32     d          d
4171   34  34 Ket          Ket
4172   37     End          End
4173  ------------------------------------------------------------------  ------------------------------------------------------------------
4174  Capturing subpattern count = 1  Capturing subpattern count = 1
4175  Max back reference = 1  Max back reference = 1
# Line 4287  No options Line 4179  No options
4179  First char = 'a'  First char = 'a'
4180  Need char = 'd'  Need char = 'd'
4181    
4182  /^\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
4183  Capturing subpattern count = 4  Capturing subpattern count = 4
4184  Max back reference = 4  Max back reference = 4
4185  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4295  Named capturing subpatterns: Line 4187  Named capturing subpatterns:
4187    one     1    one     1
4188    three   3    three   3
4189    two     2    two     2
 Partial matching not supported  
4190  Options: anchored caseless  Options: anchored caseless
4191  No first char  No first char
4192  No need char  No need char
# Line 4315  No need char Line 4206  No need char
4206   2: <unset>   2: <unset>
4207   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4208   4: A   4: A
4209      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4210   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4211   1: <unset>   1: <unset>
4212   2: <unset>   2: <unset>
# Line 4323  No need char Line 4214  No need char
4214   4: A   4: A
4215      *** Failers      *** Failers
4216  No match  No match
4217      The quick brown fox      The quick brown fox
4218  No match  No match
4219    
4220  /((?(R)a|b))\1(?1)?/  /((?(R)a|b))\1(?1)?/I
4221  Capturing subpattern count = 1  Capturing subpattern count = 1
4222  Max back reference = 1  Max back reference = 1
4223  No options  No options
# Line 4335  No need char Line 4226  No need char
4226    bb    bb
4227   0: bb   0: bb
4228   1: b   1: b
4229    bbaa    bbaa
4230   0: bba   0: bba
4231   1: b   1: b
4232    
4233  /(.*)a/sI  /(.*)a/Is
4234  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4235  Options: anchored dotall  Options: anchored dotall
4236  No first char  No first char
4237  Need char = 'a'  Need char = 'a'
4238    
4239  /(.*)a\1/sI  /(.*)a\1/Is
4240  Capturing subpattern count = 1  Capturing subpattern count = 1
4241  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4242  Options: dotall  Options: dotall
4243  No first char  No first char
4244  Need char = 'a'  Need char = 'a'
4245    
4246  /(.*)a(b)\2/sI  /(.*)a(b)\2/Is
4247  Capturing subpattern count = 2  Capturing subpattern count = 2
4248  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4249  Options: anchored dotall  Options: anchored dotall
4250  No first char  No first char
4251  Need char = 'b'  Need char = 'b'
4252    
4253  /((.*)a|(.*)b)z/sI  /((.*)a|(.*)b)z/Is
4254  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4255  Options: anchored dotall  Options: anchored dotall
4256  No first char  No first char
4257  Need char = 'z'  Need char = 'z'
4258    
4259  /((.*)a|(.*)b)z\1/sI  /((.*)a|(.*)b)z\1/Is
4260  Capturing subpattern count = 3  Capturing subpattern count = 3
4261  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4262  Options: dotall  Options: dotall
4263  No first char  No first char
4264  Need char = 'z'  Need char = 'z'
4265    
4266  /((.*)a|(.*)b)z\2/sI  /((.*)a|(.*)b)z\2/Is
4267  Capturing subpattern count = 3  Capturing subpattern count = 3
4268  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4269  Options: dotall  Options: dotall
4270  No first char  No first char
4271  Need char = 'z'  Need char = 'z'
4272    
4273  /((.*)a|(.*)b)z\3/sI  /((.*)a|(.*)b)z\3/Is
4274  Capturing subpattern count = 3  Capturing subpattern count = 3
4275  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4276  Options: dotall  Options: dotall
4277  No first char  No first char
4278  Need char = 'z'  Need char = 'z'
4279    
4280  /((.*)a|^(.*)b)z\3/sI  /((.*)a|^(.*)b)z\3/Is
4281  Capturing subpattern count = 3  Capturing subpattern count = 3
4282  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4283  Options: anchored dotall  Options: anchored dotall
4284  No first char  No first char
4285  Need char = 'z'  Need char = 'z'
4286    
4287  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4288  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4289  Options: anchored dotall  Options: anchored dotall
4290  No first char  No first char
4291  No need char  No need char
4292    
4293  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4294  Capturing subpattern count = 31  Capturing subpattern count = 31
4295  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4296  Options: dotall  Options: dotall
4297  No first char  No first char
4298  No need char  No need char
4299    
4300  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4301  Capturing subpattern count = 32  Capturing subpattern count = 32
4302  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4303  Options: dotall  Options: dotall
4304  No first char  No first char
4305  No need char  No need char
4306    
4307  /(a)(bc)/ND  /(a)(bc)/INDZ
4308  ------------------------------------------------------------------  ------------------------------------------------------------------
4309    0  21 Bra 0          Bra
4310    3   5 Bra 0          Bra
4311    6     a          a
4312    8   5 Ket          Ket
4313   11   7 Bra 0          Bra
4314   14     bc          bc
4315   18   7 Ket          Ket
4316   21  21 Ket          Ket
4317   24     End          End
4318  ------------------------------------------------------------------  ------------------------------------------------------------------
4319  Capturing subpattern count = 0  Capturing subpattern count = 0
4320  Options: no_auto_capture  Options: no_auto_capture
# Line 4443  Need char = 'c' Line 4323  Need char = 'c'
4323    abc    abc
4324   0: abc   0: abc
4325    
4326  /(?P<one>a)(bc)/ND  /(?P<one>a)(bc)/INDZ
4327  ------------------------------------------------------------------  ------------------------------------------------------------------
4328    0  21 Bra 0          Bra
4329    3   5 Bra 1          CBra 1
4330    6     a          a
4331    8   5 Ket          Ket
4332   11   7 Bra 0          Bra
4333   14     bc          bc
4334   18   7 Ket          Ket
4335   21  21 Ket          Ket
4336   24     End          End
4337  ------------------------------------------------------------------  ------------------------------------------------------------------
4338  Capturing subpattern count = 1  Capturing subpattern count = 1
4339  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4465  Need char = 'c' Line 4345  Need char = 'c'
4345   0: abc   0: abc
4346   1: a   1: a
4347    
4348  /(a)(?P<named>bc)/ND  /(a)(?P<named>bc)/INDZ
4349  ------------------------------------------------------------------  ------------------------------------------------------------------
4350    0  21 Bra 0          Bra
4351    3   5 Bra 0          Bra
4352    6     a          a
4353    8   5 Ket          Ket
4354   11   7 Bra 1          CBra 1
4355   14     bc          bc
4356   18   7 Ket          Ket
4357   21  21 Ket          Ket
4358   24     End          End
4359  ------------------------------------------------------------------  ------------------------------------------------------------------
4360  Capturing subpattern count = 1  Capturing subpattern count = 1
4361  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4484  Options: no_auto_capture Line 4364  Options: no_auto_capture
4364  First char = 'a'  First char = 'a'
4365  Need char = 'c'  Need char = 'c'
4366    
4367  /(a+)*zz/  /(a+)*zz/I
4368  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4369  No options  No options
4370  No first char  No first char
4371  Need char = 'z'  Need char = 'z'
# Line 4500  Minimum match() limit = 32768 Line 4379  Minimum match() limit = 32768
4379  Minimum match() recursion limit = 42  Minimum match() recursion limit = 42
4380  No match  No match
4381    
4382  /(aaa(?C1)bbb|ab)/  /(aaa(?C1)bbb|ab)/I
4383  Capturing subpattern count = 1  Capturing subpattern count = 1
4384  No options  No options
4385  First char = 'a'  First char = 'a'
# Line 4527  Callout data = 1 Line 4406  Callout data = 1
4406  Callout data = -1  Callout data = -1
4407  No match  No match
4408    
4409  /ab(?P<one>cd)ef(?P<two>gh)/  /ab(?P<one>cd)ef(?P<two>gh)/I
4410  Capturing subpattern count = 2  Capturing subpattern count = 2
4411  Named capturing subpatterns:  Named capturing subpatterns:
4412    one   1    one   1
# Line 4551  Need char = 'h' Line 4430  Need char = 'h'
4430   2: gh   2: gh
4431    C cd (2) one    C cd (2) one
4432    C gh (2) two    C gh (2) two
4433      abcdefgh\Cthree      abcdefgh\Cthree
4434  no parentheses with name "three"  no parentheses with name "three"
4435   0: abcdefgh   0: abcdefgh
4436   1: cd   1: cd
4437   2: gh   2: gh
4438  copy substring three failed -7  copy substring three failed -7
4439    
4440  /(?P<Tes>)(?P<Test>)/D  /(?P<Tes>)(?P<Test>)/DZ
4441  ------------------------------------------------------------------  ------------------------------------------------------------------
4442    0  15 Bra 0          Bra
4443    3   3 Bra 1          CBra 1
4444    6   3 Ket          Ket
4445    9   3 Bra 2          CBra 2
4446   12   3 Ket          Ket
4447   15  15 Ket          Ket
4448   18     End          End
4449  ------------------------------------------------------------------  ------------------------------------------------------------------
4450  Capturing subpattern count = 2  Capturing subpattern count = 2
4451  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4576  No options Line 4455  No options
4455  No first char  No first char
4456  No need char  No need char
4457    
4458  /(?P<Test>)(?P<Tes>)/D  /(?P<Test>)(?P<Tes>)/DZ
4459  ------------------------------------------------------------------  ------------------------------------------------------------------
4460    0  15 Bra 0          Bra
4461    3   3 Bra 1          CBra 1
4462    6   3 Ket          Ket
4463    9   3 Bra 2          CBra 2
4464   12   3 Ket          Ket
4465   15  15 Ket          Ket
4466   18     End          End
4467  ------------------------------------------------------------------  ------------------------------------------------------------------
4468  Capturing subpattern count = 2  Capturing subpattern count = 2
4469  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4594  No options Line 4473  No options
4473  No first char  No first char
4474  No need char  No need char
4475    
4476  /(?P<Z>zz)(?P<A>aa)/  /(?P<Z>zz)(?P<A>aa)/I
4477  Capturing subpattern count = 2  Capturing subpattern count = 2
4478  Named capturing subpatterns:  Named capturing subpatterns:
4479    A   2    A   2
# Line 4613  Need char = 'a' Line 4492  Need char = 'a'
4492   2: aa   2: aa
4493    C aa (2) A    C aa (2) A
4494    
4495  /(?P<x>eks)(?P<x>eccs)/  /(?P<x>eks)(?P<x>eccs)/I
4496  Failed: two named subpatterns have the same name at offset 16  Failed: two named subpatterns have the same name at offset 15
4497    
4498  /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/  /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4499  Failed: two named subpatterns have the same name at offset 31  Failed: two named subpatterns have the same name at offset 30
4500    
4501  "\[((?P<elem>\d+)(,(?P>elem))*)\]"  "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
4502  Capturing subpattern count = 3  Capturing subpattern count = 3
4503  Named capturing subpatterns:  Named capturing subpatterns:
4504    elem   2    elem   2
 Partial matching not supported  
4505  No options  No options
4506  First char = '['  First char = '['
4507  Need char = ']'  Need char = ']'
# Line 4634  Need char = ']' Line 4512  Need char = ']'
4512   3: ,4234   3: ,4234
4513      *** Failers      *** Failers
4514  No match  No match
4515      []      []
4516  No match  No match
4517    
4518  "\[((?P<elem>\d+)(,(?P>elem))*)?\]"  "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
4519  Capturing subpattern count = 3  Capturing subpattern count = 3
4520  Named capturing subpatterns:  Named capturing subpatterns:
4521    elem   2    elem   2
 Partial matching not supported  
4522  No options  No options
4523  First char = '['  First char = '['
4524  Need char = ']'  Need char = ']'
# Line 4650  Need char = ']' Line 4527  Need char = ']'
4527   1: 10,20,30,5,5,4,4,2,43,23,4234   1: 10,20,30,5,5,4,4,2,43,23,4234
4528   2: 10   2: 10
4529   3: ,4234   3: ,4234
4530      []      []
4531   0: []   0: []
4532    
4533  /(a(b(?2)c))?/D  /(a(b(?2)c))?/DZ
4534  ------------------------------------------------------------------  ------------------------------------------------------------------
4535    0  31 Bra 0          Bra
4536    3     Brazero          Brazero
4537    4  24 Bra 1          CBra 1
4538    7     a          a
4539    9  16 Bra 2          CBra 2
4540   12     b          b
4541   14   6 Once          Once
4542   17   9 Recurse          Recurse
4543   20   6 Ket          Ket
4544   23     c          c
4545   25  16 Ket          Ket
4546   28  24 Ket          Ket
4547   31  31 Ket          Ket
4548   34     End          End
4549  ------------------------------------------------------------------  ------------------------------------------------------------------
4550  Capturing subpattern count = 2  Capturing subpattern count = 2
4551  No options  No options
4552  No first char  No first char
4553  No need char  No need char
4554    
4555  /(a(b(?2)c))*/D  /(a(b(?2)c))*/DZ
4556  ------------------------------------------------------------------  ------------------------------------------------------------------
4557    0  31 Bra 0          Bra
4558    3     Brazero          Brazero
4559    4  24 Bra 1          CBra 1
4560    7     a          a
4561    9  16 Bra 2          CBra 2
4562   12     b          b
4563   14   6 Once          Once
4564   17   9 Recurse          Recurse
4565   20   6 Ket          Ket
4566   23     c          c
4567   25  16 Ket          Ket
4568   28  24 KetRmax          KetRmax
4569   31  31 Ket          Ket
4570   34     End          End
4571  ------------------------------------------------------------------  ------------------------------------------------------------------
4572  Capturing subpattern count = 2  Capturing subpattern count = 2
4573  No options  No options
4574  No first char  No first char
4575  No need char  No need char
4576    
4577  /(a(b(?2)c)){0,2}/D  /(a(b(?2)c)){0,2}/DZ
4578  ------------------------------------------------------------------  ------------------------------------------------------------------
4579    0  65 Bra 0          Bra
4580    3     Brazero          Brazero
4581    4  58 Bra 0          Bra
4582    7  24 Bra 1          CBra 1
4583   10     a          a
4584   12  16 Bra 2          CBra 2
4585   15     b          b
4586   17   6 Once          Once
4587   20  12 Recurse          Recurse
4588   23   6 Ket          Ket
4589   26     c          c
4590   28  16 Ket          Ket
4591   31  24 Ket          Ket
4592   34     Brazero          Brazero
4593   35  24 Bra 1          CBra 1
4594   38     a          a
4595   40  16 Bra 2          CBra 2
4596   43     b          b
4597   45   6 Once          Once
4598   48  12 Recurse          Recurse
4599   51   6 Ket          Ket
4600   54     c          c
4601   56  16 Ket          Ket
4602   59  24 Ket          Ket
4603   62  58 Ket          Ket
4604   65  65 Ket          Ket
4605   68     End          End
4606  ------------------------------------------------------------------  ------------------------------------------------------------------
4607  Capturing subpattern count = 2  Capturing subpattern count = 2
4608  No options  No options
4609  No first char  No first char
4610  No need char  No need char
4611    
4612  /[ab]{1}+/D  /[ab]{1}+/DZ
4613  ------------------------------------------------------------------  ------------------------------------------------------------------
4614    0  47 Bra 0          Bra
4615    3  41 Once          Once
4616    6     [ab]{1,1}          [ab]{1,1}
4617   44  41 Ket          Ket
4618   47  47 Ket          Ket
4619   50     End          End
4620  ------------------------------------------------------------------  ------------------------------------------------------------------
4621  Capturing subpattern count = 0  Capturing subpattern count = 0
4622  No options  No options
4623  No first char  No first char
4624  No need char  No need char
4625    
4626  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/i  /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4627  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported