/[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 771 by ph10, Tue Nov 29 15:34:12 2011 UTC
# Line 1  Line 1 
1  /(a)b|/  /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is a possible Perl
6        bug.
7    
8        NOTE: This is a non-UTF-8 set of tests. When UTF-8 is needed, use test
9        5, and if Unicode Property Support is needed, use test 13. --/
10    
11    /-- Originally, the Perl >= 5.10 things were in here too, but now I have
12        separated many (most?) of them out into test 11. However, there may still
13        be some that were overlooked. --/
14    
15    /(a)b|/I
16  Capturing subpattern count = 1  Capturing subpattern count = 1
17  No options  No options
18  No first char  No first char
19  No need char  No need char
20    
21  /abc/  /abc/I
22  Capturing subpattern count = 0  Capturing subpattern count = 0
23  No options  No options
24  First char = 'a'  First char = 'a'
# Line 22  No match Line 36  No match
36      ABC      ABC
37  No match  No match
38    
39  /^abc/  /^abc/I
40  Capturing subpattern count = 0  Capturing subpattern count = 0
41  Options: anchored  Options: anchored
42  No first char  No first char
# Line 38  No match Line 52  No match
52      \Adefabc      \Adefabc
53  No match  No match
54    
55  /a+bc/  /a+bc/I
56  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
57  No options  No options
58  First char = 'a'  First char = 'a'
59  Need char = 'c'  Need char = 'c'
60    
61  /a*bc/  /a*bc/I
62  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
63  No options  No options
64  No first char  No first char
65  Need char = 'c'  Need char = 'c'
66    
67  /a{3}bc/  /a{3}bc/I
68  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
69  No options  No options
70  First char = 'a'  First char = 'a'
71  Need char = 'c'  Need char = 'c'
72    
73  /(abc|a+z)/  /(abc|a+z)/I
74  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
75  No options  No options
76  First char = 'a'  First char = 'a'
77  No need char  No need char
78    
79  /^abc$/  /^abc$/I
80  Capturing subpattern count = 0  Capturing subpattern count = 0
81  Options: anchored  Options: anchored
82  No first char  No first char
# Line 78  No match Line 88  No match
88      def\nabc      def\nabc
89  No match  No match
90    
91  /ab\gdef/X  /ab\idef/X
92  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
93    
94  /(?X)ab\gdef/X  /(?X)ab\idef/X
95  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
96    
97  /x{5,4}/  /x{5,4}/
# Line 96  Failed: missing terminating ] for charac Line 106  Failed: missing terminating ] for charac
106  /(?X)[\B]/  /(?X)[\B]/
107  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\R]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /(?X)[\X]/
113    Failed: invalid escape sequence in character class at offset 6
114    
115    /[\B]/BZ
116    ------------------------------------------------------------------
117            Bra
118            B
119            Ket
120            End
121    ------------------------------------------------------------------
122    
123    /[\R]/BZ
124    ------------------------------------------------------------------
125            Bra
126            R
127            Ket
128            End
129    ------------------------------------------------------------------
130    
131    /[\X]/BZ
132    ------------------------------------------------------------------
133            Bra
134            X
135            Ket
136            End
137    ------------------------------------------------------------------
138    
139  /[z-a]/  /[z-a]/
140  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
141    
# Line 109  Failed: missing ) at offset 4 Line 149  Failed: missing ) at offset 4
149  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
150    
151  /(?z)abc/  /(?z)abc/
152  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
153    
154  /.*b/  /.*b/I
155  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
156  No options  No options
157  First char at start or follows newline  First char at start or follows newline
158  Need char = 'b'  Need char = 'b'
159    
160  /.*?b/  /.*?b/I
161  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
162  No options  No options
163  First char at start or follows newline  First char at start or follows newline
164  Need char = 'b'  Need char = 'b'
165    
166  /cat|dog|elephant/  /cat|dog|elephant/I
167  Capturing subpattern count = 0  Capturing subpattern count = 0
168  No options  No options
169  No first char  No first char
# Line 135  No need char Line 173  No need char
173      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
174   0: elephant   0: elephant
175    
176  /cat|dog|elephant/S  /cat|dog|elephant/IS
177  Capturing subpattern count = 0  Capturing subpattern count = 0
178  No options  No options
179  No first char  No first char
180  No need char  No need char
181    Subject length lower bound = 3
182  Starting byte set: c d e  Starting byte set: c d e
183      this sentence eventually mentions a cat      this sentence eventually mentions a cat
184   0: cat   0: cat
185      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
186   0: elephant   0: elephant
187    
188  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
189  Capturing subpattern count = 0  Capturing subpattern count = 0
190  Options: caseless  Options: caseless
191  No first char  No first char
192  No need char  No need char
193    Subject length lower bound = 3
194  Starting byte set: C D E c d e  Starting byte set: C D E c d e
195      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
196   0: CAT   0: CAT
197      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
198   0: elephant   0: elephant
199    
200  /a|[bcd]/S  /a|[bcd]/IS
201  Capturing subpattern count = 0  Capturing subpattern count = 0
202  No options  No options
203  No first char  No first char
204  No need char  No need char
205    Subject length lower bound = 1
206  Starting byte set: a b c d  Starting byte set: a b c d
207    
208  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
209  Capturing subpattern count = 1  Capturing subpattern count = 1
210  No options  No options
211  No first char  No first char
212  No need char  No need char
213    Subject length lower bound = 1
214  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
215    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
216    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 184  Starting byte set: \x00 \x01 \x02 \x03 \ Line 226  Starting byte set: \x00 \x01 \x02 \x03 \
226    \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
227    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
228    
229  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
230  Capturing subpattern count = 1  Capturing subpattern count = 1
231  No options  No options
232  No first char  No first char
233  No need char  No need char
234    Subject length lower bound = 1
235  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
236    
237  /(ab\2)/  /(ab\2)/
# Line 197  Failed: reference to non-existent subpat Line 240  Failed: reference to non-existent subpat
240  /{4,5}abc/  /{4,5}abc/
241  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
242    
243  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
244  Capturing subpattern count = 3  Capturing subpattern count = 3
245  Max back reference = 2  Max back reference = 2
246  No options  No options
# Line 222  Matched, but too many substrings Line 265  Matched, but too many substrings
265   0: abcb   0: abcb
266   1: a   1: a
267   2: b   2: b
268      \O12abcb      \O12abcb
269   0: abcb   0: abcb
270   1: a   1: a
271   2: b   2: b
272   3: c   3: c
273    
274  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
275  Capturing subpattern count = 3  Capturing subpattern count = 3
276  Max back reference = 2  Max back reference = 2
277  No options  No options
# Line 270  Matched, but too many substrings Line 313  Matched, but too many substrings
313   2: a   2: a
314   3: b   3: b
315    
316  /abc$/E  /abc$/IE
317  Capturing subpattern count = 0  Capturing subpattern count = 0
318  Options: dollar_endonly  Options: dollar_endonly
319  First char = 'a'  First char = 'a'
# Line 287  No match Line 330  No match
330  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
331  Failed: reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
332    
333  /the quick brown fox/  /the quick brown fox/I
334  Capturing subpattern count = 0  Capturing subpattern count = 0
335  No options  No options
336  First char = 't'  First char = 't'
# Line 297  Need char = 'x' Line 340  Need char = 'x'
340      this is a line with the quick brown fox      this is a line with the quick brown fox
341   0: the quick brown fox   0: the quick brown fox
342    
343  /the quick brown fox/A  /the quick brown fox/IA
344  Capturing subpattern count = 0  Capturing subpattern count = 0
345  Options: anchored  Options: anchored
346  No first char  No first char
# Line 310  No match Line 353  No match
353  No match  No match
354    
355  /ab(?z)cd/  /ab(?z)cd/
356  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
357    
358  /^abc|def/  /^abc|def/I
359  Capturing subpattern count = 0  Capturing subpattern count = 0
360  No options  No options
361  No first char  No first char
# Line 322  No need char Line 365  No need char
365      abcdef\B      abcdef\B
366   0: def   0: def
367    
368  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
369  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
370  No options  No options
371  First char at start or follows newline  First char at start or follows newline
372  No need char  No need char
# Line 343  No need char Line 385  No need char
385   0: abc   0: abc
386      *** Failers      *** Failers
387  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
388    
389  /^abc|def/P  /^abc|def/P
390      abcdef      abcdef
391   0: abc   0: abc
# Line 359  No match: POSIX code 17: match failed Line 401  No match: POSIX code 17: match failed
401   0: def   0: def
402   1: def   1: def
403   3: def   3: def
404    
405  /the quick brown fox/P  /the quick brown fox/P
406      the quick brown fox      the quick brown fox
407   0: the quick brown fox   0: the quick brown fox
408      *** Failers      *** Failers
409  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
410      The Quick Brown Fox      The Quick Brown Fox
411  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
412    
413  /the quick brown fox/Pi  /the quick brown fox/Pi
414      the quick brown fox      the quick brown fox
415   0: the quick brown fox   0: the quick brown fox
416      The Quick Brown Fox      The Quick Brown Fox
417   0: The Quick Brown Fox   0: The Quick Brown Fox
418    
419  /abc.def/P  /abc.def/P
# Line 379  No match: POSIX code 17: match failed Line 421  No match: POSIX code 17: match failed
421  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
422      abc\ndef      abc\ndef
423  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
424    
425  /abc$/P  /abc$/P
426      abc      abc
427   0: abc   0: abc
428      abc\n      abc\n
429   0: abc   0: abc
430    
431  /(abc)\2/P  /(abc)\2/P
# Line 399  Failed: unmatched parentheses at offset Line 441  Failed: unmatched parentheses at offset
441  /a[]b/  /a[]b/
442  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
443    
444  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
445  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
446  No options  No options
447  No first char  No first char
448  No need char  No need char
449      co-processors, and for      co-processors, and for
450   0: -pr   0: -pr
451    
452  /<.*>/  /<.*>/I
453  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
454  No options  No options
455  First char = '<'  First char = '<'
456  Need char = '>'  Need char = '>'
457      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
458   0: <def>ghi<klm>   0: <def>ghi<klm>
459    
460  /<.*?>/  /<.*?>/I
461  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
462  No options  No options
463  First char = '<'  First char = '<'
464  Need char = '>'  Need char = '>'
465      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
466   0: <def>   0: <def>
467    
468  /<.*>/U  /<.*>/IU
469  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
470  Options: ungreedy  Options: ungreedy
471  First char = '<'  First char = '<'
472  Need char = '>'  Need char = '>'
473      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
474   0: <def>   0: <def>
475    
476  /(?U)<.*>/  /(?U)<.*>/I
477  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
478  Options: ungreedy  Options: ungreedy
479  First char = '<'  First char = '<'
480  Need char = '>'  Need char = '>'
481      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
482   0: <def>   0: <def>
483    
484  /<.*?>/U  /<.*?>/IU
485  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
486  Options: ungreedy  Options: ungreedy
487  First char = '<'  First char = '<'
488  Need char = '>'  Need char = '>'
489      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
490   0: <def>ghi<klm>   0: <def>ghi<klm>
491    
492  /={3,}/U  /={3,}/IU
493  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
494  Options: ungreedy  Options: ungreedy
495  First char = '='  First char = '='
496  Need char = '='  Need char = '='
497      abc========def      abc========def
498   0: ===   0: ===
499    
500  /(?U)={3,}?/  /(?U)={3,}?/I
501  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
502  Options: ungreedy  Options: ungreedy
503  First char = '='  First char = '='
504  Need char = '='  Need char = '='
505      abc========def      abc========def
506   0: ========   0: ========
507    
508  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
509  Capturing subpattern count = 0  Capturing subpattern count = 0
510  No options  No options
511  First char = 'f'  First char = 'f'
512  Need char = 'o'  Need char = 'o'
513      foo      foo
514   0: foo   0: foo
515      catfoo      catfoo
516   0: foo   0: foo
517      *** Failers      *** Failers
518  No match  No match
519      the barfoo      the barfoo
520  No match  No match
521      and cattlefoo      and cattlefoo
522  No match  No match
523    
524  /(?<=a+)b/  /(?<=a+)b/
# Line 496  Failed: lookbehind assertion is not fixe Line 530  Failed: lookbehind assertion is not fixe
530  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
531  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
532    
533  /(?i)abc/  /(?i)abc/I
534  Capturing subpattern count = 0  Capturing subpattern count = 0
535  Options: caseless  Options: caseless
536  First char = 'a' (caseless)  First char = 'a' (caseless)
537  Need char = 'c' (caseless)  Need char = 'c' (caseless)
538    
539  /(a|(?m)a)/  /(a|(?m)a)/I
540  Capturing subpattern count = 1  Capturing subpattern count = 1
541  No options  No options
542  First char = 'a'  First char = 'a'
543  No need char  No need char
544    
545  /(?i)^1234/  /(?i)^1234/I
546  Capturing subpattern count = 0  Capturing subpattern count = 0
547  Options: anchored caseless  Options: anchored caseless
548  No first char  No first char
549  No need char  No need char
550    
551  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
552  Capturing subpattern count = 1  Capturing subpattern count = 1
553  Options: anchored  Options: anchored
554  No first char  No first char
555  No need char  No need char
556    
557  /(?s).*/  /(?s).*/I
558  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
559  Options: anchored dotall  Options: anchored dotall
560  No first char  No first char
561  No need char  No need char
562    
563  /[abcd]/S  /[abcd]/IS
564  Capturing subpattern count = 0  Capturing subpattern count = 0
565  No options  No options
566  No first char  No first char
567  No need char  No need char
568    Subject length lower bound = 1
569  Starting byte set: a b c d  Starting byte set: a b c d
570    
571  /(?i)[abcd]/S  /(?i)[abcd]/IS
572  Capturing subpattern count = 0  Capturing subpattern count = 0
573  Options: caseless  Options: caseless
574  No first char  No first char
575  No need char  No need char
576    Subject length lower bound = 1
577  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
578    
579  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
580  Capturing subpattern count = 1  Capturing subpattern count = 1
581  Options: multiline  Options: multiline
582  No first char  No first char
583  No need char  No need char
584    Subject length lower bound = 1
585  Starting byte set: b c x y  Starting byte set: b c x y
586    
587  /(^a|^b)/m  /(^a|^b)/Im
588  Capturing subpattern count = 1  Capturing subpattern count = 1
589  Options: multiline  Options: multiline
590  First char at start or follows newline  First char at start or follows newline
591  No need char  No need char
592    
593  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
594  Capturing subpattern count = 1  Capturing subpattern count = 1
595  Options: caseless multiline  Options: caseless multiline
596  First char at start or follows newline  First char at start or follows newline
# Line 567  Failed: conditional group contains more Line 603  Failed: conditional group contains more
603  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
604    
605  /(?(1a)/  /(?(1a)/
606    Failed: missing ) at offset 6
607    
608    /(?(1a))/
609  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
610    
611  /(?(?i))/  /(?(?i))/
# Line 576  Failed: assertion expected after (?( at Line 615  Failed: assertion expected after (?( at
615  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
616    
617  /(?(?<ab))/  /(?(?<ab))/
618  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
619    
620  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
621  Capturing subpattern count = 1  Capturing subpattern count = 1
622  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
623  No options  No options
624  First char = 'b'  First char = 'b'
625  Need char = 'h'  Need char = 'h'
626    
627  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
628  Capturing subpattern count = 1  Capturing subpattern count = 1
629  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
630  No options  No options
631  First char = 'b' (caseless)  First char = 'b' (caseless)
632  Need char = 'h' (caseless)  Need char = 'h' (caseless)
633    
634  /((?i)b)/DS  /((?i)b)/IDZS
635  ------------------------------------------------------------------  ------------------------------------------------------------------
636    0  15 Bra 0          Bra
637    3   7 Bra 1          CBra 1
638    6  01 Opt       /i b
639    8  NC b          Ket
640   10   7 Ket          Ket
641   13  00 Opt          End
  15  15 Ket  
  18     End  
642  ------------------------------------------------------------------  ------------------------------------------------------------------
643  Capturing subpattern count = 1  Capturing subpattern count = 1
644  No options  No options
645  First char = 'b' (caseless)  First char = 'b' (caseless)
646  No need char  No need char
647  Study returned NULL  Subject length lower bound = 1
648    No set of starting bytes
649    
650  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
651  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
652  No options  No options
653  No first char  No first char
654  No need char  No need char
655    Subject length lower bound = 1
656  Starting byte set: C a b c d  Starting byte set: C a b c d
657    
658  /a$/  /a$/I
659  Capturing subpattern count = 0  Capturing subpattern count = 0
660  No options  No options
661  First char = 'a'  First char = 'a'
# Line 628  No need char Line 664  No need char
664   0: a   0: a
665      a\n      a\n
666   0: a   0: a
667      *** Failers      *** Failers
668  No match  No match
669      \Za      \Za
670  No match  No match
671      \Za\n      \Za\n
672  No match  No match
673    
674  /a$/m  /a$/Im
675  Capturing subpattern count = 0  Capturing subpattern count = 0
676  Options: multiline  Options: multiline
677  First char = 'a'  First char = 'a'
# Line 644  No need char Line 680  No need char
680   0: a   0: a
681      a\n      a\n
682   0: a   0: a
683      \Za\n      \Za\n
684   0: a   0: a
685      *** Failers      *** Failers
686  No match  No match
687      \Za      \Za
688  No match  No match
689    
690  /\Aabc/m  /\Aabc/Im
691  Capturing subpattern count = 0  Capturing subpattern count = 0
692  Options: anchored multiline  Options: anchored multiline
693  No first char  No first char
694  No need char  No need char
695    
696  /^abc/m  /^abc/Im
697  Capturing subpattern count = 0  Capturing subpattern count = 0
698  Options: multiline  Options: multiline
699  First char at start or follows newline  First char at start or follows newline
700  Need char = 'c'  Need char = 'c'
701    
702  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
703  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
704  Options: anchored  Options: anchored
705  No first char  No first char
706  No need char  No need char
# Line 677  No need char Line 712  No need char
712   4: bbbbccccc   4: bbbbccccc
713   5: def   5: def
714    
715  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
716  Capturing subpattern count = 0  Capturing subpattern count = 0
717  No options  No options
718  No first char  No first char
719  No need char  No need char
720    Subject length lower bound = 1
721  Starting byte set: a b  Starting byte set: a b
722    
723  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
724  Capturing subpattern count = 1  Capturing subpattern count = 1
725  No options  No options
726  No first char  No first char
727  Need char = 'a'  Need char = 'a'
728    Subject length lower bound = 5
729  Starting byte set: a o  Starting byte set: a o
730    
731  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
732  Capturing subpattern count = 0  Capturing subpattern count = 0
733  No options  No options
734  No first char  No first char
735  No need char  No need char
736    Subject length lower bound = 1
737  Starting byte set: a b  Starting byte set: a b
738    
739  /(?<=foo\n)^bar/m  /(?<=foo\n)^bar/Im
740  Capturing subpattern count = 0  Capturing subpattern count = 0
741    Contains explicit CR or LF match
742  Options: multiline  Options: multiline
743  No first char  No first char
744  Need char = 'r'  Need char = 'r'
745      foo\nbarbar      foo\nbarbar
746   0: bar   0: bar
747      ***Failers      ***Failers
748  No match  No match
749      rhubarb      rhubarb
750  No match  No match
751      barbell      barbell
752  No match  No match
753      abc\nbarton      abc\nbarton
754  No match  No match
755    
756  /^(?<=foo\n)bar/m  /^(?<=foo\n)bar/Im
757  Capturing subpattern count = 0  Capturing subpattern count = 0
758    Contains explicit CR or LF match
759  Options: multiline  Options: multiline
760  First char at start or follows newline  First char at start or follows newline
761  Need char = 'r'  Need char = 'r'
762      foo\nbarbar      foo\nbarbar
763   0: bar   0: bar
764      ***Failers      ***Failers
765  No match  No match
766      rhubarb      rhubarb
767  No match  No match
768      barbell      barbell
769  No match  No match
770      abc\nbarton      abc\nbarton
771  No match  No match
772    
773  /(?>^abc)/m  /(?>^abc)/Im
774  Capturing subpattern count = 0  Capturing subpattern count = 0
775  Options: multiline  Options: multiline
776  First char at start or follows newline  First char at start or follows newline
# Line 741  Need char = 'c' Line 781  Need char = 'c'
781   0: abc   0: abc
782      *** Failers      *** Failers
783  No match  No match
784      defabc      defabc
785  No match  No match
786    
787  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 754  Failed: lookbehind assertion is not fixe Line 794  Failed: lookbehind assertion is not fixe
794  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
795    
796  /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'  
797    
798  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
799  Capturing subpattern count = 0  Capturing subpattern count = 0
800  No options  No options
801  First char = '-'  First char = '-'
# Line 772  Need char = 't' Line 808  Need char = 't'
808  No match  No match
809      cart      cart
810  No match  No match
811      horse-and-cart      horse-and-cart
812  No match  No match
813    
814  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
815  Capturing subpattern count = 0  Capturing subpattern count = 0
816  No options  No options
817  No first char  No first char
818  No need char  No need char
819    
820  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
821  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
822  No options  No options
823  First char at start or follows newline  First char at start or follows newline
824  No need char  No need char
# Line 795  No need char Line 830  No need char
830   1: <unset>   1: <unset>
831   2: xyz   2: xyz
832    
833  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
834  Capturing subpattern count = 0  Capturing subpattern count = 0
835  No options  No options
836  First char = 'Z'  First char = 'Z'
# Line 810  Need char = 'Z' Line 845  Need char = 'Z'
845   0: ZZ   0: ZZ
846      bZZ      bZZ
847   0: ZZ   0: ZZ
848      BZZ      BZZ
849   0: ZZ   0: ZZ
850      *** Failers      *** Failers
851  No match  No match
852      ZZ      ZZ
853  No match  No match
854      abXYZZ      abXYZZ
855  No match  No match
856      zzz      zzz
857  No match  No match
858      bzz      bzz
859  No match  No match
860    
861  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
862  Capturing subpattern count = 1  Capturing subpattern count = 1
863  No options  No options
864  First char = 'b'  First char = 'b'
865  Need char = 'r'  Need char = 'r'
866      bar      bar
867   0: bar   0: bar
868      foobbar      foobbar
869   0: bar   0: bar
870      *** Failers      *** Failers
871  No match  No match
872      fooabar      fooabar
873  No match  No match
874    
875  /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
876  Capturing subpattern count = 0  Capturing subpattern count = 0
877  No options  No options
878  First char = 'T'  First char = 'T'
879  Need char = 't'  Need char = 't'
880    
881  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
882  Capturing subpattern count = 1  Capturing subpattern count = 1
883  Options: anchored  Options: anchored
884  No first char  No first char
885  No need char  No need char
886      *** Failers      *** Failers
887  No match  No match
888      a      a
889  No match  No match
890    
891  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/  /This one is here because Perl behaves differently; see also the following/I
892  Capturing subpattern count = 0  Capturing subpattern count = 0
893  No options  No options
894  First char = 'T'  First char = 'T'
895  Need char = 'g'  Need char = 'g'
896    
897  /^(a\1?){4}$/  /^(a\1?){4}$/I
898  Capturing subpattern count = 1  Capturing subpattern count = 1
899  Max back reference = 1  Max back reference = 1
900  Options: anchored  Options: anchored
901  No first char  No first char
902  No need char  No need char
903        aaaa
904    No match
905      aaaaaa      aaaaaa
906   0: aaaaaa  No match
  1: aa  
907    
908  /These are syntax tests from Perl 5.005/  /Perl does not fail these two for the final subjects. Neither did PCRE until/
909    /release 8.01. The problem is in backtracking into a subpattern that contains/
910    No match
911    /a recursive reference to itself. PCRE has now made these into atomic patterns./
912    No match
913    
914    /^(xa|=?\1a){2}$/
915        xa=xaa
916     0: xa=xaa
917     1: =xaa
918        ** Failers
919    No match
920        xa=xaaa
921    No match
922    
923    /^(xa|=?\1a)+$/
924        xa=xaa
925     0: xa=xaa
926     1: =xaa
927        ** Failers
928    No match
929        xa=xaaa
930    No match
931    
932    /These are syntax tests from Perl 5.005/I
933  Capturing subpattern count = 0  Capturing subpattern count = 0
934  No options  No options
935  First char = 'T'  First char = 'T'
# Line 911  Failed: reference to non-existent subpat Line 971  Failed: reference to non-existent subpat
971  /(a)|\2/  /(a)|\2/
972  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
973    
974  /a[b-a]/i  /a[b-a]/Ii
975  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
976    
977  /a[]b/i  /a[]b/Ii
978  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
979    
980  /a[/i  /a[/Ii
981  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
982    
983  /*a/i  /*a/Ii
984  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
985    
986  /(*)b/i  /(*)b/Ii
987  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
988    
989  /abc)/i  /abc)/Ii
990  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
991    
992  /(abc/i  /(abc/Ii
993  Failed: missing ) at offset 4  Failed: missing ) at offset 4
994    
995  /a**/i  /a**/Ii
996  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
997    
998  /)(/i  /)(/Ii
999  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
1000    
1001  /:(?:/  /:(?:/
# Line 945  Failed: missing ) at offset 4 Line 1005  Failed: missing ) at offset 4
1005  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
1006    
1007  /a(?{)b/  /a(?{)b/
1008  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1009    
1010  /a(?{{})b/  /a(?{{})b/
1011  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1012    
1013  /a(?{}})b/  /a(?{}})b/
1014  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1015    
1016  /a(?{"{"})b/  /a(?{"{"})b/
1017  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1018    
1019  /a(?{"{"}})b/  /a(?{"{"}})b/
1020  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1021    
1022  /(?(1?)a|b)/  /(?(1?)a|b)/
1023  Failed: malformed number or name after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
1024    
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
   
1025  /[a[:xyz:/  /[a[:xyz:/
1026  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
1027    
# Line 983  Failed: POSIX code 9: bad escape sequenc Line 1040  Failed: POSIX code 9: bad escape sequenc
1040  /abc/\i  /abc/\i
1041  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
1042    
1043  /(a)bc(d)/  /(a)bc(d)/I
1044  Capturing subpattern count = 2  Capturing subpattern count = 2
1045  No options  No options
1046  First char = 'a'  First char = 'a'
# Line 1002  Need char = 'd' Line 1059  Need char = 'd'
1059   1: a   1: a
1060   2: d   2: d
1061  copy substring 5 failed -7  copy substring 5 failed -7
1062    
1063  /(.{20})/  /(.{20})/I
1064  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1065  No options  No options
1066  No first char  No first char
1067  No need char  No need char
# Line 1020  No need char Line 1076  No need char
1076   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1077   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1078   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1079    
1080  /(.{15})/  /(.{15})/I
1081  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1082  No options  No options
1083  No first char  No first char
1084  No need char  No need char
# Line 1036  No need char Line 1091  No need char
1091   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1092   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1093    
1094  /(.{16})/  /(.{16})/I
1095  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1096  No options  No options
1097  No first char  No first char
1098  No need char  No need char
# Line 1052  No need char Line 1106  No need char
1106   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1107   0L abcdefghijklmnop   0L abcdefghijklmnop
1108   1L abcdefghijklmnop   1L abcdefghijklmnop
1109    
1110  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1111  Capturing subpattern count = 3  Capturing subpattern count = 3
1112  Options: anchored  Options: anchored
1113  No first char  No first char
1114  No need char  No need char
1115      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1116   0: adef   0: adef
1117   1: a   1: a
1118   2: <unset>   2: <unset>
# Line 1071  get substring 4 failed -7 Line 1125  get substring 4 failed -7
1125   1L a   1L a
1126   2L   2L
1127   3L f   3L f
1128      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1129   0: bcdef   0: bcdef
1130   1: bc   1: bc
1131   2: bc   2: bc
# Line 1084  get substring 4 failed -7 Line 1138  get substring 4 failed -7
1138   1L bc   1L bc
1139   2L bc   2L bc
1140   3L f   3L f
1141      adefghijk\C0      adefghijk\C0
1142   0: adef   0: adef
1143   1: a   1: a
1144   2: <unset>   2: <unset>
1145   3: f   3: f
1146   0C adef (4)   0C adef (4)
1147    
1148  /^abc\00def/  /^abc\00def/I
1149  Capturing subpattern count = 0  Capturing subpattern count = 0
1150  Options: anchored  Options: anchored
1151  No first char  No first char
1152  No need char  No need char
1153      abc\00def\L\C0      abc\00def\L\C0
1154   0: abc\x00def   0: abc\x00def
1155   0C abc (7)   0C abc (7)
1156   0L abc   0L abc
1157    
1158  /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]+
1159  )((?:[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]+
1160  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 432  
1161  Capturing subpattern count = 8  Capturing subpattern count = 8
1162  Partial matching not supported  Contains explicit CR or LF match
1163  No options  No options
1164  First char = 'w'  First char = 'w'
1165  Need char = 'd'  Need char = 'd'
1166    
1167  /.*X/D  /.*X/IDZ
1168  ------------------------------------------------------------------  ------------------------------------------------------------------
1169    0   7 Bra 0          Bra
1170    3     Any*          Any*
1171    5     X          X
1172    7   7 Ket          Ket
1173   10     End          End
1174  ------------------------------------------------------------------  ------------------------------------------------------------------
1175  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1176  No options  No options
1177  First char at start or follows newline  First char at start or follows newline
1178  Need char = 'X'  Need char = 'X'
1179    
1180  /.*X/Ds  /.*X/IDZs
1181  ------------------------------------------------------------------  ------------------------------------------------------------------
1182    0   7 Bra 0          Bra
1183    3     Any*          AllAny*
1184    5     X          X
1185    7   7 Ket          Ket
1186   10     End          End
1187  ------------------------------------------------------------------  ------------------------------------------------------------------
1188  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1189  Options: anchored dotall  Options: anchored dotall
1190  No first char  No first char
1191  Need char = 'X'  Need char = 'X'
1192    
1193  /(.*X|^B)/D  /(.*X|^B)/IDZ
1194  ------------------------------------------------------------------  ------------------------------------------------------------------
1195    0  19 Bra 0          Bra
1196    3   7 Bra 1          CBra 1
1197    6     Any*          Any*
1198    8     X          X
1199   10   6 Alt          Alt
1200   13     ^          ^
1201   14     B          B
1202   16  13 Ket          Ket
1203   19  19 Ket          Ket
1204   22     End          End
1205  ------------------------------------------------------------------  ------------------------------------------------------------------
1206  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1207  No options  No options
1208  First char at start or follows newline  First char at start or follows newline
1209  No need char  No need char
1210    
1211  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1212  ------------------------------------------------------------------  ------------------------------------------------------------------
1213    0  19 Bra 0          Bra
1214    3   7 Bra 1          CBra 1
1215    6     Any*          AllAny*
1216    8     X          X
1217   10   6 Alt          Alt
1218   13     ^          ^
1219   14     B          B
1220   16  13 Ket          Ket
1221   19  19 Ket          Ket
1222   22     End          End
1223  ------------------------------------------------------------------  ------------------------------------------------------------------
1224  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1225  Options: anchored dotall  Options: anchored dotall
1226  No first char  No first char
1227  No need char  No need char
1228    
1229  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1230  ------------------------------------------------------------------  ------------------------------------------------------------------
1231    0  19 Bra 0          Bra
1232    3   7 Bra 1          CBra 1
1233    6     Any*          AllAny*
1234    8     X          X
1235   10   6 Alt          Alt
1236   13     ^          ^
1237   14     B          B
1238   16  13 Ket          Ket
1239   19  19 Ket          Ket
1240   22     End          End
1241  ------------------------------------------------------------------  ------------------------------------------------------------------
1242  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1243  Options: anchored dotall  Options: anchored dotall
1244  No first char  No first char
1245  No need char  No need char
1246    
1247  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1248  ------------------------------------------------------------------  ------------------------------------------------------------------
1249    0  25 Bra 0          Bra
1250    3   9 Bra 0          Bra
1251    6  04 Opt          AllAny*
1252    8     Any*          X
1253   10     X          Alt
1254   12   8 Alt          ^
1255   15  04 Opt          B
1256   17     ^          Ket
1257   18     B          Ket
1258   20  17 Ket          End
  23  00 Opt  
  25  25 Ket  
  28     End  
1259  ------------------------------------------------------------------  ------------------------------------------------------------------
1260  Capturing subpattern count = 0  Capturing subpattern count = 0
1261  Partial matching not supported  Options: anchored
1262  No options  No first char
 First char at start or follows newline  
1263  No need char  No need char
1264    
1265  /\Biss\B/+  /\Biss\B/I+
1266  Capturing subpattern count = 0  Capturing subpattern count = 0
1267  No options  No options
1268  First char = 'i'  First char = 'i'
# Line 1227  Need char = 's' Line 1271  Need char = 's'
1271   0: iss   0: iss
1272   0+ issippi   0+ issippi
1273    
1274  /\Biss\B/+P  /\Biss\B/I+P
1275      Mississippi      Mississippi
1276   0: iss   0: iss
1277   0+ issippi   0+ issippi
1278    
1279  /iss/G+  /iss/IG+
1280  Capturing subpattern count = 0  Capturing subpattern count = 0
1281  No options  No options
1282  First char = 'i'  First char = 'i'
# Line 1243  Need char = 's' Line 1287  Need char = 's'
1287   0: iss   0: iss
1288   0+ ippi   0+ ippi
1289    
1290  /\Biss\B/G+  /\Biss\B/IG+
1291  Capturing subpattern count = 0  Capturing subpattern count = 0
1292  No options  No options
1293  First char = 'i'  First char = 'i'
# Line 1252  Need char = 's' Line 1296  Need char = 's'
1296   0: iss   0: iss
1297   0+ issippi   0+ issippi
1298    
1299  /\Biss\B/g+  /\Biss\B/Ig+
1300  Capturing subpattern count = 0  Capturing subpattern count = 0
1301  No options  No options
1302  First char = 'i'  First char = 'i'
# Line 1267  No match Line 1311  No match
1311      Mississippi\A      Mississippi\A
1312  No match  No match
1313    
1314  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1315  Capturing subpattern count = 0  Capturing subpattern count = 0
1316  No options  No options
1317  First char = 'i'  First char = 'i'
# Line 1278  Need char = 's' Line 1322  Need char = 's'
1322   0: iss   0: iss
1323   0+ ippi   0+ ippi
1324    
1325  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1326  Capturing subpattern count = 0  Capturing subpattern count = 0
1327  No options  No options
1328  First char = 'i'  First char = 'i'
# Line 1287  Need char = 's' Line 1331  Need char = 's'
1331   0: iss   0: iss
1332   0+ issippi   0+ issippi
1333    
1334  /^iss/g+  /^iss/Ig+
1335  Capturing subpattern count = 0  Capturing subpattern count = 0
1336  Options: anchored  Options: anchored
1337  No first char  No first char
# Line 1295  No need char Line 1339  No need char
1339      ississippi      ississippi
1340   0: iss   0: iss
1341   0+ issippi   0+ issippi
1342    
1343  /.*iss/g+  /.*iss/Ig+
1344  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1345  No options  No options
1346  First char at start or follows newline  First char at start or follows newline
1347  Need char = 's'  Need char = 's'
1348      abciss\nxyzisspqr      abciss\nxyzisspqr
1349   0: abciss   0: abciss
1350   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1351   0: xyziss   0: xyziss
1352   0+ pqr   0+ pqr
1353    
1354  /.i./+g  /.i./I+g
1355  Capturing subpattern count = 0  Capturing subpattern count = 0
1356  No options  No options
1357  No first char  No first char
# Line 1334  Need char = 'i' Line 1377  Need char = 'i'
1377   0+ river   0+ river
1378   0: riv   0: riv
1379   0+ er   0+ er
1380      Missouri river\A      Missouri river\A
1381   0: Mis   0: Mis
1382   0+ souri river   0+ souri river
1383    
1384  /^.is/+g  /^.is/I+g
1385  Capturing subpattern count = 0  Capturing subpattern count = 0
1386  Options: anchored  Options: anchored
1387  No first char  No first char
# Line 1347  No need char Line 1390  No need char
1390   0: Mis   0: Mis
1391   0+ sissippi   0+ sissippi
1392    
1393  /^ab\n/g+  /^ab\n/Ig+
1394  Capturing subpattern count = 0  Capturing subpattern count = 0
1395    Contains explicit CR or LF match
1396  Options: anchored  Options: anchored
1397  No first char  No first char
1398  No need char  No need char
# Line 1356  No need char Line 1400  No need char
1400   0: ab\x0a   0: ab\x0a
1401   0+ ab\x0acd   0+ ab\x0acd
1402    
1403  /^ab\n/mg+  /^ab\n/Img+
1404  Capturing subpattern count = 0  Capturing subpattern count = 0
1405    Contains explicit CR or LF match
1406  Options: multiline  Options: multiline
1407  First char at start or follows newline  First char at start or follows newline
1408  Need char = 10  Need char = 10
# Line 1367  Need char = 10 Line 1412  Need char = 10
1412   0: ab\x0a   0: ab\x0a
1413   0+ cd   0+ cd
1414    
1415  /abc/  /abc/I
1416  Capturing subpattern count = 0  Capturing subpattern count = 0
1417  No options  No options
1418  First char = 'a'  First char = 'a'
1419  Need char = 'c'  Need char = 'c'
1420    
1421  /abc|bac/  /abc|bac/I
1422  Capturing subpattern count = 0  Capturing subpattern count = 0
1423  No options  No options
1424  No first char  No first char
1425  Need char = 'c'  Need char = 'c'
1426    
1427  /(abc|bac)/  /(abc|bac)/I
1428  Capturing subpattern count = 1  Capturing subpattern count = 1
1429  No options  No options
1430  No first char  No first char
1431  Need char = 'c'  Need char = 'c'
1432    
1433  /(abc|(c|dc))/  /(abc|(c|dc))/I
1434  Capturing subpattern count = 2  Capturing subpattern count = 2
1435  No options  No options
1436  No first char  No first char
1437  Need char = 'c'  Need char = 'c'
1438    
1439  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1440  Capturing subpattern count = 2  Capturing subpattern count = 2
1441  No options  No options
1442  No first char  No first char
1443  Need char = 'c'  Need char = 'c'
1444    
1445  /a*/  /a*/I
1446  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1447  No options  No options
1448  No first char  No first char
1449  No need char  No need char
1450    
1451  /a+/  /a+/I
1452  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1453  No options  No options
1454  First char = 'a'  First char = 'a'
1455  No need char  No need char
1456    
1457  /(baa|a+)/  /(baa|a+)/I
1458  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1459  No options  No options
1460  No first char  No first char
1461  Need char = 'a'  Need char = 'a'
1462    
1463  /a{0,3}/  /a{0,3}/I
1464  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1465  No options  No options
1466  No first char  No first char
1467  No need char  No need char
1468    
1469  /baa{3,}/  /baa{3,}/I
1470  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1471  No options  No options
1472  First char = 'b'  First char = 'b'
1473  Need char = 'a'  Need char = 'a'
1474    
1475  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1476  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1477  No options  No options
1478  First char = '"'  First char = '"'
1479  Need char = '"'  Need char = '"'
1480    
1481  /(abc|ab[cd])/  /(abc|ab[cd])/I
1482  Capturing subpattern count = 1  Capturing subpattern count = 1
1483  No options  No options
1484  First char = 'a'  First char = 'a'
1485  No need char  No need char
1486    
1487  /(a|.)/  /(a|.)/I
1488  Capturing subpattern count = 1  Capturing subpattern count = 1
1489  No options  No options
1490  No first char  No first char
1491  No need char  No need char
1492    
1493  /a|ba|\w/  /a|ba|\w/I
1494  Capturing subpattern count = 0  Capturing subpattern count = 0
1495  No options  No options
1496  No first char  No first char
1497  No need char  No need char
1498    
1499  /abc(?=pqr)/  /abc(?=pqr)/I
1500  Capturing subpattern count = 0  Capturing subpattern count = 0
1501  No options  No options
1502  First char = 'a'  First char = 'a'
1503  Need char = 'r'  Need char = 'r'
1504    
1505  /...(?<=abc)/  /...(?<=abc)/I
1506  Capturing subpattern count = 0  Capturing subpattern count = 0
1507  No options  No options
1508  No first char  No first char
1509  No need char  No need char
1510    
1511  /abc(?!pqr)/  /abc(?!pqr)/I
1512  Capturing subpattern count = 0  Capturing subpattern count = 0
1513  No options  No options
1514  First char = 'a'  First char = 'a'
1515  Need char = 'c'  Need char = 'c'
1516    
1517  /ab./  /ab./I
1518  Capturing subpattern count = 0  Capturing subpattern count = 0
1519  No options  No options
1520  First char = 'a'  First char = 'a'
1521  Need char = 'b'  Need char = 'b'
1522    
1523  /ab[xyz]/  /ab[xyz]/I
1524  Capturing subpattern count = 0  Capturing subpattern count = 0
1525  No options  No options
1526  First char = 'a'  First char = 'a'
1527  Need char = 'b'  Need char = 'b'
1528    
1529  /abc*/  /abc*/I
1530  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1531  No options  No options
1532  First char = 'a'  First char = 'a'
1533  Need char = 'b'  Need char = 'b'
1534    
1535  /ab.c*/  /ab.c*/I
1536  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1537  No options  No options
1538  First char = 'a'  First char = 'a'
1539  Need char = 'b'  Need char = 'b'
1540    
1541  /a.c*/  /a.c*/I
1542  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1543  No options  No options
1544  First char = 'a'  First char = 'a'
1545  No need char  No need char
1546    
1547  /.c*/  /.c*/I
1548  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1549  No options  No options
1550  No first char  No first char
1551  No need char  No need char
1552    
1553  /ac*/  /ac*/I
1554  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1555  No options  No options
1556  First char = 'a'  First char = 'a'
1557  No need char  No need char
1558    
1559  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1560  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1561  No options  No options
1562  No first char  No first char
1563  No need char  No need char
1564    
1565  /a.c*|aba/  /a.c*|aba/I
1566  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1567  No options  No options
1568  First char = 'a'  First char = 'a'
1569  No need char  No need char
1570    
1571  /.+a/  /.+a/I
1572  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1573  No options  No options
1574  No first char  No first char
1575  Need char = 'a'  Need char = 'a'
1576    
1577  /(?=abcda)a.*/  /(?=abcda)a.*/I
1578  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1579  No options  No options
1580  First char = 'a'  First char = 'a'
1581  Need char = 'a'  Need char = 'a'
1582    
1583  /(?=a)a.*/  /(?=a)a.*/I
1584  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1585  No options  No options
1586  First char = 'a'  First char = 'a'
1587  No need char  No need char
1588    
1589  /a(b)*/  /a(b)*/I
1590  Capturing subpattern count = 1  Capturing subpattern count = 1
1591  No options  No options
1592  First char = 'a'  First char = 'a'
1593  No need char  No need char
1594    
1595  /a\d*/  /a\d*/I
1596  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1597  No options  No options
1598  First char = 'a'  First char = 'a'
1599  No need char  No need char
1600    
1601  /ab\d*/  /ab\d*/I
1602  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1603  No options  No options
1604  First char = 'a'  First char = 'a'
1605  Need char = 'b'  Need char = 'b'
1606    
1607  /a(\d)*/  /a(\d)*/I
1608  Capturing subpattern count = 1  Capturing subpattern count = 1
1609  No options  No options
1610  First char = 'a'  First char = 'a'
1611  No need char  No need char
1612    
1613  /abcde{0,0}/  /abcde{0,0}/I
1614  Capturing subpattern count = 0  Capturing subpattern count = 0
1615  No options  No options
1616  First char = 'a'  First char = 'a'
1617  Need char = 'd'  Need char = 'd'
1618    
1619  /ab\d+/  /ab\d+/I
1620  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1621  No options  No options
1622  First char = 'a'  First char = 'a'
1623  Need char = 'b'  Need char = 'b'
1624    
1625  /a(?(1)b)/  /a(?(1)b)(.)/I
1626  Capturing subpattern count = 0  Capturing subpattern count = 1
1627  No options  No options
1628  First char = 'a'  First char = 'a'
1629  No need char  No need char
1630    
1631  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1632  Capturing subpattern count = 0  Capturing subpattern count = 1
1633  No options  No options
1634  First char = 'a'  First char = 'a'
1635  Need char = 'g'  Need char = 'g'
1636    
1637  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1638  Capturing subpattern count = 0  Capturing subpattern count = 1
1639  No options  No options
1640  First char = 'a'  First char = 'a'
1641  No need char  No need char
1642    
1643  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1644  Capturing subpattern count = 0  Capturing subpattern count = 1
1645  No options  No options
1646  First char = 'a'  First char = 'a'
1647  Need char = 'g'  Need char = 'g'
1648    
1649  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1650  Capturing subpattern count = 0  Capturing subpattern count = 1
1651  No options  No options
1652  First char = 'a'  First char = 'a'
1653  Need char = 'b'  Need char = 'b'
1654    
1655  /ab\d{0}e/  /ab\d{0}e/I
1656  Capturing subpattern count = 0  Capturing subpattern count = 0
1657  No options  No options
1658  First char = 'a'  First char = 'a'
1659  Need char = 'e'  Need char = 'e'
1660    
1661  /a?b?/  /a?b?/I
1662  Capturing subpattern count = 0  Capturing subpattern count = 0
1663  No options  No options
1664  No first char  No first char
# Line 1647  No need char Line 1673  No need char
1673   0:   0:
1674      *** Failers      *** Failers
1675   0:   0:
1676      \N      \N
1677  No match  No match
1678    
1679  /|-/  /|-/I
1680  Capturing subpattern count = 0  Capturing subpattern count = 0
1681  No options  No options
1682  No first char  No first char
# Line 1663  No need char Line 1689  No need char
1689   0: -   0: -
1690      *** Failers      *** Failers
1691   0:   0:
1692      \Nabc      \Nabc
1693  No match  No match
1694    
1695  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/P
# Line 1692  No match Line 1718  No match
1718   1: bbbb   1: bbbb
1719   2: z   2: z
1720   3: z   3: z
1721    
1722  /^.?abcd/S  /^.?abcd/IS
1723  Capturing subpattern count = 0  Capturing subpattern count = 0
1724  Options: anchored  Options: anchored
1725  No first char  No first char
1726  Need char = 'd'  Need char = 'd'
1727  Study returned NULL  Subject length lower bound = 4
1728    No set of starting bytes
1729    
1730  /\(             # ( at start  /\(             # ( at start
1731    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1707  Study returned NULL Line 1734  Study returned NULL
1734    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1735    )*            # Zero or more contents    )*            # Zero or more contents
1736    \)            # Closing )    \)            # Closing )
1737    /x    /Ix
1738  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1739  Options: extended  Options: extended
1740  First char = '('  First char = '('
1741  Need char = ')'  Need char = ')'
# Line 1719  Need char = ')' Line 1745  Need char = ')'
1745   0: (abcd)   0: (abcd)
1746      xyz(abcd)      xyz(abcd)
1747   0: (abcd)   0: (abcd)
1748      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1749   0: (ab(xy)cd)   0: (ab(xy)cd)
1750      (ab(xycd)pqr      (ab(xycd)pqr
1751   0: (xycd)   0: (xycd)
1752      () abc ()      () abc ()
1753   0: ()   0: ()
1754      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1755   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1756      *** Failers      *** Failers
1757  No match  No match
1758      abcd      abcd
1759  No match  No match
1760      abcd)      abcd)
1761  No match  No match
1762      (abcd      (abcd
1763  No match  No match
1764    
1765  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1766  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1767  Options: extended  Options: extended
1768  First char = '('  First char = '('
1769  Need char = ')'  Need char = ')'
1770      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1771   0: (ab(xy)cd)   0: (ab(xy)cd)
1772   1: cd   1: cd
1773      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1751  Need char = ')' Line 1776  Need char = ')'
1776   0: (x(y)z)   0: (x(y)z)
1777   1: z   1: z
1778    
1779  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1780  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1781  Options: extended  Options: extended
1782  First char = '('  First char = '('
1783  Need char = ')'  Need char = ')'
# Line 1761  Need char = ')' Line 1785  Need char = ')'
1785   0: (abcd)   0: (abcd)
1786      (ab(xy)cd)      (ab(xy)cd)
1787   0: (xy)   0: (xy)
1788      (a(b(c)d)e)      (a(b(c)d)e)
1789   0: (c)   0: (c)
1790      ((ab))      ((ab))
1791   0: ((ab))   0: ((ab))
1792      *** Failers      *** Failers
1793  No match  No match
1794      ()      ()
1795  No match  No match
1796    
1797  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1798  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1799  Options: extended  Options: extended
1800  First char = '('  First char = '('
1801  Need char = ')'  Need char = ')'
# Line 1781  Need char = ')' Line 1804  Need char = ')'
1804      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1805   0: (fsh)   0: (fsh)
1806    
1807  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1808  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1809  Options: extended  Options: extended
1810  First char = '('  First char = '('
1811  Need char = ')'  Need char = ')'
# Line 1791  Need char = ')' Line 1813  Need char = ')'
1813   0: (ab(xy)cd)   0: (ab(xy)cd)
1814   1: cd   1: cd
1815    
1816  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1817  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1818  Options: extended  Options: extended
1819  First char = '('  First char = '('
1820  Need char = ')'  Need char = ')'
# Line 1802  Need char = ')' Line 1823  Need char = ')'
1823   1: ab(xy)cd   1: ab(xy)cd
1824   2: cd   2: cd
1825    
1826  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1827  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1828  Options: extended  Options: extended
1829  First char = '('  First char = '('
1830  Need char = ')'  Need char = ')'
# Line 1819  Need char = ')' Line 1839  Need char = ')'
1839   2: ab(xy)cd   2: ab(xy)cd
1840   3: cd   3: cd
1841    
1842  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1843  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1844  Options: extended  Options: extended
1845  First char = '('  First char = '('
1846  Need char = ')'  Need char = ')'
# Line 1836  Need char = ')' Line 1855  Need char = ')'
1855   2: 123   2: 123
1856   3: cd   3: cd
1857    
1858  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1859  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1860  Options: extended  Options: extended
1861  First char = '('  First char = '('
1862  Need char = ')'  Need char = ')'
# Line 1856  Need char = ')' Line 1874  Need char = ')'
1874  10: ab(xy)cd  10: ab(xy)cd
1875  11: cd  11: cd
1876    
1877  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1878  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1879  Options: extended  Options: extended
1880  First char = '('  First char = '('
1881  Need char = ')'  Need char = ')'
# Line 1866  Need char = ')' Line 1883  Need char = ')'
1883   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1884   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1885   2: 123   2: 123
  3: <unset>  
1886    
1887  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1888  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1889  Options: extended  Options: extended
1890  First char = '('  First char = '('
1891  Need char = ')'  Need char = ')'
# Line 1885  Need char = ')' Line 1900  Need char = ')'
1900   2: ij   2: ij
1901   3: (cd(ef)gh)   3: (cd(ef)gh)
1902    
1903  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1904  ------------------------------------------------------------------  ------------------------------------------------------------------
1905    0  37 Bra 0          Bra
1906    3     ^          ^
1907    4     [0-9A-Za-z]          [0-9A-Za-z]
1908   37  37 Ket          Ket
1909   40     End          End
1910  ------------------------------------------------------------------  ------------------------------------------------------------------
1911  Capturing subpattern count = 0  Capturing subpattern count = 0
1912  Options: anchored  Options: anchored
1913  No first char  No first char
1914  No need char  No need char
1915    
1916  /^[[:^alnum:]]/D  /^[[:^alnum:]]/DZ
1917  ------------------------------------------------------------------  ------------------------------------------------------------------
1918    0  37 Bra 0          Bra
1919    3     ^          ^
1920    4     [\x00-/:-@[-`{-\xff]          [\x00-/:-@[-`{-\xff] (neg)
1921   37  37 Ket          Ket
1922   40     End          End
1923  ------------------------------------------------------------------  ------------------------------------------------------------------
1924  Capturing subpattern count = 0  Capturing subpattern count = 0
1925  Options: anchored  Options: anchored
1926  No first char  No first char
1927  No need char  No need char
1928    
1929  /^[[:alpha:]]/D  /^[[:alpha:]]/DZ
1930  ------------------------------------------------------------------  ------------------------------------------------------------------
1931    0  37 Bra 0          Bra
1932    3     ^          ^
1933    4     [A-Za-z]          [A-Za-z]
1934   37  37 Ket          Ket
1935   40     End          End
1936  ------------------------------------------------------------------  ------------------------------------------------------------------
1937  Capturing subpattern count = 0  Capturing subpattern count = 0
1938  Options: anchored  Options: anchored
1939  No first char  No first char
1940  No need char  No need char
1941    
1942  /^[[:^alpha:]]/D  /^[[:^alpha:]]/DZ
1943  ------------------------------------------------------------------  ------------------------------------------------------------------
1944    0  37 Bra 0          Bra
1945    3     ^          ^
1946    4     [\x00-@[-`{-\xff]          [\x00-@[-`{-\xff] (neg)
1947   37  37 Ket          Ket
1948   40     End          End
1949  ------------------------------------------------------------------  ------------------------------------------------------------------
1950  Capturing subpattern count = 0  Capturing subpattern count = 0
1951  Options: anchored  Options: anchored
1952  No first char  No first char
1953  No need char  No need char
1954    
1955  /[_[:alpha:]]/IS  /[_[:alpha:]]/IS
1956  Capturing subpattern count = 0  Capturing subpattern count = 0
1957  No options  No options
1958  No first char  No first char
1959  No need char  No need char
1960    Subject length lower bound = 1
1961  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
1962    _ 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
1963    
1964  /^[[:ascii:]]/D  /^[[:ascii:]]/DZ
1965  ------------------------------------------------------------------  ------------------------------------------------------------------
1966    0  37 Bra 0          Bra
1967    3     ^          ^
1968    4     [\x00-\x7f]          [\x00-\x7f]
1969   37  37 Ket          Ket
1970   40     End          End
1971  ------------------------------------------------------------------  ------------------------------------------------------------------
1972  Capturing subpattern count = 0  Capturing subpattern count = 0
1973  Options: anchored  Options: anchored
1974  No first char  No first char
1975  No need char  No need char
1976    
1977  /^[[:^ascii:]]/D  /^[[:^ascii:]]/DZ
1978  ------------------------------------------------------------------  ------------------------------------------------------------------
1979    0  37 Bra 0          Bra
1980    3     ^          ^
1981    4     [\x80-\xff]          [\x80-\xff] (neg)
1982   37  37 Ket          Ket
1983   40     End          End
1984  ------------------------------------------------------------------  ------------------------------------------------------------------
1985  Capturing subpattern count = 0  Capturing subpattern count = 0
1986  Options: anchored  Options: anchored
1987  No first char  No first char
1988  No need char  No need char
1989    
1990  /^[[:blank:]]/D  /^[[:blank:]]/DZ
1991  ------------------------------------------------------------------  ------------------------------------------------------------------
1992    0  37 Bra 0          Bra
1993    3     ^          ^
1994    4     [\x09 ]          [\x09 ]
1995   37  37 Ket          Ket
1996   40     End          End
1997  ------------------------------------------------------------------  ------------------------------------------------------------------
1998  Capturing subpattern count = 0  Capturing subpattern count = 0
1999  Options: anchored  Options: anchored
2000  No first char  No first char
2001  No need char  No need char
2002    
2003  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2004  ------------------------------------------------------------------  ------------------------------------------------------------------
2005    0  37 Bra 0          Bra
2006    3     ^          ^
2007    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2008   37  37 Ket          Ket
2009   40     End          End
2010  ------------------------------------------------------------------  ------------------------------------------------------------------
2011  Capturing subpattern count = 0  Capturing subpattern count = 0
2012  Options: anchored  Options: anchored
# Line 1999  No need char Line 2015  No need char
2015    
2016  /[\n\x0b\x0c\x0d[:blank:]]/IS  /[\n\x0b\x0c\x0d[:blank:]]/IS
2017  Capturing subpattern count = 0  Capturing subpattern count = 0
2018    Contains explicit CR or LF match
2019  No options  No options
2020  No first char  No first char
2021  No need char  No need char
2022    Subject length lower bound = 1
2023  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2024    
2025  /^[[:cntrl:]]/D  /^[[:cntrl:]]/DZ
2026  ------------------------------------------------------------------  ------------------------------------------------------------------
2027    0  37 Bra 0          Bra
2028    3     ^          ^
2029    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
2030   37  37 Ket          Ket
2031   40     End          End
2032  ------------------------------------------------------------------  ------------------------------------------------------------------
2033  Capturing subpattern count = 0  Capturing subpattern count = 0
2034  Options: anchored  Options: anchored
2035  No first char  No first char
2036  No need char  No need char
2037    
2038  /^[[:digit:]]/D  /^[[:digit:]]/DZ
2039  ------------------------------------------------------------------  ------------------------------------------------------------------
2040    0  37 Bra 0          Bra
2041    3     ^          ^
2042    4     [0-9]          [0-9]
2043   37  37 Ket          Ket
2044   40     End          End
2045  ------------------------------------------------------------------  ------------------------------------------------------------------
2046  Capturing subpattern count = 0  Capturing subpattern count = 0
2047  Options: anchored  Options: anchored
2048  No first char  No first char
2049  No need char  No need char
2050    
2051  /^[[:graph:]]/D  /^[[:graph:]]/DZ
2052  ------------------------------------------------------------------  ------------------------------------------------------------------
2053    0  37 Bra 0          Bra
2054    3     ^          ^
2055    4     [!-~]          [!-~]
2056   37  37 Ket          Ket
2057   40     End          End
2058  ------------------------------------------------------------------  ------------------------------------------------------------------
2059  Capturing subpattern count = 0  Capturing subpattern count = 0
2060  Options: anchored  Options: anchored
2061  No first char  No first char
2062  No need char  No need char
2063    
2064  /^[[:lower:]]/D  /^[[:lower:]]/DZ
2065  ------------------------------------------------------------------  ------------------------------------------------------------------
2066    0  37 Bra 0          Bra
2067    3     ^          ^
2068    4     [a-z]          [a-z]
2069   37  37 Ket          Ket
2070   40     End          End
2071  ------------------------------------------------------------------  ------------------------------------------------------------------
2072  Capturing subpattern count = 0  Capturing subpattern count = 0
2073  Options: anchored  Options: anchored
2074  No first char  No first char
2075  No need char  No need char
2076    
2077  /^[[:print:]]/D  /^[[:print:]]/DZ
2078  ------------------------------------------------------------------  ------------------------------------------------------------------
2079    0  37 Bra 0          Bra
2080    3     ^          ^
2081    4     [ -~]          [ -~]
2082   37  37 Ket          Ket
2083   40     End          End
2084  ------------------------------------------------------------------  ------------------------------------------------------------------
2085  Capturing subpattern count = 0  Capturing subpattern count = 0
2086  Options: anchored  Options: anchored
2087  No first char  No first char
2088  No need char  No need char
2089    
2090  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2091  ------------------------------------------------------------------  ------------------------------------------------------------------
2092    0  37 Bra 0          Bra
2093    3     ^          ^
2094    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2095   37  37 Ket          Ket
2096   40     End          End
2097  ------------------------------------------------------------------  ------------------------------------------------------------------
2098  Capturing subpattern count = 0  Capturing subpattern count = 0
2099  Options: anchored  Options: anchored
2100  No first char  No first char
2101  No need char  No need char
2102    
2103  /^[[:space:]]/D  /^[[:space:]]/DZ
2104  ------------------------------------------------------------------  ------------------------------------------------------------------
2105    0  37 Bra 0          Bra
2106    3     ^          ^
2107    4     [\x09-\x0d ]          [\x09-\x0d ]
2108   37  37 Ket          Ket
2109   40     End          End
2110  ------------------------------------------------------------------  ------------------------------------------------------------------
2111  Capturing subpattern count = 0  Capturing subpattern count = 0
2112  Options: anchored  Options: anchored
2113  No first char  No first char
2114  No need char  No need char
2115    
2116  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2117  ------------------------------------------------------------------  ------------------------------------------------------------------
2118    0  37 Bra 0          Bra
2119    3     ^          ^
2120    4     [A-Z]          [A-Z]
2121   37  37 Ket          Ket
2122   40     End          End
2123  ------------------------------------------------------------------  ------------------------------------------------------------------
2124  Capturing subpattern count = 0  Capturing subpattern count = 0
2125  Options: anchored  Options: anchored
2126  No first char  No first char
2127  No need char  No need char
2128    
2129  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2130  ------------------------------------------------------------------  ------------------------------------------------------------------
2131    0  37 Bra 0          Bra
2132    3     ^          ^
2133    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2134   37  37 Ket          Ket
2135   40     End          End
2136  ------------------------------------------------------------------  ------------------------------------------------------------------
2137  Capturing subpattern count = 0  Capturing subpattern count = 0
2138  Options: anchored  Options: anchored
2139  No first char  No first char
2140  No need char  No need char
2141    
2142  /^[[:word:]]/D  /^[[:word:]]/DZ
2143  ------------------------------------------------------------------  ------------------------------------------------------------------
2144    0  37 Bra 0          Bra
2145    3     ^          ^
2146    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2147   37  37 Ket          Ket
2148   40     End          End
2149  ------------------------------------------------------------------  ------------------------------------------------------------------
2150  Capturing subpattern count = 0  Capturing subpattern count = 0
2151  Options: anchored  Options: anchored
2152  No first char  No first char
2153  No need char  No need char
2154    
2155  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2156  ------------------------------------------------------------------  ------------------------------------------------------------------
2157    0  37 Bra 0          Bra
2158    3     ^          ^
2159    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2160   37  37 Ket          Ket
2161   40     End          End
2162  ------------------------------------------------------------------  ------------------------------------------------------------------
2163  Capturing subpattern count = 0  Capturing subpattern count = 0
2164  Options: anchored  Options: anchored
2165  No first char  No first char
2166  No need char  No need char
2167    
2168  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2169  ------------------------------------------------------------------  ------------------------------------------------------------------
2170    0  37 Bra 0          Bra
2171    3     ^          ^
2172    4     [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
2173   37  37 Ket          Ket
2174   40     End          End
2175  ------------------------------------------------------------------  ------------------------------------------------------------------
2176  Capturing subpattern count = 0  Capturing subpattern count = 0
2177  Options: anchored  Options: anchored
2178  No first char  No first char
2179  No need char  No need char
2180    
2181  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2182  ------------------------------------------------------------------  ------------------------------------------------------------------
2183    0  37 Bra 0          Bra
2184    3     ^          ^
2185    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2186   37  37 Ket          Ket
2187   40     End          End
2188  ------------------------------------------------------------------  ------------------------------------------------------------------
2189  Capturing subpattern count = 0  Capturing subpattern count = 0
2190  Options: anchored  Options: anchored
2191  No first char  No first char
2192  No need char  No need char
2193    
2194  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2195  ------------------------------------------------------------------  ------------------------------------------------------------------
2196    0  36 Bra 0          Bra
2197    3     [%01A-Za-z]          [%01A-Za-z]
2198   36  36 Ket          Ket
2199   39     End          End
2200  ------------------------------------------------------------------  ------------------------------------------------------------------
2201  Capturing subpattern count = 0  Capturing subpattern count = 0
2202  No options  No options
2203  No first char  No first char
2204  No need char  No need char
2205    
2206  /[[.ch.]]/  /[[.ch.]]/I
2207  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2208    
2209  /[[=ch=]]/  /[[=ch=]]/I
2210  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2211    
2212  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2213  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2214    
2215  /[[:upper:]]/i  /[[:upper:]]/Ii
2216  Capturing subpattern count = 0  Capturing subpattern count = 0
2217  Options: caseless  Options: caseless
2218  No first char  No first char
2219  No need char  No need char
2220      A      A
2221   0: A   0: A
2222      a      a
2223   0: a   0: a
2224    
2225  /[[:lower:]]/i  /[[:lower:]]/Ii
2226  Capturing subpattern count = 0  Capturing subpattern count = 0
2227  Options: caseless  Options: caseless
2228  No first char  No first char
2229  No need char  No need char
2230      A      A
2231   0: A   0: A
2232      a      a
2233   0: a   0: a
2234    
2235  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2236  Capturing subpattern count = 1  Capturing subpattern count = 1
2237  Options: caseless  Options: caseless
2238  No first char  No first char
# Line 2230  No need char Line 2248  No need char
2248   1: a   1: a
2249      Ab      Ab
2250  No match  No match
2251      AB      AB
2252  No match  No match
2253    
2254  /[\200-\110]/  /[\200-\110]/I
2255  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2256    
2257  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2258  Failed: invalid condition (?(0) at offset 6  Failed: invalid condition (?(0) at offset 6
2259    
2260  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2261  Capturing subpattern count = 0  Capturing subpattern count = 0
2262  No options  No options
2263  First char = 'T'  First char = 'T'
2264  Need char = 'd'  Need char = 'd'
2265    
2266  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2267  Capturing subpattern count = 271  Capturing subpattern count = 271
2268  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2269  No options  No options
2270  No first char  No first char
2271  No need char  No need char
# Line 2526  No need char Line 2543  No need char
2543  270: ABC  270: ABC
2544  271: ABC  271: ABC
2545    
2546  /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
2547  Capturing subpattern count = 0  Capturing subpattern count = 0
2548  No options  No options
2549  First char = 'T'  First char = 'T'
2550  Need char = 't'  Need char = 't'
2551    
2552  /(main(O)?)+/  /(main(O)?)+/I
2553  Capturing subpattern count = 2  Capturing subpattern count = 2
2554  No options  No options
2555  First char = 'm'  First char = 'm'
# Line 2544  Need char = 'n' Line 2561  Need char = 'n'
2561   0: mainOmain   0: mainOmain
2562   1: main   1: main
2563   2: O   2: O
2564    
2565  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2566  Capturing subpattern count = 1  Capturing subpattern count = 1
2567  No options  No options
2568  First char = 'T'  First char = 'T'
2569  Need char = 's'  Need char = 's'
2570    
2571  /^(a(b)?)+$/  /^(a(b)?)+$/I
2572  Capturing subpattern count = 2  Capturing subpattern count = 2
2573  Options: anchored  Options: anchored
2574  No first char  No first char
# Line 2560  No need char Line 2577  No need char
2577   0: aba   0: aba
2578   1: a   1: a
2579   2: b   2: b
2580    
2581  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2582  Capturing subpattern count = 2  Capturing subpattern count = 2
2583  Options: anchored  Options: anchored
2584  No first char  No first char
2585  No need char  No need char
2586      aabbaa      aabbaa
2587   0: aabbaa   0: aabbaa
2588   1: aa   1: aa
2589   2: bb   2: bb
2590    
2591  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2592  Capturing subpattern count = 2  Capturing subpattern count = 2
2593  Options: anchored  Options: anchored
2594  No first char  No first char
2595  No need char  No need char
2596      aabbaa      aabbaa
2597   0: aabbaa   0: aabbaa
2598   1: aa   1: aa
2599   2: bb   2: bb
2600    
2601  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2602  Capturing subpattern count = 2  Capturing subpattern count = 2
2603  Options: anchored  Options: anchored
2604  No first char  No first char
2605  No need char  No need char
2606      aabbaa      aabbaa
2607   0: aabbaa   0: aabbaa
2608   1: aa   1: aa
2609   2: bb   2: bb
2610    
2611  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2612  Capturing subpattern count = 1  Capturing subpattern count = 1
2613  Options: anchored  Options: anchored
2614  No first char  No first char
2615  No need char  No need char
2616      aabbaa      aabbaa
2617   0: aabbaa   0: aabbaa
2618   1: bb   1: bb
2619    
2620  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2621  Capturing subpattern count = 3  Capturing subpattern count = 3
2622  Options: anchored  Options: anchored
2623  No first char  No first char
2624  No need char  No need char
2625      aabbaa      aabbaa
2626   0: aabbaa   0: aabbaa
2627   1: aa   1: aa
2628   2: bb   2: bb
2629   3: b   3: b
2630    
2631  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2632  Capturing subpattern count = 2  Capturing subpattern count = 2
2633  Options: anchored  Options: anchored
2634  No first char  No first char
2635  No need char  No need char
2636      aabbaa      aabbaa
2637   0: aabbaa   0: aabbaa
2638   1: bb   1: bb
2639   2: b   2: b
2640    
2641  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2642  Capturing subpattern count = 1  Capturing subpattern count = 1
2643  Options: anchored  Options: anchored
2644  No first char  No first char
2645  No need char  No need char
2646      aabbaa      aabbaa
2647   0: aabbaa   0: aabbaa
2648   1: bb   1: bb
2649    
2650  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2651  Capturing subpattern count = 1  Capturing subpattern count = 1
2652  Options: anchored  Options: anchored
2653  No first char  No first char
2654  No need char  No need char
2655      aabbbaa      aabbbaa
2656   0: aabbbaa   0: aabbbaa
2657   1: bbb   1: bbb
2658    
2659  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2660  Capturing subpattern count = 1  Capturing subpattern count = 1
2661  Options: anchored  Options: anchored
2662  No first char  No first char
2663  No need char  No need char
2664      aabbbaa      aabbbaa
2665   0: aabbbaa   0: aabbbaa
2666   1: bbb   1: bbb
2667    
2668  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2669  Capturing subpattern count = 1  Capturing subpattern count = 1
2670  Options: anchored  Options: anchored
2671  No first char  No first char
2672  No need char  No need char
2673      aabbaa      aabbaa
2674   0: aabbaa   0: aabbaa
2675   1: b   1: b
2676    
2677  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2678  Capturing subpattern count = 1  Capturing subpattern count = 1
2679  Options: anchored  Options: anchored
2680  No first char  No first char
2681  No need char  No need char
2682      aabbbaa      aabbbaa
2683   0: aabbbaa   0: aabbbaa
2684   1: bb   1: bb
2685    
2686  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2687  Capturing subpattern count = 3  Capturing subpattern count = 3
2688  Options: anchored  Options: anchored
2689  No first char  No first char
2690  No need char  No need char
2691      aabbbaa      aabbbaa
2692   0: aabbbaa   0: aabbbaa
2693   1: aa   1: aa
2694   2: bbb   2: bbb
2695   3: bb   3: bb
2696    
2697  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2698  Capturing subpattern count = 3  Capturing subpattern count = 3
2699  Options: anchored  Options: anchored
2700  No first char  No first char
2701  No need char  No need char
2702      aabbbbaa      aabbbbaa
2703   0: aabbbbaa   0: aabbbbaa
2704   1: aa   1: aa
2705   2: bbbb   2: bbbb
2706   3: bb   3: bb
2707    
2708  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2709  Capturing subpattern count = 0  Capturing subpattern count = 0
2710  No options  No options
2711  First char = '-'  First char = '-'
2712  Need char = '-'  Need char = '-'
2713    
2714  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2715  ------------------------------------------------------------------  ------------------------------------------------------------------
2716    0   3 Bra 0          Bra
2717    3   3 Ket          Ket
2718    6     End          End
2719  ------------------------------------------------------------------  ------------------------------------------------------------------
2720  Capturing subpattern count = 0  Capturing subpattern count = 0
2721  Options: extended  Options: extended
2722  No first char  No first char
2723  No need char  No need char
2724    
2725  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 9  
2726  ------------------------------------------------------------------  ------------------------------------------------------------------
2727    0   5 Bra 0          Bra
2728    3     a          a
2729    5   5 Ket          Ket
2730    8     End          End
2731  ------------------------------------------------------------------  ------------------------------------------------------------------
2732  Capturing subpattern count = 0  Capturing subpattern count = 0
2733  Options: extended  Options: extended
2734  First char = 'a'  First char = 'a'
2735  No need char  No need char
2736    
2737  /[\s]/D  /[\s]/DZ
2738  ------------------------------------------------------------------  ------------------------------------------------------------------
2739    0  36 Bra 0          Bra
2740    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
2741   36  36 Ket          Ket
2742   39     End          End
2743  ------------------------------------------------------------------  ------------------------------------------------------------------
2744  Capturing subpattern count = 0  Capturing subpattern count = 0
2745  No options  No options
2746  No first char  No first char
2747  No need char  No need char
2748    
2749  /[\S]/D  /[\S]/DZ
2750  ------------------------------------------------------------------  ------------------------------------------------------------------
2751    0  36 Bra 0          Bra
2752    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2753   36  36 Ket          Ket
2754   39     End          End
2755  ------------------------------------------------------------------  ------------------------------------------------------------------
2756  Capturing subpattern count = 0  Capturing subpattern count = 0
2757  No options  No options
2758  No first char  No first char
2759  No need char  No need char
2760    
2761  /a(?i)b/D  /a(?i)b/DZ
2762  ------------------------------------------------------------------  ------------------------------------------------------------------
2763    0   9 Bra 0          Bra
2764    3     a          a
2765    5  01 Opt       /i b
2766    7  NC b          Ket
2767    9   9 Ket          End
  12     End  
2768  ------------------------------------------------------------------  ------------------------------------------------------------------
2769  Capturing subpattern count = 0  Capturing subpattern count = 0
2770  No options  No options
# Line 2760  Need char = 'b' (caseless) Line 2774  Need char = 'b' (caseless)
2774   0: ab   0: ab
2775      aB      aB
2776   0: aB   0: aB
2777      *** Failers      *** Failers
2778  No match  No match
2779      AB      AB
2780  No match  No match
2781    
2782  /(a(?i)b)/D  /(a(?i)b)/DZ
2783  ------------------------------------------------------------------  ------------------------------------------------------------------
2784    0  17 Bra 0          Bra
2785    3   9 Bra 1          CBra 1
2786    6     a          a
2787    8  01 Opt       /i b
2788   10  NC b          Ket
2789   12   9 Ket          Ket
2790   15  00 Opt          End
  17  17 Ket  
  20     End  
2791  ------------------------------------------------------------------  ------------------------------------------------------------------
2792  Capturing subpattern count = 1  Capturing subpattern count = 1
2793  No options  No options
# Line 2787  Need char = 'b' (caseless) Line 2799  Need char = 'b' (caseless)
2799      aB      aB
2800   0: aB   0: aB
2801   1: aB   1: aB
2802      *** Failers      *** Failers
2803  No match  No match
2804      AB      AB
2805  No match  No match
2806    
2807  /   (?i)abc/xD  /   (?i)abc/IxDZ
2808  ------------------------------------------------------------------  ------------------------------------------------------------------
2809    0   9 Bra 0          Bra
2810    3  NC abc       /i abc
2811    9   9 Ket          Ket
2812   12     End          End
2813  ------------------------------------------------------------------  ------------------------------------------------------------------
2814  Capturing subpattern count = 0  Capturing subpattern count = 0
2815  Options: caseless extended  Options: caseless extended
# Line 2805  First char = 'a' (caseless) Line 2817  First char = 'a' (caseless)
2817  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2818    
2819  /#this is a comment  /#this is a comment
2820    (?i)abc/xD    (?i)abc/IxDZ
2821  ------------------------------------------------------------------  ------------------------------------------------------------------
2822    0   9 Bra 0          Bra
2823    3  NC abc       /i abc
2824    9   9 Ket          Ket
2825   12     End          End
2826  ------------------------------------------------------------------  ------------------------------------------------------------------
2827  Capturing subpattern count = 0  Capturing subpattern count = 0
2828  Options: caseless extended  Options: caseless extended
2829  First char = 'a' (caseless)  First char = 'a' (caseless)
2830  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2831    
2832  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2833  ------------------------------------------------------------------  ------------------------------------------------------------------
2834    0 603 Bra 0          Bra
2835    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2836  603 603 Ket          Ket
2837  606     End          End
2838  ------------------------------------------------------------------  ------------------------------------------------------------------
2839  Capturing subpattern count = 0  Capturing subpattern count = 0
2840  No options  No options
2841  First char = '1'  First char = '1'
2842  Need char = '0'  Need char = '0'
2843    
2844  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2845  ------------------------------------------------------------------  ------------------------------------------------------------------
2846    0 603 Bra 0          Bra
2847    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2848  603 603 Ket          Ket
2849  606     End          End
2850  ------------------------------------------------------------------  ------------------------------------------------------------------
2851  Capturing subpattern count = 0  Capturing subpattern count = 0
2852  No options  No options
2853  First char = '1'  First char = '1'
2854  Need char = '0'  Need char = '0'
2855    
2856  /\Q\E/D  /\Q\E/DZ
2857  ------------------------------------------------------------------  ------------------------------------------------------------------
2858    0   3 Bra 0          Bra
2859    3   3 Ket          Ket
2860    6     End          End
2861  ------------------------------------------------------------------  ------------------------------------------------------------------
2862  Capturing subpattern count = 0  Capturing subpattern count = 0
2863  No options  No options
# Line 2854  No need char Line 2866  No need char
2866      \      \
2867   0:   0:
2868    
2869  /\Q\Ex/D  /\Q\Ex/DZ
2870  ------------------------------------------------------------------  ------------------------------------------------------------------
2871    0   5 Bra 0          Bra
2872    3     x          x
2873    5   5 Ket          Ket
2874    8     End          End
2875  ------------------------------------------------------------------  ------------------------------------------------------------------
2876  Capturing subpattern count = 0  Capturing subpattern count = 0
2877  No options  No options
2878  First char = 'x'  First char = 'x'
2879  No need char  No need char
2880    
2881  / \Q\E/D  / \Q\E/DZ
2882  ------------------------------------------------------------------  ------------------------------------------------------------------
2883    0   5 Bra 0          Bra
2884    3  
2885    5   5 Ket          Ket
2886    8     End          End
2887  ------------------------------------------------------------------  ------------------------------------------------------------------
2888  Capturing subpattern count = 0  Capturing subpattern count = 0
2889  No options  No options
2890  First char = ' '  First char = ' '
2891  No need char  No need char
2892    
2893  /a\Q\E/D  /a\Q\E/DZ
2894  ------------------------------------------------------------------  ------------------------------------------------------------------
2895    0   5 Bra 0          Bra
2896    3     a          a
2897    5   5 Ket          Ket
2898    8     End          End
2899  ------------------------------------------------------------------  ------------------------------------------------------------------
2900  Capturing subpattern count = 0  Capturing subpattern count = 0
2901  No options  No options
# Line 2893  No need char Line 2905  No need char
2905   0: a   0: a
2906    bca    bca
2907   0: a   0: a
2908    bac    bac
2909   0: a   0: a
2910    
2911  /a\Q\Eb/D  /a\Q\Eb/DZ
2912  ------------------------------------------------------------------  ------------------------------------------------------------------
2913    0   7 Bra 0          Bra
2914    3     ab          ab
2915    7   7 Ket          Ket
2916   10     End          End
2917  ------------------------------------------------------------------  ------------------------------------------------------------------
2918  Capturing subpattern count = 0  Capturing subpattern count = 0
2919  No options  No options
# Line 2910  Need char = 'b' Line 2922  Need char = 'b'
2922    abc    abc
2923   0: ab   0: ab
2924    
2925  /\Q\Eabc/D  /\Q\Eabc/DZ
2926  ------------------------------------------------------------------  ------------------------------------------------------------------
2927    0   9 Bra 0          Bra
2928    3     abc          abc
2929    9   9 Ket          Ket
2930   12     End          End
2931  ------------------------------------------------------------------  ------------------------------------------------------------------
2932  Capturing subpattern count = 0  Capturing subpattern count = 0
2933  No options  No options
2934  First char = 'a'  First char = 'a'
2935  Need char = 'c'  Need char = 'c'
2936    
2937  /x*+\w/D  /x*+\w/DZ
2938  ------------------------------------------------------------------  ------------------------------------------------------------------
2939    0  12 Bra 0          Bra
2940    3   5 Once          x*+
2941    6     x*          \w
2942    8   5 Ket          Ket
2943   11     \w          End
  12  12 Ket  
  15     End  
2944  ------------------------------------------------------------------  ------------------------------------------------------------------
2945  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2946  No options  No options
2947  No first char  No first char
2948  No need char  No need char
# Line 2941  No need char Line 2950  No need char
2950   0: F   0: F
2951      xxxxx      xxxxx
2952  No match  No match
2953    
2954  /x?+/D  /x?+/DZ
2955  ------------------------------------------------------------------  ------------------------------------------------------------------
2956    0  11 Bra 0          Bra
2957    3   5 Once          x?+
2958    6     x?          Ket
2959    8   5 Ket          End
  11  11 Ket  
  14     End  
2960  ------------------------------------------------------------------  ------------------------------------------------------------------
2961  Capturing subpattern count = 0  Capturing subpattern count = 0
2962  No options  No options
2963  No first char  No first char
2964  No need char  No need char
2965    
2966  /x++/D  /x++/DZ
2967  ------------------------------------------------------------------  ------------------------------------------------------------------
2968    0  11 Bra 0          Bra
2969    3   5 Once          x++
2970    6     x+          Ket
2971    8   5 Ket          End
  11  11 Ket  
  14     End  
2972  ------------------------------------------------------------------  ------------------------------------------------------------------
2973  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2974  No options  No options
2975  First char = 'x'  First char = 'x'
2976  No need char  No need char
2977    
2978  /x{1,3}+/D  /x{1,3}+/DZ
2979  ------------------------------------------------------------------  ------------------------------------------------------------------
2980    0  15 Bra 0          Bra
2981    3   9 Once          Once
2982    6     x          x
2983    8     x{,2}          x{0,2}
2984   12   9 Ket          Ket
2985   15  15 Ket          Ket
2986   18     End          End
2987  ------------------------------------------------------------------  ------------------------------------------------------------------
2988  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2989  No options  No options
2990  First char = 'x'  First char = 'x'
2991  No need char  No need char
2992    
2993  /(x)*+/D  /(x)*+/DZ
2994  ------------------------------------------------------------------  ------------------------------------------------------------------
2995    0  18 Bra 0          Bra
2996    3  12 Once          Braposzero
2997    6     Brazero          CBraPos 1
2998    7   5 Bra 1          x
2999   10     x          KetRpos
3000   12   5 KetRmax          Ket
3001   15  12 Ket          End
  18  18 Ket  
  21     End  
3002  ------------------------------------------------------------------  ------------------------------------------------------------------
3003  Capturing subpattern count = 1  Capturing subpattern count = 1
3004  No options  No options
3005  No first char  No first char
3006  No need char  No need char
3007    
3008  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
3009  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3010  Options: anchored  Options: anchored
3011  No first char  No first char
3012  No need char  No need char
# Line 3017  No need char Line 3017  No need char
3017  No match  No match
3018      this is not a line with only words and spaces!      this is not a line with only words and spaces!
3019  No match  No match
3020    
3021  /(\d++)(\w)/  /(\d++)(\w)/I
3022  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3023  No options  No options
3024  No first char  No first char
3025  No need char  No need char
# Line 3030  No need char Line 3029  No need char
3029   2: a   2: a
3030      *** Failers      *** Failers
3031  No match  No match
3032      12345+      12345+
3033  No match  No match
3034    
3035  /a++b/  /a++b/I
3036  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3037  No options  No options
3038  First char = 'a'  First char = 'a'
3039  Need char = 'b'  Need char = 'b'
3040      aaab      aaab
3041   0: aaab   0: aaab
3042    
3043  /(a++b)/  /(a++b)/I
3044  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3045  No options  No options
3046  First char = 'a'  First char = 'a'
3047  Need char = 'b'  Need char = 'b'
# Line 3052  Need char = 'b' Line 3049  Need char = 'b'
3049   0: aaab   0: aaab
3050   1: aaab   1: aaab
3051    
3052  /(a++)b/  /(a++)b/I
3053  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3054  No options  No options
3055  First char = 'a'  First char = 'a'
3056  Need char = 'b'  Need char = 'b'
# Line 3062  Need char = 'b' Line 3058  Need char = 'b'
3058   0: aaab   0: aaab
3059   1: aaa   1: aaa
3060    
3061  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3062  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3063  No options  No options
3064  No first char  No first char
3065  No need char  No need char
3066      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3067   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3068   1: x   1: x
3069    
3070  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3071  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3072  No options  No options
3073  First char = '('  First char = '('
3074  Need char = ')'  Need char = ')'
# Line 3086  Need char = ')' Line 3080  Need char = ')'
3080   1: xyz   1: xyz
3081      *** Failers      *** Failers
3082  No match  No match
3083      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3084  No match  No match
3085    
3086  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3087  ------------------------------------------------------------------  ------------------------------------------------------------------
3088    0  53 Bra 0          Bra
3089    3  47 Once          Once
3090    6   9 Bra 1          CBra 1
3091    9     abc          abc
3092   15   9 Ket          Ket
3093   18     Brazero          Brazero
3094   19  28 Bra 0          Bra
3095   22   9 Bra 1          CBra 1
3096   25     abc          abc
3097   31   9 Ket          Ket
3098   34     Brazero          Brazero
3099   35   9 Bra 1          CBra 1
3100   38     abc          abc
3101   44   9 Ket          Ket
3102   47  28 Ket          Ket
3103   50  47 Ket          Ket
3104   53  53 Ket          Ket
3105   56     End          End
3106  ------------------------------------------------------------------  ------------------------------------------------------------------
3107  Capturing subpattern count = 1  Capturing subpattern count = 1
3108  No options  No options
3109  First char = 'a'  First char = 'a'
3110  Need char = 'c'  Need char = 'c'
3111    
3112  /a+?+/  /a+?+/I
3113  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3114    
3115  /a{2,3}?+b/  /a{2,3}?+b/I
3116  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3117    
3118  /(?U)a+?+/  /(?U)a+?+/I
3119  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3120    
3121  /a{2,3}?+b/U  /a{2,3}?+b/IU
3122  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3123    
3124  /x(?U)a++b/D  /x(?U)a++b/DZ
3125  ------------------------------------------------------------------  ------------------------------------------------------------------
3126    0  15 Bra 0          Bra
3127    3     x          x
3128    5   5 Once          a++
3129    8     a+          b
3130   10   5 Ket          Ket
3131   13     b          End
  15  15 Ket  
  18     End  
3132  ------------------------------------------------------------------  ------------------------------------------------------------------
3133  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3134  No options  No options
3135  First char = 'x'  First char = 'x'
3136  Need char = 'b'  Need char = 'b'
3137      xaaaab      xaaaab
3138   0: xaaaab   0: xaaaab
3139    
3140  /(?U)xa++b/D  /(?U)xa++b/DZ
3141  ------------------------------------------------------------------  ------------------------------------------------------------------
3142    0  15 Bra 0          Bra
3143    3     x          x
3144    5   5 Once          a++
3145    8     a+          b
3146   10   5 Ket          Ket
3147   13     b          End
  15  15 Ket  
  18     End  
3148  ------------------------------------------------------------------  ------------------------------------------------------------------
3149  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3150  Options: ungreedy  Options: ungreedy
3151  First char = 'x'  First char = 'x'
3152  Need char = 'b'  Need char = 'b'
3153      xaaaab      xaaaab
3154   0: xaaaab   0: xaaaab
3155    
3156  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3157  ------------------------------------------------------------------  ------------------------------------------------------------------
3158    0 106 Bra 0          Bra
3159    3     ^          ^
3160    4  99 Bra 1          CBra 1
3161    7   5 Bra 2          CBra 2
3162   10     a+          a+
3163   12   5 Ket          Ket
3164   15  37 Bra 3          CBra 3
3165   18     [ab]+?          [ab]+?
3166   52  37 Ket          Ket
3167   55  37 Bra 4          CBra 4
3168   58     [bc]+          [bc]+
3169   92  37 Ket          Ket
3170   95   5 Bra 5          CBra 5
3171   98     \w*          \w*
3172  100   5 Ket          Ket
3173  103  99 Ket          Ket
3174  106 106 Ket          Ket
3175  109     End          End
3176  ------------------------------------------------------------------  ------------------------------------------------------------------
3177  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3178  Options: anchored  Options: anchored
3179  No first char  No first char
3180  No need char  No need char
3181    
3182  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3183  ------------------------------------------------------------------  ------------------------------------------------------------------
3184    0  10 Bra 0          Bra
3185    3     ^          ^
3186    4     x          x
3187    6     a+?          a++
3188    8     b          b
3189   10  10 Ket          Ket
3190   13     End          End
3191  ------------------------------------------------------------------  ------------------------------------------------------------------
3192  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3193  Options: anchored  Options: anchored
3194  No first char  No first char
3195  Need char = 'b'  Need char = 'b'
3196    
3197  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3198  ------------------------------------------------------------------  ------------------------------------------------------------------
3199    0  16 Bra 0          Bra
3200    3     ^          ^
3201    4     x          x
3202    6   5 Bra 1          CBra 1
3203    9     a+?          a+?
3204   11   5 Ket          Ket
3205   14     b          b
3206   16  16 Ket          Ket
3207   19     End          End
3208  ------------------------------------------------------------------  ------------------------------------------------------------------
3209  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3210  Options: anchored  Options: anchored
3211  No first char  No first char
3212  Need char = 'b'  Need char = 'b'
3213    
3214  /[.x.]/  /[.x.]/I
3215  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3216    
3217  /[=x=]/  /[=x=]/I
3218  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3219    
3220  /[:x:]/  /[:x:]/I
3221  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
3222    
3223  /\l/  /\l/I
3224  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3225    
3226  /\L/  /\L/I
3227  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3228    
3229  /\N{name}/  /\N{name}/I
3230  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3231    
3232  /\u/  /\u/I
3233  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3234    
3235  /\U/  /\U/I
3236  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3237    
3238  /[/  /[/I
3239  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3240    
3241  /[a-/  /[a-/I
3242  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3243    
3244  /[[:space:]/  /[[:space:]/I
3245  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3246    
3247  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3248  ------------------------------------------------------------------  ------------------------------------------------------------------
3249    0  36 Bra 0          Bra
3250    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
3251   36  36 Ket          Ket
3252   39     End          End
3253  ------------------------------------------------------------------  ------------------------------------------------------------------
3254  Capturing subpattern count = 0  Capturing subpattern count = 0
3255  No options  No options
3256  No first char  No first char
3257  No need char  No need char
3258    
3259  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3260  ------------------------------------------------------------------  ------------------------------------------------------------------
3261    0  36 Bra 0          Bra
3262    3     [\x09-\x0d ]          [\x09-\x0d ]
3263   36  36 Ket          Ket
3264   39     End          End
3265  ------------------------------------------------------------------  ------------------------------------------------------------------
3266  Capturing subpattern count = 0  Capturing subpattern count = 0
3267  No options  No options
3268  No first char  No first char
3269  No need char  No need char
3270    
3271  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3272  ------------------------------------------------------------------  ------------------------------------------------------------------
3273    0  36 Bra 0          Bra
3274    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3275   36  36 Ket          Ket
3276   39     End          End
3277  ------------------------------------------------------------------  ------------------------------------------------------------------
3278  Capturing subpattern count = 0  Capturing subpattern count = 0
3279  No options  No options
3280  No first char  No first char
3281  No need char  No need char
3282    
3283  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3284  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3285  Options: extended  Options: extended
3286  First char = '<'  First char = '<'
3287  Need char = '>'  Need char = '>'
# Line 3312  Need char = '>' Line 3293  Need char = '>'
3293   0: <abc <123> hij>   0: <abc <123> hij>
3294      <abc <def> hij>      <abc <def> hij>
3295   0: <def>   0: <def>
3296      <abc<>def>      <abc<>def>
3297   0: <abc<>def>   0: <abc<>def>
3298      <abc<>      <abc<>
3299   0: <>   0: <>
3300      *** Failers      *** Failers
3301  No match  No match
3302      <abc      <abc
3303  No match  No match
3304    
3305  |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  
3306  ------------------------------------------------------------------  ------------------------------------------------------------------
3307    0 822 Bra 0          Bra
3308    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
3309  821     \b          \b
3310  822 822 Ket          Ket
3311  825     End          End
3312  ------------------------------------------------------------------  ------------------------------------------------------------------
3313  Capturing subpattern count = 0  Capturing subpattern count = 0
3314  No options  No options
3315  First char = '8'  First char = '8'
3316  Need char = 'X'  Need char = 'X'
3317    
3318  |\$\<\.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  
3319  ------------------------------------------------------------------  ------------------------------------------------------------------
3320    0 812 Bra 0          Bra
3321    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
3322  811     \b          \b
3323  812 812 Ket          Ket
3324  815     End          End
3325  ------------------------------------------------------------------  ------------------------------------------------------------------
3326  Capturing subpattern count = 0  Capturing subpattern count = 0
3327  No options  No options
# Line 3352  Need char = 'X' Line 3331  Need char = 'X'
3331  /(.*)\d+\1/I  /(.*)\d+\1/I
3332  Capturing subpattern count = 1  Capturing subpattern count = 1
3333  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3334  No options  No options
3335  No first char  No first char
3336  No need char  No need char
3337    
3338  /(.*)\d+/I  /(.*)\d+/I
3339  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3340  No options  No options
3341  First char at start or follows newline  First char at start or follows newline
3342  No need char  No need char
3343    
3344  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3345  Capturing subpattern count = 1  Capturing subpattern count = 1
3346  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3347  Options: dotall  Options: dotall
3348  No first char  No first char
3349  No need char  No need char
3350    
3351  /(.*)\d+/Is  /(.*)\d+/Is
3352  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3353  Options: anchored dotall  Options: anchored dotall
3354  No first char  No first char
3355  No need char  No need char
# Line 3382  No need char Line 3357  No need char
3357  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3358  Capturing subpattern count = 2  Capturing subpattern count = 2
3359  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3360  No options  No options
3361  First char at start or follows newline  First char at start or follows newline
3362  Need char = 'z'  Need char = 'z'
# Line 3390  Need char = 'z' Line 3364  Need char = 'z'
3364  /((.*))\d+\1/I  /((.*))\d+\1/I
3365  Capturing subpattern count = 2  Capturing subpattern count = 2
3366  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3367  No options  No options
3368  No first char  No first char
3369  No need char  No need char
# Line 3398  No need char Line 3371  No need char
3371   0: bc123bc   0: bc123bc
3372   1: bc   1: bc
3373   2: bc   2: bc
3374    
3375  /a[b]/I  /a[b]/I
3376  Capturing subpattern count = 0  Capturing subpattern count = 0
3377  No options  No options
# Line 3407  Need char = 'b' Line 3380  Need char = 'b'
3380    
3381  /(?=a).*/I  /(?=a).*/I
3382  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3383  No options  No options
3384  First char = 'a'  First char = 'a'
3385  No need char  No need char
3386    
3387  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3388  Capturing subpattern count = 0  Capturing subpattern count = 0
3389  Options: caseless  Options: caseless
3390  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3454  No options Line 3426  No options
3426  No first char  No first char
3427  Need char = 'a'  Need char = 'a'
3428    
3429  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3430  Capturing subpattern count = 0  Capturing subpattern count = 1
3431  No options  No options
3432  First char = 'a'  First char = 'a'
3433  No need char  No need char
3434    
3435  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3436  Capturing subpattern count = 0  Capturing subpattern count = 1
3437  No options  No options
3438  First char = 'a'  First char = 'a'
3439  Need char = 'z'  Need char = 'z'
3440    
3441  /(?(1)abz)/I  /(?(1)abz)(.)/I
3442  Capturing subpattern count = 0  Capturing subpattern count = 1
3443  No options  No options
3444  No first char  No first char
3445  No need char  No need char
3446    
3447  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3448  Capturing subpattern count = 0  Capturing subpattern count = 1
3449  No options  No options
3450  No first char  No first char
3451  Need char = '3'  Need char = '3'
# Line 3513  Capturing subpattern count = 0 Line 3485  Capturing subpattern count = 0
3485  No options  No options
3486  No first char  No first char
3487  No need char  No need char
3488    Subject length lower bound = 1
3489  Starting byte set: a b  Starting byte set: a b
3490    
3491  /[^a]/I  /[^a]/I
# Line 3532  Capturing subpattern count = 0 Line 3505  Capturing subpattern count = 0
3505  No options  No options
3506  No first char  No first char
3507  Need char = '6'  Need char = '6'
3508    Subject length lower bound = 4
3509  Starting byte set: 0 1 2 3 4 5 6 7 8 9  Starting byte set: 0 1 2 3 4 5 6 7 8 9
3510    
3511  /a^b/I  /a^b/I
# Line 3540  No options Line 3514  No options
3514  First char = 'a'  First char = 'a'
3515  Need char = 'b'  Need char = 'b'
3516    
3517  /^a/mI  /^a/Im
3518  Capturing subpattern count = 0  Capturing subpattern count = 0
3519  Options: multiline  Options: multiline
3520  First char at start or follows newline  First char at start or follows newline
3521  Need char = 'a'  Need char = 'a'
3522    abcde    abcde
3523   0: a   0: a
3524    xy\nabc    xy\nabc
3525   0: a   0: a
3526    *** Failers    *** Failers
3527  No match  No match
3528    xyabc    xyabc
3529  No match  No match
3530    
3531  /c|abc/I  /c|abc/I
# Line 3565  Capturing subpattern count = 0 Line 3539  Capturing subpattern count = 0
3539  Options: caseless  Options: caseless
3540  No first char  No first char
3541  No need char  No need char
3542    Subject length lower bound = 1
3543  Starting byte set: A B a b  Starting byte set: A B a b
3544    
3545  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3572  Capturing subpattern count = 0 Line 3547  Capturing subpattern count = 0
3547  No options  No options
3548  No first char  No first char
3549  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3550    Subject length lower bound = 3
3551  Starting byte set: a b  Starting byte set: a b
3552    
3553  /abc(?C)def/  /abc(?C)def/I
3554  Capturing subpattern count = 0  Capturing subpattern count = 0
3555  No options  No options
3556  First char = 'a'  First char = 'a'
# Line 3583  Need char = 'f' Line 3559  Need char = 'f'
3559  --->abcdef  --->abcdef
3560    0 ^  ^       d    0 ^  ^       d
3561   0: abcdef   0: abcdef
3562      1234abcdef      1234abcdef
3563  --->1234abcdef  --->1234abcdef
3564    0     ^  ^       d    0     ^  ^       d
3565   0: abcdef   0: abcdef
# Line 3591  Need char = 'f' Line 3567  Need char = 'f'
3567  No match  No match
3568      abcxyz      abcxyz
3569  No match  No match
3570      abcxyzf      abcxyzf
3571  --->abcxyzf  --->abcxyzf
3572    0 ^  ^        d    0 ^  ^        d
3573  No match  No match
3574    
3575  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3576  Capturing subpattern count = 0  Capturing subpattern count = 0
3577  No options  No options
3578  First char = 'a'  First char = 'a'
# Line 3606  Need char = 'f' Line 3582  Need char = 'f'
3582    0    ^  ^       d    0    ^  ^       d
3583    1    ^    ^     f    1    ^    ^     f
3584   0: abcdef   0: abcdef
3585    
3586  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/IS
3587    Capturing subpattern count = 0
3588    No options
3589    No first char
3590    Need char = 'f'
3591    Subject length lower bound = 7
3592    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3593        1234abcdef
3594    --->1234abcdef
3595      1 ^              \d
3596      1  ^             \d
3597      1   ^            \d
3598      1    ^           \d
3599      2    ^   ^       d
3600     0: 4abcdef
3601        *** Failers
3602    No match
3603        abcdef
3604    No match
3605    
3606    /(?C1)\dabc(?C2)def/ISS
3607  Capturing subpattern count = 0  Capturing subpattern count = 0
3608  No options  No options
3609  No first char  No first char
# Line 3622  Need char = 'f' Line 3618  Need char = 'f'
3618   0: 4abcdef   0: 4abcdef
3619      *** Failers      *** Failers
3620  No match  No match
3621      abcdef      abcdef
3622  --->abcdef  --->abcdef
3623    1 ^          \d    1 ^          \d
3624    1  ^         \d    1  ^         \d
# Line 3631  No match Line 3627  No match
3627    1     ^      \d    1     ^      \d
3628    1      ^     \d    1      ^     \d
3629  No match  No match
3630    
3631  /(?C255)ab/  /(?C255)ab/I
3632  Capturing subpattern count = 0  Capturing subpattern count = 0
3633  No options  No options
3634  First char = 'a'  First char = 'a'
3635  Need char = 'b'  Need char = 'b'
3636    
3637  /(?C256)ab/  /(?C256)ab/I
3638  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3639    
3640  /(?Cab)xx/  /(?Cab)xx/I
3641  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3642    
3643  /(?C12vr)x/  /(?C12vr)x/I
3644  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3645    
3646  /abc(?C)def/  /abc(?C)def/I
3647  Capturing subpattern count = 0  Capturing subpattern count = 0
3648  No options  No options
3649  First char = 'a'  First char = 'a'
# Line 3659  No match Line 3655  No match
3655    0         ^  ^       d    0         ^  ^       d
3656   0: abcdef   0: abcdef
3657    
3658  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3659  Capturing subpattern count = 1  Capturing subpattern count = 1
3660  No options  No options
3661  First char = 'a'  First char = 'a'
# Line 3670  Need char = 'f' Line 3666  Need char = 'f'
3666    1    ^    ^     f    1    ^    ^     f
3667   0: abcdef   0: abcdef
3668   1: abc   1: abc
3669      123abcdef\C+      123abcdef\C+
3670  Callout 0: last capture = 1  Callout 0: last capture = 1
3671   0: <unset>   0: <unset>
3672   1: abc   1: abc
# Line 3683  Callout 1: last capture = 1 Line 3679  Callout 1: last capture = 1
3679         ^    ^     f         ^    ^     f
3680   0: abcdef   0: abcdef
3681   1: abc   1: abc
3682      123abcdef\C-      123abcdef\C-
3683   0: abcdef   0: abcdef
3684   1: abc   1: abc
3685      *** Failers      *** Failers
3686  No match  No match
3687      123abcdef\C!1      123abcdef\C!1
3688  --->123abcdef  --->123abcdef
3689    0    ^  ^       d    0    ^  ^       d
3690    1    ^    ^     f    1    ^    ^     f
3691  No match  No match
3692    
3693  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3694  Capturing subpattern count = 1  Capturing subpattern count = 1
3695  No options  No options
3696  No first char  No first char
# Line 3707  No need char Line 3703  No need char
3703    1 ^        ^    )    1 ^        ^    )
3704   0: abcabcabc   0: abcabcabc
3705   1: abc   1: abc
3706      abcabc\C!1!3      abcabc\C!1!3
3707  --->abcabc  --->abcabc
3708    0 ^          (abc(?C1))*    0 ^          (abc(?C1))*
3709    1 ^  ^       )    1 ^  ^       )
# Line 3718  No need char Line 3714  No need char
3714  --->*** Failers  --->*** Failers
3715    0 ^               (abc(?C1))*    0 ^               (abc(?C1))*
3716   0:   0:
3717      abcabcabc\C!1!3      abcabcabc\C!1!3
3718  --->abcabcabc  --->abcabcabc
3719    0 ^             (abc(?C1))*    0 ^             (abc(?C1))*
3720    1 ^  ^          )    1 ^  ^          )
# Line 3727  No need char Line 3723  No need char
3723   0: abcabc   0: abcabc
3724   1: abc   1: abc
3725    
3726  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3727  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3728  No options  No options
3729  No first char  No first char
3730  No need char  No need char
# Line 3752  Callout 0: last capture = 1 Line 3747  Callout 0: last capture = 1
3747      ^     ^    )      ^     ^    )
3748   0: 123456   0: 123456
3749   1: 456   1: 456
3750      123456789\C+      123456789\C+
3751  Callout 0: last capture = -1  Callout 0: last capture = -1
3752   0: <unset>   0: <unset>
3753  --->123456789  --->123456789
# Line 3770  Callout 0: last capture = 1 Line 3765  Callout 0: last capture = 1
3765   0: 123456789   0: 123456789
3766   1: 789   1: 789
3767    
3768  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3769  Capturing subpattern count = 2  Capturing subpattern count = 2
3770  No options  No options
3771  First char = 'x'  First char = 'x'
# Line 3789  Callout 1: last capture = -1 Line 3784  Callout 1: last capture = -1
3784   0: xyzabc   0: xyzabc
3785   1: xyzabc   1: xyzabc
3786    
3787  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3788  Capturing subpattern count = 3  Capturing subpattern count = 3
3789  No options  No options
3790  First char = 'X'  First char = 'X'
# Line 3811  Callout 1: last capture = 1 Line 3806  Callout 1: last capture = 1
3806   1: X   1: X
3807   2: xyzabc   2: xyzabc
3808    
3809  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3810  Capturing subpattern count = 1  Capturing subpattern count = 1
3811  No options  No options
3812  First char = 'a'  First char = 'a'
# Line 3824  Callout 0: last capture = 1 Line 3819  Callout 0: last capture = 1
3819      ^          a      ^          a
3820   0: abcdef   0: abcdef
3821   1: abc   1: abc
3822    
3823  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3824  Capturing subpattern count = 1  Capturing subpattern count = 1
3825  No options  No options
3826  First char = 'a'  First char = 'a'
3827  Need char = 'z'  Need char = 'z'
3828      abcxyz\C+      abcxyz\C+
3829  Callout 1: last capture = 1  Callout 1: last capture = 1
3830   0: <unset>   0: <unset>
3831   1: abc   1: abc
# Line 3842  Callout 2: last capture = -1 Line 3837  Callout 2: last capture = -1
3837      ^          a      ^          a
3838   0: abcxyz   0: abcxyz
3839    
3840  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3841  Capturing subpattern count = 1  Capturing subpattern count = 1
3842  No options  No options
3843  First char = 'x'  First char = 'x'
# Line 3855  Callout 0: last capture = 1 Line 3850  Callout 0: last capture = 1
3850         ^       )         ^       )
3851   0: xyz   0: xyz
3852   1: abc   1: abc
3853    
3854  /a(b+)(c*)(?C1)/  /a(b+)(c*)(?C1)/I
3855  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3856  No options  No options
3857  First char = 'a'  First char = 'a'
3858  Need char = 'b'  Need char = 'b'
# Line 3882  Callout data = 1 Line 3876  Callout data = 1
3876  Callout data = 1  Callout data = 1
3877  No match  No match
3878    
3879  /a(b+?)(c*?)(?C1)/  /a(b+?)(c*?)(?C1)/I
3880  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3881  No options  No options
3882  First char = 'a'  First char = 'a'
3883  Need char = 'b'  Need char = 'b'
# Line 3907  Callout data = 1 Line 3900  Callout data = 1
3900    1 ^        ^    1 ^        ^
3901  Callout data = 1  Callout data = 1
3902  No match  No match
3903    
3904  /(?C)abc/  /(?C)abc/I
3905  Capturing subpattern count = 0  Capturing subpattern count = 0
3906  No options  No options
3907  First char = 'a'  First char = 'a'
3908  Need char = 'c'  Need char = 'c'
3909    
3910  /(?C)^abc/  /(?C)^abc/I
3911  Capturing subpattern count = 0  Capturing subpattern count = 0
3912  Options: anchored  Options: anchored
3913  No first char  No first char
3914  No need char  No need char
3915    
3916  /(?C)a|b/S  /(?C)a|b/IS
3917  Capturing subpattern count = 0  Capturing subpattern count = 0
3918  No options  No options
3919  No first char  No first char
3920  No need char  No need char
3921    Subject length lower bound = 1
3922  Starting byte set: a b  Starting byte set: a b
3923    
3924  /(?R)/  /(?R)/I
3925  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3926    
3927  /(a|(?R))/  /(a|(?R))/I
3928  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3929    
3930  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3931  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3932    
3933  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3934  Capturing subpattern count = 3  Capturing subpattern count = 3
3935  No options  No options
3936  First char = 'x'  First char = 'x'
# Line 3965  No need char Line 3959  No need char
3959   3: xxab   3: xxab
3960      *** Failers      *** Failers
3961  No match  No match
3962      xyab      xyab
3963  No match  No match
3964    
3965  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3966  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3967    
3968  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3969  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3970    
3971  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3972  Capturing subpattern count = 1  Capturing subpattern count = 1
3973  Options: anchored  Options: anchored
3974  No first char  No first char
# Line 3985  No need char Line 3979  No need char
3979      a(b)c      a(b)c
3980   0: a(b)c   0: a(b)c
3981   1: c   1: c
3982      a(b(c))d      a(b(c))d
3983   0: a(b(c))d   0: a(b(c))d
3984   1: d   1: d
3985      *** Failers)      *** Failers)
3986  No match  No match
3987      a(b(c)d      a(b(c)d
3988  No match  No match
3989    
3990  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3991  Capturing subpattern count = 1  Capturing subpattern count = 1
3992  Options: anchored  Options: anchored
3993  No first char  No first char
# Line 4008  Need char = '<' Line 4002  Need char = '<'
4002   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
4003   1: (1(2)3)   1: (1(2)3)
4004    
4005  /(a(?1)b)/D  /(a(?1)b)/DZ
4006  ------------------------------------------------------------------  ------------------------------------------------------------------
4007    0  22 Bra 0          Bra
4008    3  16 Bra 1          CBra 1
4009    6     a          a
4010    8   6 Once          Recurse
4011   11   3 Recurse          b
4012   14   6 Ket          Ket
4013   17     b          Ket
4014   19  16 Ket          End
  22  22 Ket  
  25     End  
4015  ------------------------------------------------------------------  ------------------------------------------------------------------
4016  Capturing subpattern count = 1  Capturing subpattern count = 1
4017  No options  No options
4018  First char = 'a'  First char = 'a'
4019  Need char = 'b'  Need char = 'b'
4020    
4021  /(a(?1)+b)/D  /(a(?1)+b)/DZ
4022  ------------------------------------------------------------------  ------------------------------------------------------------------
4023    0  22 Bra 0          Bra
4024    3  16 Bra 1          CBra 1
4025    6     a          a
4026    8   6 Once          Once
4027   11   3 Recurse          Recurse
4028   14   6 KetRmax          KetRmax
4029   17     b          b
4030   19  16 Ket          Ket
4031   22  22 Ket          Ket
4032   25     End          End
4033  ------------------------------------------------------------------  ------------------------------------------------------------------
4034  Capturing subpattern count = 1  Capturing subpattern count = 1
4035  No options  No options
4036  First char = 'a'  First char = 'a'
4037  Need char = 'b'  Need char = 'b'
4038    
4039  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
 Capturing subpattern count = 4  
 Max back reference = 4  
 Partial matching not supported  
 Options: anchored caseless  
 No first char  
 No need char  
     1221  
  0: 1221  
  1: 1221  
  2: 1  
     Satan, oscillate my metallic sonatas!  
  0: Satan, oscillate my metallic sonatas!  
  1: <unset>  
  2: <unset>  
  3: Satan, oscillate my metallic sonatas  
  4: S  
     A man, a plan, a canal: Panama!  
  0: A man, a plan, a canal: Panama!  
  1: <unset>  
  2: <unset>  
  3: A man, a plan, a canal: Panama  
  4: A  
     Able was I ere I saw Elba.  
  0: Able was I ere I saw Elba.  
  1: <unset>  
  2: <unset>  
  3: Able was I ere I saw Elba  
  4: A  
     *** Failers  
 No match  
     The quick brown fox  
 No match  
   
 /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  
4040  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4041  Options: anchored  Options: anchored
4042  No first char  No first char
4043  No need char  No need char
# Line 4098  No need char Line 4055  No need char
4055  No match  No match
4056      ((2+2)*-3)-7)      ((2+2)*-3)-7)
4057  No match  No match
4058    
4059  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
4060  Capturing subpattern count = 2  Capturing subpattern count = 2
4061  Options: anchored  Options: anchored
4062  No first char  No first char
# Line 4108  No need char Line 4065  No need char
4065   0: xyz   0: xyz
4066   1: xyz   1: xyz
4067   2: y   2: y
4068      xxyzxyzz      xxyzxyzz
4069   0: xxyzxyzz   0: xxyzxyzz
4070   1: xxyzxyzz   1: xxyzxyzz
4071   2: xyzxyz   2: xyzxyz
# Line 4116  No need char Line 4073  No need char
4073  No match  No match
4074      xxyzz      xxyzz
4075  No match  No match
4076      xxyzxyzxyzz      xxyzxyzxyzz
4077  No match  No match
4078    
4079  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4080  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4081  Options: extended  Options: extended
4082  First char = '<'  First char = '<'
4083  Need char = '>'  Need char = '>'
# Line 4141  Need char = '>' Line 4097  Need char = '>'
4097   0: <def>   0: <def>
4098   1: <def>   1: <def>
4099   2: <def>   2: <def>
4100      <abc<>def>      <abc<>def>
4101   0: <abc<>def>   0: <abc<>def>
4102   1: <abc<>def>   1: <abc<>def>
4103   2: <abc<>def>   2: <abc<>def>
4104      <abc<>      <abc<>
4105   0: <>   0: <>
4106   1: <>   1: <>
4107   2: <>   2: <>
# Line 4154  No match Line 4110  No match
4110      <abc      <abc
4111  No match  No match
4112    
4113  /(?1)/  /(?1)/I
4114  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4115    
4116  /((?2)(abc)/  /((?2)(abc)/I
4117  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4118    
4119  /^(abc)def(?1)/  /^(abc)def(?1)/I
4120  Capturing subpattern count = 1  Capturing subpattern count = 1
4121  Options: anchored  Options: anchored
4122  No first char  No first char
# Line 4169  No need char Line 4125  No need char
4125   0: abcdefabc   0: abcdefabc
4126   1: abc   1: abc
4127    
4128  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4129  Capturing subpattern count = 1  Capturing subpattern count = 1
4130  Options: anchored  Options: anchored
4131  No first char  No first char
# Line 4180  No need char Line 4136  No need char
4136      a=b      a=b
4137   0: a=b   0: a=b
4138   1: a   1: a
4139      a=bc      a=bc
4140   0: a=bc   0: a=bc
4141   1: a   1: a
4142    
4143  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4144  Capturing subpattern count = 2  Capturing subpattern count = 2
4145  Options: anchored  Options: anchored
4146  No first char  No first char
# Line 4197  No need char Line 4153  No need char
4153   0: a=b   0: a=b
4154   1: a   1: a
4155   2: b   2: b
4156      a=bc      a=bc
4157   0: a=bc   0: a=bc
4158   1: a   1: a
4159   2: c   2: c
4160    
4161  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4162  ------------------------------------------------------------------  ------------------------------------------------------------------
4163    0  28 Bra 0          Bra
4164    3     a          a
4165    5   5 Bra 1          CBra 1
4166    8     b          b
4167   10   5 Alt          Alt
4168   13     c          c
4169   15  10 Ket          Ket
4170   18     d          d
4171   20   5 Bra 2          CBra 2
4172   23     e          e
4173   25   5 Ket          Ket
4174   28  28 Ket          Ket
4175   31     End          End
4176  ------------------------------------------------------------------  ------------------------------------------------------------------
4177  Capturing subpattern count = 2  Capturing subpattern count = 2
4178  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4229  Need char = 'e' Line 4185  Need char = 'e'
4185   0: abde   0: abde
4186   1: b   1: b
4187   2: e   2: e
4188      acde      acde
4189   0: acde   0: acde
4190   1: c   1: c
4191   2: e   2: e
4192    
4193  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4194  ------------------------------------------------------------------  ------------------------------------------------------------------
4195    0  35 Bra 0          Bra
4196    3  21 Bra 0          Bra
4197    6     a          a
4198    8  13 Bra 1          CBra 1
4199   11     c          c
4200   13   5 Bra 2          CBra 2
4201   16     d          d
4202   18   5 Ket          Ket
4203   21  13 Ket          Ket
4204   24  21 Ket          Ket
4205   27   5 Bra 3          CBra 3
4206   30     a          a
4207   32   5 Ket          Ket
4208   35  35 Ket          Ket
4209   38     End          End
4210  ------------------------------------------------------------------  ------------------------------------------------------------------
4211  Capturing subpattern count = 3  Capturing subpattern count = 3
4212  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4261  No options Line 4217  No options
4217  First char = 'a'  First char = 'a'
4218  Need char = 'a'  Need char = 'a'
4219    
4220  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4221  ------------------------------------------------------------------  ------------------------------------------------------------------
4222    0  34 Bra 0          Bra
4223    3   5 Bra 1          CBra 1
4224    6     a          a
4225    8   5 Ket          Ket
4226   11     Any          Any
4227   12     Any          Any
4228   13     Any          Any
4229   14     \1          \1
4230   17     bbb          bbb
4231   23   6 Once          Recurse
4232   26   3 Recurse          d
4233   29   6 Ket          Ket
4234   32     d          End
  34  34 Ket  
  37     End  
4235  ------------------------------------------------------------------  ------------------------------------------------------------------
4236  Capturing subpattern count = 1  Capturing subpattern count = 1
4237  Max back reference = 1  Max back reference = 1
# Line 4287  No options Line 4241  No options
4241  First char = 'a'  First char = 'a'
4242  Need char = 'd'  Need char = 'd'
4243    
4244  /^\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
4245  Capturing subpattern count = 4  Capturing subpattern count = 4
4246  Max back reference = 4  Max back reference = 4
4247  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4295  Named capturing subpatterns: Line 4249  Named capturing subpatterns:
4249    one     1    one     1
4250    three   3    three   3
4251    two     2    two     2
 Partial matching not supported  
4252  Options: anchored caseless  Options: anchored caseless
4253  No first char  No first char
4254  No need char  No need char
# Line 4315  No need char Line 4268  No need char
4268   2: <unset>   2: <unset>
4269   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4270   4: A   4: A
4271      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4272   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4273   1: <unset>   1: <unset>
4274   2: <unset>   2: <unset>
# Line 4323  No need char Line 4276  No need char
4276   4: A   4: A
4277      *** Failers      *** Failers
4278  No match  No match
4279      The quick brown fox      The quick brown fox
4280  No match  No match
4281    
4282  /((?(R)a|b))\1(?1)?/  /((?(R)a|b))\1(?1)?/I
4283  Capturing subpattern count = 1  Capturing subpattern count = 1
4284  Max back reference = 1  Max back reference = 1
4285  No options  No options
# Line 4335  No need char Line 4288  No need char
4288    bb    bb
4289   0: bb   0: bb
4290   1: b   1: b
4291    bbaa    bbaa
4292   0: bba   0: bba
4293   1: b   1: b
4294    
4295  /(.*)a/sI  /(.*)a/Is
4296  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4297  Options: anchored dotall  Options: anchored dotall
4298  No first char  No first char
4299  Need char = 'a'  Need char = 'a'
4300    
4301  /(.*)a\1/sI  /(.*)a\1/Is
4302  Capturing subpattern count = 1  Capturing subpattern count = 1
4303  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4304  Options: dotall  Options: dotall
4305  No first char  No first char
4306  Need char = 'a'  Need char = 'a'
4307    
4308  /(.*)a(b)\2/sI  /(.*)a(b)\2/Is
4309  Capturing subpattern count = 2  Capturing subpattern count = 2
4310  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4311  Options: anchored dotall  Options: anchored dotall
4312  No first char  No first char
4313  Need char = 'b'  Need char = 'b'
4314    
4315  /((.*)a|(.*)b)z/sI  /((.*)a|(.*)b)z/Is
4316  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4317  Options: anchored dotall  Options: anchored dotall
4318  No first char  No first char
4319  Need char = 'z'  Need char = 'z'
4320    
4321  /((.*)a|(.*)b)z\1/sI  /((.*)a|(.*)b)z\1/Is
4322  Capturing subpattern count = 3  Capturing subpattern count = 3
4323  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4324  Options: dotall  Options: dotall
4325  No first char  No first char
4326  Need char = 'z'  Need char = 'z'
4327    
4328  /((.*)a|(.*)b)z\2/sI  /((.*)a|(.*)b)z\2/Is
4329  Capturing subpattern count = 3  Capturing subpattern count = 3
4330  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4331  Options: dotall  Options: dotall
4332  No first char  No first char
4333  Need char = 'z'  Need char = 'z'
4334    
4335  /((.*)a|(.*)b)z\3/sI  /((.*)a|(.*)b)z\3/Is
4336  Capturing subpattern count = 3  Capturing subpattern count = 3
4337  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4338  Options: dotall  Options: dotall
4339  No first char  No first char
4340  Need char = 'z'  Need char = 'z'
4341    
4342  /((.*)a|^(.*)b)z\3/sI  /((.*)a|^(.*)b)z\3/Is
4343  Capturing subpattern count = 3  Capturing subpattern count = 3
4344  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4345  Options: anchored dotall  Options: anchored dotall
4346  No first char  No first char
4347  Need char = 'z'  Need char = 'z'
4348    
4349  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4350  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4351  Options: anchored dotall  Options: anchored dotall
4352  No first char  No first char
4353  No need char  No need char
4354    
4355  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4356  Capturing subpattern count = 31  Capturing subpattern count = 31
4357  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4358  Options: dotall  Options: dotall
4359  No first char  No first char
4360  No need char  No need char
4361    
4362  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4363  Capturing subpattern count = 32  Capturing subpattern count = 32
4364  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4365  Options: dotall  Options: dotall
4366  No first char  No first char
4367  No need char  No need char
4368    
4369  /(a)(bc)/ND  /(a)(bc)/INDZ
4370  ------------------------------------------------------------------  ------------------------------------------------------------------
4371    0  21 Bra 0          Bra
4372    3   5 Bra 0          Bra
4373    6     a          a
4374    8   5 Ket          Ket
4375   11   7 Bra 0          Bra
4376   14     bc          bc
4377   18   7 Ket          Ket
4378   21  21 Ket          Ket
4379   24     End          End
4380  ------------------------------------------------------------------  ------------------------------------------------------------------
4381  Capturing subpattern count = 0  Capturing subpattern count = 0
4382  Options: no_auto_capture  Options: no_auto_capture
# Line 4443  Need char = 'c' Line 4385  Need char = 'c'
4385    abc    abc
4386   0: abc   0: abc
4387    
4388  /(?P<one>a)(bc)/ND  /(?P<one>a)(bc)/INDZ
4389  ------------------------------------------------------------------  ------------------------------------------------------------------
4390    0  21 Bra 0          Bra
4391    3   5 Bra 1          CBra 1
4392    6     a          a
4393    8   5 Ket          Ket
4394   11   7 Bra 0          Bra
4395   14     bc          bc
4396   18   7 Ket          Ket
4397   21  21 Ket          Ket
4398   24     End          End
4399  ------------------------------------------------------------------  ------------------------------------------------------------------
4400  Capturing subpattern count = 1  Capturing subpattern count = 1
4401  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4465  Need char = 'c' Line 4407  Need char = 'c'
4407   0: abc   0: abc
4408   1: a   1: a
4409    
4410  /(a)(?P<named>bc)/ND  /(a)(?P<named>bc)/INDZ
4411  ------------------------------------------------------------------  ------------------------------------------------------------------
4412    0  21 Bra 0          Bra
4413    3   5 Bra 0          Bra
4414    6     a          a
4415    8   5 Ket          Ket
4416   11   7 Bra 1          CBra 1
4417   14     bc          bc
4418   18   7 Ket          Ket
4419   21  21 Ket          Ket
4420   24     End          End
4421  ------------------------------------------------------------------  ------------------------------------------------------------------
4422  Capturing subpattern count = 1  Capturing subpattern count = 1
4423  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4484  Options: no_auto_capture Line 4426  Options: no_auto_capture
4426  First char = 'a'  First char = 'a'
4427  Need char = 'c'  Need char = 'c'
4428    
4429  /(a+)*zz/  /(a+)*zz/I
4430  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4431  No options  No options
4432  No first char  No first char
4433  Need char = 'z'  Need char = 'z'
# Line 4500  Minimum match() limit = 32768 Line 4441  Minimum match() limit = 32768
4441  Minimum match() recursion limit = 42  Minimum match() recursion limit = 42
4442  No match  No match
4443    
4444  /(aaa(?C1)bbb|ab)/  /(aaa(?C1)bbb|ab)/I
4445  Capturing subpattern count = 1  Capturing subpattern count = 1
4446  No options  No options
4447  First char = 'a'  First char = 'a'
# Line 4527  Callout data = 1 Line 4468  Callout data = 1
4468  Callout data = -1  Callout data = -1
4469  No match  No match
4470    
4471  /ab(?P<one>cd)ef(?P<two>gh)/  /ab(?P<one>cd)ef(?P<two>gh)/I
4472  Capturing subpattern count = 2  Capturing subpattern count = 2
4473  Named capturing subpatterns:  Named capturing subpatterns:
4474    one   1    one   1
# Line 4551  Need char = 'h' Line 4492  Need char = 'h'
4492   2: gh   2: gh
4493    C cd (2) one    C cd (2) one
4494    C gh (2) two    C gh (2) two
4495      abcdefgh\Cthree      abcdefgh\Cthree
4496  no parentheses with name "three"  no parentheses with name "three"
4497   0: abcdefgh   0: abcdefgh
4498   1: cd   1: cd
4499   2: gh   2: gh
4500  copy substring three failed -7  copy substring three failed -7
4501    
4502  /(?P<Tes>)(?P<Test>)/D  /(?P<Tes>)(?P<Test>)/DZ
4503  ------------------------------------------------------------------  ------------------------------------------------------------------
4504    0  15 Bra 0          Bra
4505    3   3 Bra 1          CBra 1
4506    6   3 Ket          Ket
4507    9   3 Bra 2          CBra 2
4508   12   3 Ket          Ket
4509   15  15 Ket          Ket
4510   18     End          End
4511  ------------------------------------------------------------------  ------------------------------------------------------------------
4512  Capturing subpattern count = 2  Capturing subpattern count = 2
4513  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4576  No options Line 4517  No options
4517  No first char  No first char
4518  No need char  No need char
4519    
4520  /(?P<Test>)(?P<Tes>)/D  /(?P<Test>)(?P<Tes>)/DZ
4521  ------------------------------------------------------------------  ------------------------------------------------------------------
4522    0  15 Bra 0          Bra
4523    3   3 Bra 1          CBra 1
4524    6   3 Ket          Ket
4525    9   3 Bra 2          CBra 2
4526   12   3 Ket          Ket
4527   15  15 Ket          Ket
4528   18     End          End
4529  ------------------------------------------------------------------  ------------------------------------------------------------------
4530  Capturing subpattern count = 2  Capturing subpattern count = 2
4531  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4594  No options Line 4535  No options
4535  No first char