/[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 73 by nigel, Sat Feb 24 21:40:30 2007 UTC revision 576 by ph10, Sun Nov 21 18:45:10 2010 UTC
# Line 1  Line 1 
1  PCRE version 4.5 01-December-2003  /-- 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    /-- Originally, the Perl >= 5.10 things were in here too, but now I have
9        separated many (most?) of them out into test 11. However, there may still
10        be some that were overlooked. --/
11    
12  /(a)b|/  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
14  No options  No options
15  No first char  No first char
16  No need char  No need char
17    
18  /abc/  /abc/I
19  Capturing subpattern count = 0  Capturing subpattern count = 0
20  No options  No options
21  First char = 'a'  First char = 'a'
# Line 24  No match Line 33  No match
33      ABC      ABC
34  No match  No match
35    
36  /^abc/  /^abc/I
37  Capturing subpattern count = 0  Capturing subpattern count = 0
38  Options: anchored  Options: anchored
39  No first char  No first char
# Line 40  No match Line 49  No match
49      \Adefabc      \Adefabc
50  No match  No match
51    
52  /a+bc/  /a+bc/I
53  Capturing subpattern count = 0  Capturing subpattern count = 0
54  No options  No options
55  First char = 'a'  First char = 'a'
56  Need char = 'c'  Need char = 'c'
57    
58  /a*bc/  /a*bc/I
59  Capturing subpattern count = 0  Capturing subpattern count = 0
60  No options  No options
61  No first char  No first char
62  Need char = 'c'  Need char = 'c'
63    
64  /a{3}bc/  /a{3}bc/I
65  Capturing subpattern count = 0  Capturing subpattern count = 0
66  No options  No options
67  First char = 'a'  First char = 'a'
68  Need char = 'c'  Need char = 'c'
69    
70  /(abc|a+z)/  /(abc|a+z)/I
71  Capturing subpattern count = 1  Capturing subpattern count = 1
72  No options  No options
73  First char = 'a'  First char = 'a'
74  No need char  No need char
75    
76  /^abc$/  /^abc$/I
77  Capturing subpattern count = 0  Capturing subpattern count = 0
78  Options: anchored  Options: anchored
79  No first char  No first char
# Line 76  No match Line 85  No match
85      def\nabc      def\nabc
86  No match  No match
87    
88  /ab\gdef/X  /ab\idef/X
89  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
90    
91  /(?X)ab\gdef/X  /(?X)ab\idef/X
92  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
93    
94  /x{5,4}/  /x{5,4}/
# Line 94  Failed: missing terminating ] for charac Line 103  Failed: missing terminating ] for charac
103  /(?X)[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
105    
106    /(?X)[\R]/
107    Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\X]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /[\B]/BZ
113    ------------------------------------------------------------------
114            Bra
115            B
116            Ket
117            End
118    ------------------------------------------------------------------
119    
120    /[\R]/BZ
121    ------------------------------------------------------------------
122            Bra
123            R
124            Ket
125            End
126    ------------------------------------------------------------------
127    
128    /[\X]/BZ
129    ------------------------------------------------------------------
130            Bra
131            X
132            Ket
133            End
134    ------------------------------------------------------------------
135    
136  /[z-a]/  /[z-a]/
137  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
138    
# Line 107  Failed: missing ) at offset 4 Line 146  Failed: missing ) at offset 4
146  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
147    
148  /(?z)abc/  /(?z)abc/
149  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
150    
151  /.*b/  /.*b/I
152  Capturing subpattern count = 0  Capturing subpattern count = 0
153  No options  No options
154  First char at start or follows \n  First char at start or follows newline
155  Need char = 'b'  Need char = 'b'
156    
157  /.*?b/  /.*?b/I
158  Capturing subpattern count = 0  Capturing subpattern count = 0
159  No options  No options
160  First char at start or follows \n  First char at start or follows newline
161  Need char = 'b'  Need char = 'b'
162    
163  /cat|dog|elephant/  /cat|dog|elephant/I
164  Capturing subpattern count = 0  Capturing subpattern count = 0
165  No options  No options
166  No first char  No first char
# Line 131  No need char Line 170  No need char
170      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
171   0: elephant   0: elephant
172    
173  /cat|dog|elephant/S  /cat|dog|elephant/IS
174  Capturing subpattern count = 0  Capturing subpattern count = 0
175  No options  No options
176  No first char  No first char
177  No need char  No need char
178  Starting character set: c d e  Subject length lower bound = 3
179    Starting byte set: c d e
180      this sentence eventually mentions a cat      this sentence eventually mentions a cat
181   0: cat   0: cat
182      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
183   0: elephant   0: elephant
184    
185  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
186  Capturing subpattern count = 0  Capturing subpattern count = 0
187  Options: caseless  Options: caseless
188  No first char  No first char
189  No need char  No need char
190  Starting character set: C D E c d e  Subject length lower bound = 3
191    Starting byte set: C D E c d e
192      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
193   0: CAT   0: CAT
194      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
195   0: elephant   0: elephant
196    
197  /a|[bcd]/S  /a|[bcd]/IS
198  Capturing subpattern count = 0  Capturing subpattern count = 0
199  No options  No options
200  No first char  No first char
201  No need char  No need char
202  Starting character set: a b c d  Subject length lower bound = 1
203    Starting byte set: a b c d
204    
205  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
206  Capturing subpattern count = 1  Capturing subpattern count = 1
207  No options  No options
208  No first char  No first char
209  No need char  No need char
210  Starting character set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Subject length lower bound = 1
211    Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
212    \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
213    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
214    ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d    ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d
# Line 180  Starting character set: \x00 \x01 \x02 \ Line 223  Starting character set: \x00 \x01 \x02 \
223    \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
224    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
225    
226  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
227  Capturing subpattern count = 1  Capturing subpattern count = 1
228  No options  No options
229  No first char  No first char
230  No need char  No need char
231  Starting character set: \x09 \x0a \x0c \x0d \x20 a b  Subject length lower bound = 1
232    Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
233    
234  /(ab\2)/  /(ab\2)/
235  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
# Line 193  Failed: reference to non-existent subpat Line 237  Failed: reference to non-existent subpat
237  /{4,5}abc/  /{4,5}abc/
238  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
239    
240  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
241  Capturing subpattern count = 3  Capturing subpattern count = 3
242  Max back reference = 2  Max back reference = 2
243  No options  No options
# Line 218  Matched, but too many substrings Line 262  Matched, but too many substrings
262   0: abcb   0: abcb
263   1: a   1: a
264   2: b   2: b
265      \O12abcb      \O12abcb
266   0: abcb   0: abcb
267   1: a   1: a
268   2: b   2: b
269   3: c   3: c
270    
271  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
272  Capturing subpattern count = 3  Capturing subpattern count = 3
273  Max back reference = 2  Max back reference = 2
274  No options  No options
# Line 266  Matched, but too many substrings Line 310  Matched, but too many substrings
310   2: a   2: a
311   3: b   3: b
312    
313  /abc$/E  /abc$/IE
314  Capturing subpattern count = 0  Capturing subpattern count = 0
315  Options: dollar_endonly  Options: dollar_endonly
316  First char = 'a'  First char = 'a'
# Line 283  No match Line 327  No match
327  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
328  Failed: reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
329    
330  /the quick brown fox/  /the quick brown fox/I
331  Capturing subpattern count = 0  Capturing subpattern count = 0
332  No options  No options
333  First char = 't'  First char = 't'
# Line 293  Need char = 'x' Line 337  Need char = 'x'
337      this is a line with the quick brown fox      this is a line with the quick brown fox
338   0: the quick brown fox   0: the quick brown fox
339    
340  /the quick brown fox/A  /the quick brown fox/IA
341  Capturing subpattern count = 0  Capturing subpattern count = 0
342  Options: anchored  Options: anchored
343  No first char  No first char
# Line 306  No match Line 350  No match
350  No match  No match
351    
352  /ab(?z)cd/  /ab(?z)cd/
353  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
354    
355  /^abc|def/  /^abc|def/I
356  Capturing subpattern count = 0  Capturing subpattern count = 0
357  No options  No options
358  No first char  No first char
# Line 318  No need char Line 362  No need char
362      abcdef\B      abcdef\B
363   0: def   0: def
364    
365  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
366  Capturing subpattern count = 3  Capturing subpattern count = 3
367  No options  No options
368  First char at start or follows \n  First char at start or follows newline
369  No need char  No need char
370      defabc      defabc
371   0: defabc   0: defabc
# Line 338  No need char Line 382  No need char
382   0: abc   0: abc
383      *** Failers      *** Failers
384  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
385    
386  /^abc|def/P  /^abc|def/P
387      abcdef      abcdef
388   0: abc   0: abc
# Line 354  No match: POSIX code 17: match failed Line 398  No match: POSIX code 17: match failed
398   0: def   0: def
399   1: def   1: def
400   3: def   3: def
401    
402  /the quick brown fox/P  /the quick brown fox/P
403      the quick brown fox      the quick brown fox
404   0: the quick brown fox   0: the quick brown fox
405      *** Failers      *** Failers
406  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
407      The Quick Brown Fox      The Quick Brown Fox
408  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
409    
410  /the quick brown fox/Pi  /the quick brown fox/Pi
411      the quick brown fox      the quick brown fox
412   0: the quick brown fox   0: the quick brown fox
413      The Quick Brown Fox      The Quick Brown Fox
414   0: The Quick Brown Fox   0: The Quick Brown Fox
415    
416  /abc.def/P  /abc.def/P
# Line 374  No match: POSIX code 17: match failed Line 418  No match: POSIX code 17: match failed
418  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
419      abc\ndef      abc\ndef
420  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
421    
422  /abc$/P  /abc$/P
423      abc      abc
424   0: abc   0: abc
425      abc\n      abc\n
426   0: abc   0: abc
427    
428  /(abc)\2/P  /(abc)\2/P
# Line 394  Failed: unmatched parentheses at offset Line 438  Failed: unmatched parentheses at offset
438  /a[]b/  /a[]b/
439  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
440    
441  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
442  Capturing subpattern count = 0  Capturing subpattern count = 0
443  No options  No options
444  No first char  No first char
445  No need char  No need char
446      co-processors, and for      co-processors, and for
447   0: -pr   0: -pr
448    
449  /<.*>/  /<.*>/I
450  Capturing subpattern count = 0  Capturing subpattern count = 0
451  No options  No options
452  First char = '<'  First char = '<'
# Line 410  Need char = '>' Line 454  Need char = '>'
454      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
455   0: <def>ghi<klm>   0: <def>ghi<klm>
456    
457  /<.*?>/  /<.*?>/I
458  Capturing subpattern count = 0  Capturing subpattern count = 0
459  No options  No options
460  First char = '<'  First char = '<'
# Line 418  Need char = '>' Line 462  Need char = '>'
462      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
463   0: <def>   0: <def>
464    
465  /<.*>/U  /<.*>/IU
466  Capturing subpattern count = 0  Capturing subpattern count = 0
467  Options: ungreedy  Options: ungreedy
468  First char = '<'  First char = '<'
469  Need char = '>'  Need char = '>'
470      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
471   0: <def>   0: <def>
472    
473  /(?U)<.*>/  /(?U)<.*>/I
474  Capturing subpattern count = 0  Capturing subpattern count = 0
475  Options: ungreedy  Options: ungreedy
476  First char = '<'  First char = '<'
# Line 434  Need char = '>' Line 478  Need char = '>'
478      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
479   0: <def>   0: <def>
480    
481  /<.*?>/U  /<.*?>/IU
482  Capturing subpattern count = 0  Capturing subpattern count = 0
483  Options: ungreedy  Options: ungreedy
484  First char = '<'  First char = '<'
485  Need char = '>'  Need char = '>'
486      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
487   0: <def>ghi<klm>   0: <def>ghi<klm>
488    
489  /={3,}/U  /={3,}/IU
490  Capturing subpattern count = 0  Capturing subpattern count = 0
491  Options: ungreedy  Options: ungreedy
492  First char = '='  First char = '='
493  Need char = '='  Need char = '='
494      abc========def      abc========def
495   0: ===   0: ===
496    
497  /(?U)={3,}?/  /(?U)={3,}?/I
498  Capturing subpattern count = 0  Capturing subpattern count = 0
499  Options: ungreedy  Options: ungreedy
500  First char = '='  First char = '='
501  Need char = '='  Need char = '='
502      abc========def      abc========def
503   0: ========   0: ========
504    
505  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
506  Capturing subpattern count = 0  Capturing subpattern count = 0
507  No options  No options
508  First char = 'f'  First char = 'f'
509  Need char = 'o'  Need char = 'o'
510      foo      foo
511   0: foo   0: foo
512      catfoo      catfoo
513   0: foo   0: foo
514      *** Failers      *** Failers
515  No match  No match
516      the barfoo      the barfoo
517  No match  No match
518      and cattlefoo      and cattlefoo
519  No match  No match
520    
521  /(?<=a+)b/  /(?<=a+)b/
# Line 483  Failed: lookbehind assertion is not fixe Line 527  Failed: lookbehind assertion is not fixe
527  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
528  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
529    
530  /(?i)abc/  /(?i)abc/I
531  Capturing subpattern count = 0  Capturing subpattern count = 0
532  Options: caseless  Options: caseless
533  First char = 'a' (caseless)  First char = 'a' (caseless)
534  Need char = 'c' (caseless)  Need char = 'c' (caseless)
535    
536  /(a|(?m)a)/  /(a|(?m)a)/I
537  Capturing subpattern count = 1  Capturing subpattern count = 1
538  No options  No options
539  First char = 'a'  First char = 'a'
540  No need char  No need char
541    
542  /(?i)^1234/  /(?i)^1234/I
543  Capturing subpattern count = 0  Capturing subpattern count = 0
544  Options: anchored caseless  Options: anchored caseless
545  No first char  No first char
546  No need char  No need char
547    
548  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
549  Capturing subpattern count = 1  Capturing subpattern count = 1
550  Options: anchored  Options: anchored
 Case state changes  
551  No first char  No first char
552  No need char  No need char
553    
554  /(?s).*/  /(?s).*/I
555  Capturing subpattern count = 0  Capturing subpattern count = 0
556  Options: anchored dotall  Options: anchored dotall
557  No first char  No first char
558  No need char  No need char
559    
560  /[abcd]/S  /[abcd]/IS
561  Capturing subpattern count = 0  Capturing subpattern count = 0
562  No options  No options
563  No first char  No first char
564  No need char  No need char
565  Starting character set: a b c d  Subject length lower bound = 1
566    Starting byte set: a b c d
567    
568  /(?i)[abcd]/S  /(?i)[abcd]/IS
569  Capturing subpattern count = 0  Capturing subpattern count = 0
570  Options: caseless  Options: caseless
571  No first char  No first char
572  No need char  No need char
573  Starting character set: A B C D a b c d  Subject length lower bound = 1
574    Starting byte set: A B C D a b c d
575    
576  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
577  Capturing subpattern count = 1  Capturing subpattern count = 1
578  Options: multiline  Options: multiline
579  No first char  No first char
580  No need char  No need char
581  Starting character set: b c x y  Subject length lower bound = 1
582    Starting byte set: b c x y
583    
584  /(^a|^b)/m  /(^a|^b)/Im
585  Capturing subpattern count = 1  Capturing subpattern count = 1
586  Options: multiline  Options: multiline
587  First char at start or follows \n  First char at start or follows newline
588  No need char  No need char
589    
590  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
591  Capturing subpattern count = 1  Capturing subpattern count = 1
592  Options: caseless multiline  Options: caseless multiline
593  First char at start or follows \n  First char at start or follows newline
594  No need char  No need char
595    
596  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 554  Failed: conditional group contains more Line 600  Failed: conditional group contains more
600  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
601    
602  /(?(1a)/  /(?(1a)/
603  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
604    
605    /(?(1a))/
606    Failed: reference to non-existent subpattern at offset 6
607    
608  /(?(?i))/  /(?(?i))/
609  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
610    
611  /(?(abc))/  /(?(abc))/
612  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
613    
614  /(?(?<ab))/  /(?(?<ab))/
615  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
616    
617  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
618  Capturing subpattern count = 1  Capturing subpattern count = 1
619  Max back reference = 1  Max back reference = 1
620  No options  No options
621  First char = 'b'  First char = 'b'
622  Need char = 'h'  Need char = 'h'
623    
624  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
625  Capturing subpattern count = 1  Capturing subpattern count = 1
626  Max back reference = 1  Max back reference = 1
627  No options  No options
 Case state changes  
628  First char = 'b' (caseless)  First char = 'b' (caseless)
629  Need char = 'h' (caseless)  Need char = 'h' (caseless)
630    
631  /((?i)b)/DS  /((?i)b)/IDZS
632  ------------------------------------------------------------------  ------------------------------------------------------------------
633    0  16 Bra 0          Bra
634    3   8 Bra 1          CBra 1
635    6  01 Opt       01 Opt
636    8   1 b       NC b
637   11   8 Ket          Ket
638   14  00 Opt       00 Opt
639   16  16 Ket          Ket
640   19     End          End
641  ------------------------------------------------------------------  ------------------------------------------------------------------
642  Capturing subpattern count = 1  Capturing subpattern count = 1
643  No options  No options
 Case state changes  
644  First char = 'b' (caseless)  First char = 'b' (caseless)
645  No need char  No need char
646  Study returned NULL  Subject length lower bound = 1
647    No set of starting bytes
648    
649  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
650  Capturing subpattern count = 1  Capturing subpattern count = 1
651  No options  No options
 Case state changes  
652  No first char  No first char
653  No need char  No need char
654  Starting character set: C a b c d  Subject length lower bound = 1
655    Starting byte set: C a b c d
656    
657  /a$/  /a$/I
658  Capturing subpattern count = 0  Capturing subpattern count = 0
659  No options  No options
660  First char = 'a'  First char = 'a'
# Line 615  No need char Line 663  No need char
663   0: a   0: a
664      a\n      a\n
665   0: a   0: a
666      *** Failers      *** Failers
667  No match  No match
668      \Za      \Za
669  No match  No match
670      \Za\n      \Za\n
671  No match  No match
672    
673  /a$/m  /a$/Im
674  Capturing subpattern count = 0  Capturing subpattern count = 0
675  Options: multiline  Options: multiline
676  First char = 'a'  First char = 'a'
# Line 631  No need char Line 679  No need char
679   0: a   0: a
680      a\n      a\n
681   0: a   0: a
682      \Za\n      \Za\n
683   0: a   0: a
684      *** Failers      *** Failers
685  No match  No match
686      \Za      \Za
687  No match  No match
688    
689  /\Aabc/m  /\Aabc/Im
690  Capturing subpattern count = 0  Capturing subpattern count = 0
691  Options: anchored multiline  Options: anchored multiline
692  No first char  No first char
693  No need char  No need char
694    
695  /^abc/m  /^abc/Im
696  Capturing subpattern count = 0  Capturing subpattern count = 0
697  Options: multiline  Options: multiline
698  First char at start or follows \n  First char at start or follows newline
699  Need char = 'c'  Need char = 'c'
700    
701  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
702  Capturing subpattern count = 5  Capturing subpattern count = 5
703  Options: anchored  Options: anchored
704  No first char  No first char
# Line 663  No need char Line 711  No need char
711   4: bbbbccccc   4: bbbbccccc
712   5: def   5: def
713    
714  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
715  Capturing subpattern count = 0  Capturing subpattern count = 0
716  No options  No options
717  No first char  No first char
718  No need char  No need char
719  Starting character set: a b  Subject length lower bound = 1
720    Starting byte set: a b
721    
722  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
723  Capturing subpattern count = 1  Capturing subpattern count = 1
724  No options  No options
725  No first char  No first char
726  Need char = 'a'  Need char = 'a'
727  Starting character set: a o  Subject length lower bound = 5
728    Starting byte set: a o
729    
730  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
731  Capturing subpattern count = 0  Capturing subpattern count = 0
732  No options  No options
733  No first char  No first char
734  No need char  No need char
735  Starting character set: a b  Subject length lower bound = 1
736    Starting byte set: a b
737    
738    /(?<=foo\n)^bar/Im
739    Capturing subpattern count = 0
740    Contains explicit CR or LF match
741    Options: multiline
742    No first char
743    Need char = 'r'
744        foo\nbarbar
745     0: bar
746        ***Failers
747    No match
748        rhubarb
749    No match
750        barbell
751    No match
752        abc\nbarton
753    No match
754    
755  /(?<=foo\n)^bar/m  /^(?<=foo\n)bar/Im
756  Capturing subpattern count = 0  Capturing subpattern count = 0
757    Contains explicit CR or LF match
758  Options: multiline  Options: multiline
759  First char at start or follows \n  First char at start or follows newline
760  Need char = 'r'  Need char = 'r'
761        foo\nbarbar
762     0: bar
763        ***Failers
764    No match
765        rhubarb
766    No match
767        barbell
768    No match
769        abc\nbarton
770    No match
771    
772  /(?>^abc)/m  /(?>^abc)/Im
773  Capturing subpattern count = 0  Capturing subpattern count = 0
774  Options: multiline  Options: multiline
775  First char at start or follows \n  First char at start or follows newline
776  Need char = 'c'  Need char = 'c'
777      abc      abc
778   0: abc   0: abc
# Line 701  Need char = 'c' Line 780  Need char = 'c'
780   0: abc   0: abc
781      *** Failers      *** Failers
782  No match  No match
783      defabc      defabc
784  No match  No match
785    
786  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 714  Failed: lookbehind assertion is not fixe Line 793  Failed: lookbehind assertion is not fixe
793  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
794    
795  /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'  
796    
797  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
798  Capturing subpattern count = 0  Capturing subpattern count = 0
799  No options  No options
800  First char = '-'  First char = '-'
# Line 732  Need char = 't' Line 807  Need char = 't'
807  No match  No match
808      cart      cart
809  No match  No match
810      horse-and-cart      horse-and-cart
811  No match  No match
812    
813  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
814  Capturing subpattern count = 0  Capturing subpattern count = 0
815  No options  No options
 Case state changes  
816  No first char  No first char
817  No need char  No need char
818    
819  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
820  Capturing subpattern count = 2  Capturing subpattern count = 2
821  No options  No options
822  First char at start or follows \n  First char at start or follows newline
823  No need char  No need char
824      alphabetabcd      alphabetabcd
825   0: alphabetabcd   0: alphabetabcd
# Line 755  No need char Line 829  No need char
829   1: <unset>   1: <unset>
830   2: xyz   2: xyz
831    
832  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
833  Capturing subpattern count = 0  Capturing subpattern count = 0
834  No options  No options
 Case state changes  
835  First char = 'Z'  First char = 'Z'
836  Need char = 'Z'  Need char = 'Z'
837      abxyZZ      abxyZZ
# Line 771  Need char = 'Z' Line 844  Need char = 'Z'
844   0: ZZ   0: ZZ
845      bZZ      bZZ
846   0: ZZ   0: ZZ
847      BZZ      BZZ
848   0: ZZ   0: ZZ
849      *** Failers      *** Failers
850  No match  No match
851      ZZ      ZZ
852  No match  No match
853      abXYZZ      abXYZZ
854  No match  No match
855      zzz      zzz
856  No match  No match
857      bzz      bzz
858  No match  No match
859    
860  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
861  Capturing subpattern count = 1  Capturing subpattern count = 1
862  No options  No options
863  First char = 'b'  First char = 'b'
864  Need char = 'r'  Need char = 'r'
865      bar      bar
866   0: bar   0: bar
867      foobbar      foobbar
868   0: bar   0: bar
869      *** Failers      *** Failers
870  No match  No match
871      fooabar      fooabar
872  No match  No match
873    
874  /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
875  Capturing subpattern count = 0  Capturing subpattern count = 0
876  No options  No options
877  First char = 'T'  First char = 'T'
878  Need char = 't'  Need char = 't'
879    
880  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
881  Capturing subpattern count = 1  Capturing subpattern count = 1
882  Options: anchored  Options: anchored
883  No first char  No first char
884  No need char  No need char
885      *** Failers      *** Failers
886  No match  No match
887      a      a
888  No match  No match
889    
890  /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
891  Capturing subpattern count = 0  Capturing subpattern count = 0
892  No options  No options
893  First char = 'T'  First char = 'T'
894  Need char = 'g'  Need char = 'g'
895    
896  /^(a\1?){4}$/  /^(a\1?){4}$/I
897  Capturing subpattern count = 1  Capturing subpattern count = 1
898  Max back reference = 1  Max back reference = 1
899  Options: anchored  Options: anchored
900  No first char  No first char
901  No need char  No need char
902        aaaa
903    No match
904      aaaaaa      aaaaaa
905   0: aaaaaa  No match
  1: aa  
906    
907  /These are syntax tests from Perl 5.005/  /Perl does not fail these two for the final subjects. Neither did PCRE until/
908    /release 8.01. The problem is in backtracking into a subpattern that contains/
909    No match
910    /a recursive reference to itself. PCRE has now made these into atomic patterns./
911    No match
912    
913    /^(xa|=?\1a){2}$/
914        xa=xaa
915     0: xa=xaa
916     1: =xaa
917        ** Failers
918    No match
919        xa=xaaa
920    No match
921    
922    /^(xa|=?\1a)+$/
923        xa=xaa
924     0: xa=xaa
925     1: =xaa
926        ** Failers
927    No match
928        xa=xaaa
929    No match
930    
931    /These are syntax tests from Perl 5.005/I
932  Capturing subpattern count = 0  Capturing subpattern count = 0
933  No options  No options
934  First char = 'T'  First char = 'T'
# Line 872  Failed: reference to non-existent subpat Line 970  Failed: reference to non-existent subpat
970  /(a)|\2/  /(a)|\2/
971  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
972    
973  /a[b-a]/i  /a[b-a]/Ii
974  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
975    
976  /a[]b/i  /a[]b/Ii
977  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
978    
979  /a[/i  /a[/Ii
980  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
981    
982  /*a/i  /*a/Ii
983  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
984    
985  /(*)b/i  /(*)b/Ii
986  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
987    
988  /abc)/i  /abc)/Ii
989  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
990    
991  /(abc/i  /(abc/Ii
992  Failed: missing ) at offset 4  Failed: missing ) at offset 4
993    
994  /a**/i  /a**/Ii
995  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
996    
997  /)(/i  /)(/Ii
998  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
999    
1000  /:(?:/  /:(?:/
# Line 906  Failed: missing ) at offset 4 Line 1004  Failed: missing ) at offset 4
1004  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
1005    
1006  /a(?{)b/  /a(?{)b/
1007  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1008    
1009  /a(?{{})b/  /a(?{{})b/
1010  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1011    
1012  /a(?{}})b/  /a(?{}})b/
1013  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1014    
1015  /a(?{"{"})b/  /a(?{"{"})b/
1016  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1017    
1018  /a(?{"{"}})b/  /a(?{"{"}})b/
1019  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1020    
1021  /(?(1?)a|b)/  /(?(1?)a|b)/
1022  Failed: malformed number after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
   
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
1023    
1024  /[a[:xyz:/  /[a[:xyz:/
1025  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
# Line 944  Failed: POSIX code 9: bad escape sequenc Line 1039  Failed: POSIX code 9: bad escape sequenc
1039  /abc/\i  /abc/\i
1040  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
1041    
1042  /(a)bc(d)/  /(a)bc(d)/I
1043  Capturing subpattern count = 2  Capturing subpattern count = 2
1044  No options  No options
1045  First char = 'a'  First char = 'a'
# Line 963  Need char = 'd' Line 1058  Need char = 'd'
1058   1: a   1: a
1059   2: d   2: d
1060  copy substring 5 failed -7  copy substring 5 failed -7
1061    
1062  /(.{20})/  /(.{20})/I
1063  Capturing subpattern count = 1  Capturing subpattern count = 1
1064  No options  No options
1065  No first char  No first char
# Line 975  No need char Line 1070  No need char
1070      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1071   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1072   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1073  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1074      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1075   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1076   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1077   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1078    
1079  /(.{15})/  /(.{15})/I
1080  Capturing subpattern count = 1  Capturing subpattern count = 1
1081  No options  No options
1082  No first char  No first char
# Line 995  No need char Line 1090  No need char
1090   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1091   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1092    
1093  /(.{16})/  /(.{16})/I
1094  Capturing subpattern count = 1  Capturing subpattern count = 1
1095  No options  No options
1096  No first char  No first char
# Line 1006  No need char Line 1101  No need char
1101      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1102   0: abcdefghijklmnop   0: abcdefghijklmnop
1103   1: abcdefghijklmnop   1: abcdefghijklmnop
1104  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1105   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1106   0L abcdefghijklmnop   0L abcdefghijklmnop
1107   1L abcdefghijklmnop   1L abcdefghijklmnop
1108    
1109  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1110  Capturing subpattern count = 3  Capturing subpattern count = 3
1111  Options: anchored  Options: anchored
1112  No first char  No first char
1113  No need char  No need char
1114      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1115   0: adef   0: adef
1116   1: a   1: a
1117   2: <unset>   2: <unset>
# Line 1029  get substring 4 failed -7 Line 1124  get substring 4 failed -7
1124   1L a   1L a
1125   2L   2L
1126   3L f   3L f
1127      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1128   0: bcdef   0: bcdef
1129   1: bc   1: bc
1130   2: bc   2: bc
# Line 1042  get substring 4 failed -7 Line 1137  get substring 4 failed -7
1137   1L bc   1L bc
1138   2L bc   2L bc
1139   3L f   3L f
1140      adefghijk\C0      adefghijk\C0
1141   0: adef   0: adef
1142   1: a   1: a
1143   2: <unset>   2: <unset>
1144   3: f   3: f
1145   0C adef (4)   0C adef (4)
1146    
1147  /^abc\00def/  /^abc\00def/I
1148  Capturing subpattern count = 0  Capturing subpattern count = 0
1149  Options: anchored  Options: anchored
1150  No first char  No first char
1151  No need char  No need char
1152      abc\00def\L\C0      abc\00def\L\C0
1153   0: abc\x00def   0: abc\x00def
1154   0C abc (7)   0C abc (7)
1155   0L abc   0L abc
1156    
1157  /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]+
1158  )((?:[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]+
1159  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 428  
1160  Capturing subpattern count = 8  Capturing subpattern count = 8
1161    Contains explicit CR or LF match
1162  No options  No options
1163  First char = 'w'  First char = 'w'
1164  Need char = 'd'  Need char = 'd'
1165    
1166  /.*X/D  /.*X/IDZ
1167  ------------------------------------------------------------------  ------------------------------------------------------------------
1168    0   8 Bra 0          Bra
1169    3     Any*          Any*
1170    5   1 X          X
1171    8   8 Ket          Ket
1172   11     End          End
1173  ------------------------------------------------------------------  ------------------------------------------------------------------
1174  Capturing subpattern count = 0  Capturing subpattern count = 0
1175  No options  No options
1176  First char at start or follows \n  First char at start or follows newline
1177  Need char = 'X'  Need char = 'X'
1178    
1179  /.*X/Ds  /.*X/IDZs
1180  ------------------------------------------------------------------  ------------------------------------------------------------------
1181    0   8 Bra 0          Bra
1182    3     Any*          AllAny*
1183    5   1 X          X
1184    8   8 Ket          Ket
1185   11     End          End
1186  ------------------------------------------------------------------  ------------------------------------------------------------------
1187  Capturing subpattern count = 0  Capturing subpattern count = 0
1188  Options: anchored dotall  Options: anchored dotall
1189  No first char  No first char
1190  Need char = 'X'  Need char = 'X'
1191    
1192  /(.*X|^B)/D  /(.*X|^B)/IDZ
1193  ------------------------------------------------------------------  ------------------------------------------------------------------
1194    0  21 Bra 0          Bra
1195    3   8 Bra 1          CBra 1
1196    6     Any*          Any*
1197    8   1 X          X
1198   11   7 Alt          Alt
1199   14     ^          ^
1200   15   1 B          B
1201   18  15 Ket          Ket
1202   21  21 Ket          Ket
1203   24     End          End
1204  ------------------------------------------------------------------  ------------------------------------------------------------------
1205  Capturing subpattern count = 1  Capturing subpattern count = 1
1206  No options  No options
1207  First char at start or follows \n  First char at start or follows newline
1208  No need char  No need char
1209    
1210  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1211  ------------------------------------------------------------------  ------------------------------------------------------------------
1212    0  21 Bra 0          Bra
1213    3   8 Bra 1          CBra 1
1214    6     Any*          AllAny*
1215    8   1 X          X
1216   11   7 Alt          Alt
1217   14     ^          ^
1218   15   1 B          B
1219   18  15 Ket          Ket
1220   21  21 Ket          Ket
1221   24     End          End
1222  ------------------------------------------------------------------  ------------------------------------------------------------------
1223  Capturing subpattern count = 1  Capturing subpattern count = 1
1224  Options: anchored dotall  Options: anchored dotall
1225  No first char  No first char
1226  No need char  No need char
1227    
1228  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1229  ------------------------------------------------------------------  ------------------------------------------------------------------
1230    0  21 Bra 0          Bra
1231    3   8 Bra 1          CBra 1
1232    6     Any*          AllAny*
1233    8   1 X          X
1234   11   7 Alt          Alt
1235   14     ^          ^
1236   15   1 B          B
1237   18  15 Ket          Ket
1238   21  21 Ket          Ket
1239   24     End          End
1240  ------------------------------------------------------------------  ------------------------------------------------------------------
1241  Capturing subpattern count = 1  Capturing subpattern count = 1
1242  Options: anchored dotall  Options: anchored dotall
1243  No first char  No first char
1244  No need char  No need char
1245    
1246  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1247  ------------------------------------------------------------------  ------------------------------------------------------------------
1248    0  27 Bra 0          Bra
1249    3  10 Bra 0          Bra
1250    6  04 Opt       04 Opt
1251    8     Any*          AllAny*
1252   10   1 X          X
1253   13   9 Alt          Alt
1254   16  04 Opt       04 Opt
1255   18     ^          ^
1256   19   1 B          B
1257   22  19 Ket          Ket
1258   25  00 Opt       00 Opt
1259   27  27 Ket          Ket
1260   30     End          End
1261  ------------------------------------------------------------------  ------------------------------------------------------------------
1262  Capturing subpattern count = 0  Capturing subpattern count = 0
1263  No options  Options: anchored
1264  First char at start or follows \n  No first char
1265  No need char  No need char
1266    
1267  /\Biss\B/+  /\Biss\B/I+
1268  Capturing subpattern count = 0  Capturing subpattern count = 0
1269  No options  No options
1270  First char = 'i'  First char = 'i'
# Line 1178  Need char = 's' Line 1273  Need char = 's'
1273   0: iss   0: iss
1274   0+ issippi   0+ issippi
1275    
1276  /\Biss\B/+P  /\Biss\B/I+P
1277      Mississippi      Mississippi
1278   0: iss   0: iss
1279   0+ issippi   0+ issippi
1280    
1281  /iss/G+  /iss/IG+
1282  Capturing subpattern count = 0  Capturing subpattern count = 0
1283  No options  No options
1284  First char = 'i'  First char = 'i'
# Line 1194  Need char = 's' Line 1289  Need char = 's'
1289   0: iss   0: iss
1290   0+ ippi   0+ ippi
1291    
1292  /\Biss\B/G+  /\Biss\B/IG+
1293  Capturing subpattern count = 0  Capturing subpattern count = 0
1294  No options  No options
1295  First char = 'i'  First char = 'i'
# Line 1203  Need char = 's' Line 1298  Need char = 's'
1298   0: iss   0: iss
1299   0+ issippi   0+ issippi
1300    
1301  /\Biss\B/g+  /\Biss\B/Ig+
1302  Capturing subpattern count = 0  Capturing subpattern count = 0
1303  No options  No options
1304  First char = 'i'  First char = 'i'
# Line 1218  No match Line 1313  No match
1313      Mississippi\A      Mississippi\A
1314  No match  No match
1315    
1316  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1317  Capturing subpattern count = 0  Capturing subpattern count = 0
1318  No options  No options
1319  First char = 'i'  First char = 'i'
# Line 1229  Need char = 's' Line 1324  Need char = 's'
1324   0: iss   0: iss
1325   0+ ippi   0+ ippi
1326    
1327  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1328  Capturing subpattern count = 0  Capturing subpattern count = 0
1329  No options  No options
1330  First char = 'i'  First char = 'i'
# Line 1238  Need char = 's' Line 1333  Need char = 's'
1333   0: iss   0: iss
1334   0+ issippi   0+ issippi
1335    
1336  /^iss/g+  /^iss/Ig+
1337  Capturing subpattern count = 0  Capturing subpattern count = 0
1338  Options: anchored  Options: anchored
1339  No first char  No first char
# Line 1246  No need char Line 1341  No need char
1341      ississippi      ississippi
1342   0: iss   0: iss
1343   0+ issippi   0+ issippi
1344    
1345  /.*iss/g+  /.*iss/Ig+
1346  Capturing subpattern count = 0  Capturing subpattern count = 0
1347  No options  No options
1348  First char at start or follows \n  First char at start or follows newline
1349  Need char = 's'  Need char = 's'
1350      abciss\nxyzisspqr      abciss\nxyzisspqr
1351   0: abciss   0: abciss
1352   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1353   0: xyziss   0: xyziss
1354   0+ pqr   0+ pqr
1355    
1356  /.i./+g  /.i./I+g
1357  Capturing subpattern count = 0  Capturing subpattern count = 0
1358  No options  No options
1359  No first char  No first char
# Line 1284  Need char = 'i' Line 1379  Need char = 'i'
1379   0+ river   0+ river
1380   0: riv   0: riv
1381   0+ er   0+ er
1382      Missouri river\A      Missouri river\A
1383   0: Mis   0: Mis
1384   0+ souri river   0+ souri river
1385    
1386  /^.is/+g  /^.is/I+g
1387  Capturing subpattern count = 0  Capturing subpattern count = 0
1388  Options: anchored  Options: anchored
1389  No first char  No first char
# Line 1297  No need char Line 1392  No need char
1392   0: Mis   0: Mis
1393   0+ sissippi   0+ sissippi
1394    
1395  /^ab\n/g+  /^ab\n/Ig+
1396  Capturing subpattern count = 0  Capturing subpattern count = 0
1397    Contains explicit CR or LF match
1398  Options: anchored  Options: anchored
1399  No first char  No first char
1400  No need char  No need char
# Line 1306  No need char Line 1402  No need char
1402   0: ab\x0a   0: ab\x0a
1403   0+ ab\x0acd   0+ ab\x0acd
1404    
1405  /^ab\n/mg+  /^ab\n/Img+
1406  Capturing subpattern count = 0  Capturing subpattern count = 0
1407    Contains explicit CR or LF match
1408  Options: multiline  Options: multiline
1409  First char at start or follows \n  First char at start or follows newline
1410  Need char = 10  Need char = 10
1411      ab\nab\ncd      ab\nab\ncd
1412   0: ab\x0a   0: ab\x0a
# Line 1317  Need char = 10 Line 1414  Need char = 10
1414   0: ab\x0a   0: ab\x0a
1415   0+ cd   0+ cd
1416    
1417  /abc/  /abc/I
1418  Capturing subpattern count = 0  Capturing subpattern count = 0
1419  No options  No options
1420  First char = 'a'  First char = 'a'
1421  Need char = 'c'  Need char = 'c'
1422    
1423  /abc|bac/  /abc|bac/I
1424  Capturing subpattern count = 0  Capturing subpattern count = 0
1425  No options  No options
1426  No first char  No first char
1427  Need char = 'c'  Need char = 'c'
1428    
1429  /(abc|bac)/  /(abc|bac)/I
1430  Capturing subpattern count = 1  Capturing subpattern count = 1
1431  No options  No options
1432  No first char  No first char
1433  Need char = 'c'  Need char = 'c'
1434    
1435  /(abc|(c|dc))/  /(abc|(c|dc))/I
1436  Capturing subpattern count = 2  Capturing subpattern count = 2
1437  No options  No options
1438  No first char  No first char
1439  Need char = 'c'  Need char = 'c'
1440    
1441  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1442  Capturing subpattern count = 2  Capturing subpattern count = 2
1443  No options  No options
1444  No first char  No first char
1445  Need char = 'c'  Need char = 'c'
1446    
1447  /a*/  /a*/I
1448  Capturing subpattern count = 0  Capturing subpattern count = 0
1449  No options  No options
1450  No first char  No first char
1451  No need char  No need char
1452    
1453  /a+/  /a+/I
1454  Capturing subpattern count = 0  Capturing subpattern count = 0
1455  No options  No options
1456  First char = 'a'  First char = 'a'
1457  No need char  No need char
1458    
1459  /(baa|a+)/  /(baa|a+)/I
1460  Capturing subpattern count = 1  Capturing subpattern count = 1
1461  No options  No options
1462  No first char  No first char
1463  Need char = 'a'  Need char = 'a'
1464    
1465  /a{0,3}/  /a{0,3}/I
1466  Capturing subpattern count = 0  Capturing subpattern count = 0
1467  No options  No options
1468  No first char  No first char
1469  No need char  No need char
1470    
1471  /baa{3,}/  /baa{3,}/I
1472  Capturing subpattern count = 0  Capturing subpattern count = 0
1473  No options  No options
1474  First char = 'b'  First char = 'b'
1475  Need char = 'a'  Need char = 'a'
1476    
1477  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1478  Capturing subpattern count = 1  Capturing subpattern count = 1
1479  No options  No options
1480  First char = '"'  First char = '"'
1481  Need char = '"'  Need char = '"'
1482    
1483  /(abc|ab[cd])/  /(abc|ab[cd])/I
1484  Capturing subpattern count = 1  Capturing subpattern count = 1
1485  No options  No options
1486  First char = 'a'  First char = 'a'
1487  No need char  No need char
1488    
1489  /(a|.)/  /(a|.)/I
1490  Capturing subpattern count = 1  Capturing subpattern count = 1
1491  No options  No options
1492  No first char  No first char
1493  No need char  No need char
1494    
1495  /a|ba|\w/  /a|ba|\w/I
1496  Capturing subpattern count = 0  Capturing subpattern count = 0
1497  No options  No options
1498  No first char  No first char
1499  No need char  No need char
1500    
1501  /abc(?=pqr)/  /abc(?=pqr)/I
1502  Capturing subpattern count = 0  Capturing subpattern count = 0
1503  No options  No options
1504  First char = 'a'  First char = 'a'
1505  Need char = 'r'  Need char = 'r'
1506    
1507  /...(?<=abc)/  /...(?<=abc)/I
1508  Capturing subpattern count = 0  Capturing subpattern count = 0
1509  No options  No options
1510  No first char  No first char
1511  No need char  No need char
1512    
1513  /abc(?!pqr)/  /abc(?!pqr)/I
1514  Capturing subpattern count = 0  Capturing subpattern count = 0
1515  No options  No options
1516  First char = 'a'  First char = 'a'
1517  Need char = 'c'  Need char = 'c'
1518    
1519  /ab./  /ab./I
1520  Capturing subpattern count = 0  Capturing subpattern count = 0
1521  No options  No options
1522  First char = 'a'  First char = 'a'
1523  Need char = 'b'  Need char = 'b'
1524    
1525  /ab[xyz]/  /ab[xyz]/I
1526  Capturing subpattern count = 0  Capturing subpattern count = 0
1527  No options  No options
1528  First char = 'a'  First char = 'a'
1529  Need char = 'b'  Need char = 'b'
1530    
1531  /abc*/  /abc*/I
1532  Capturing subpattern count = 0  Capturing subpattern count = 0
1533  No options  No options
1534  First char = 'a'  First char = 'a'
1535  Need char = 'b'  Need char = 'b'
1536    
1537  /ab.c*/  /ab.c*/I
1538  Capturing subpattern count = 0  Capturing subpattern count = 0
1539  No options  No options
1540  First char = 'a'  First char = 'a'
1541  Need char = 'b'  Need char = 'b'
1542    
1543  /a.c*/  /a.c*/I
1544  Capturing subpattern count = 0  Capturing subpattern count = 0
1545  No options  No options
1546  First char = 'a'  First char = 'a'
1547  No need char  No need char
1548    
1549  /.c*/  /.c*/I
1550  Capturing subpattern count = 0  Capturing subpattern count = 0
1551  No options  No options
1552  No first char  No first char
1553  No need char  No need char
1554    
1555  /ac*/  /ac*/I
1556  Capturing subpattern count = 0  Capturing subpattern count = 0
1557  No options  No options
1558  First char = 'a'  First char = 'a'
1559  No need char  No need char
1560    
1561  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1562  Capturing subpattern count = 1  Capturing subpattern count = 1
1563  No options  No options
1564  No first char  No first char
1565  No need char  No need char
1566    
1567  /a.c*|aba/  /a.c*|aba/I
1568  Capturing subpattern count = 0  Capturing subpattern count = 0
1569  No options  No options
1570  First char = 'a'  First char = 'a'
1571  No need char  No need char
1572    
1573  /.+a/  /.+a/I
1574  Capturing subpattern count = 0  Capturing subpattern count = 0
1575  No options  No options
1576  No first char  No first char
1577  Need char = 'a'  Need char = 'a'
1578    
1579  /(?=abcda)a.*/  /(?=abcda)a.*/I
1580  Capturing subpattern count = 0  Capturing subpattern count = 0
1581  No options  No options
1582  First char = 'a'  First char = 'a'
1583  Need char = 'a'  Need char = 'a'
1584    
1585  /(?=a)a.*/  /(?=a)a.*/I
1586  Capturing subpattern count = 0  Capturing subpattern count = 0
1587  No options  No options
1588  First char = 'a'  First char = 'a'
1589  No need char  No need char
1590    
1591  /a(b)*/  /a(b)*/I
1592  Capturing subpattern count = 1  Capturing subpattern count = 1
1593  No options  No options
1594  First char = 'a'  First char = 'a'
1595  No need char  No need char
1596    
1597  /a\d*/  /a\d*/I
1598  Capturing subpattern count = 0  Capturing subpattern count = 0
1599  No options  No options
1600  First char = 'a'  First char = 'a'
1601  No need char  No need char
1602    
1603  /ab\d*/  /ab\d*/I
1604  Capturing subpattern count = 0  Capturing subpattern count = 0
1605  No options  No options
1606  First char = 'a'  First char = 'a'
1607  Need char = 'b'  Need char = 'b'
1608    
1609  /a(\d)*/  /a(\d)*/I
1610  Capturing subpattern count = 1  Capturing subpattern count = 1
1611  No options  No options
1612  First char = 'a'  First char = 'a'
1613  No need char  No need char
1614    
1615  /abcde{0,0}/  /abcde{0,0}/I
1616  Capturing subpattern count = 0  Capturing subpattern count = 0
1617  No options  No options
1618  First char = 'a'  First char = 'a'
1619  Need char = 'd'  Need char = 'd'
1620    
1621  /ab\d+/  /ab\d+/I
1622  Capturing subpattern count = 0  Capturing subpattern count = 0
1623  No options  No options
1624  First char = 'a'  First char = 'a'
1625  Need char = 'b'  Need char = 'b'
1626    
1627  /a(?(1)b)/  /a(?(1)b)(.)/I
1628  Capturing subpattern count = 0  Capturing subpattern count = 1
1629  No options  No options
1630  First char = 'a'  First char = 'a'
1631  No need char  No need char
1632    
1633  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1634  Capturing subpattern count = 0  Capturing subpattern count = 1
1635  No options  No options
1636  First char = 'a'  First char = 'a'
1637  Need char = 'g'  Need char = 'g'
1638    
1639  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1640  Capturing subpattern count = 0  Capturing subpattern count = 1
1641  No options  No options
1642  First char = 'a'  First char = 'a'
1643  No need char  No need char
1644    
1645  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1646  Capturing subpattern count = 0  Capturing subpattern count = 1
1647  No options  No options
1648  First char = 'a'  First char = 'a'
1649  Need char = 'g'  Need char = 'g'
1650    
1651  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1652  Capturing subpattern count = 0  Capturing subpattern count = 1
1653  No options  No options
1654  First char = 'a'  First char = 'a'
1655  Need char = 'b'  Need char = 'b'
1656    
1657  /ab\d{0}e/  /ab\d{0}e/I
1658  Capturing subpattern count = 0  Capturing subpattern count = 0
1659  No options  No options
1660  First char = 'a'  First char = 'a'
1661  Need char = 'e'  Need char = 'e'
1662    
1663  /a?b?/  /a?b?/I
1664  Capturing subpattern count = 0  Capturing subpattern count = 0
1665  No options  No options
1666  No first char  No first char
# Line 1578  No need char Line 1675  No need char
1675   0:   0:
1676      *** Failers      *** Failers
1677   0:   0:
1678      \N      \N
1679  No match  No match
1680    
1681  /|-/  /|-/I
1682  Capturing subpattern count = 0  Capturing subpattern count = 0
1683  No options  No options
1684  No first char  No first char
# Line 1594  No need char Line 1691  No need char
1691   0: -   0: -
1692      *** Failers      *** Failers
1693   0:   0:
1694      \Nabc      \Nabc
1695  No match  No match
1696    
1697  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/P
# Line 1623  No match Line 1720  No match
1720   1: bbbb   1: bbbb
1721   2: z   2: z
1722   3: z   3: z
1723    
1724  /^.?abcd/S  /^.?abcd/IS
1725  Capturing subpattern count = 0  Capturing subpattern count = 0
1726  Options: anchored  Options: anchored
1727  No first char  No first char
1728  Need char = 'd'  Need char = 'd'
1729  Study returned NULL  Subject length lower bound = 4
1730    No set of starting bytes
1731    
1732  /\(             # ( at start  /\(             # ( at start
1733    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1638  Study returned NULL Line 1736  Study returned NULL
1736    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1737    )*            # Zero or more contents    )*            # Zero or more contents
1738    \)            # Closing )    \)            # Closing )
1739    /x    /Ix
1740  Capturing subpattern count = 0  Capturing subpattern count = 0
1741  Options: extended  Options: extended
1742  First char = '('  First char = '('
# Line 1649  Need char = ')' Line 1747  Need char = ')'
1747   0: (abcd)   0: (abcd)
1748      xyz(abcd)      xyz(abcd)
1749   0: (abcd)   0: (abcd)
1750      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1751   0: (ab(xy)cd)   0: (ab(xy)cd)
1752      (ab(xycd)pqr      (ab(xycd)pqr
1753   0: (xycd)   0: (xycd)
1754      () abc ()      () abc ()
1755   0: ()   0: ()
1756      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1757   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1758      *** Failers      *** Failers
1759  No match  No match
1760      abcd      abcd
1761  No match  No match
1762      abcd)      abcd)
1763  No match  No match
1764      (abcd      (abcd
1765  No match  No match
1766    
1767  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1768  Capturing subpattern count = 1  Capturing subpattern count = 1
1769  Options: extended  Options: extended
1770  First char = '('  First char = '('
1771  Need char = ')'  Need char = ')'
1772      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1773   0: (ab(xy)cd)   0: (ab(xy)cd)
1774   1: cd   1: cd
1775      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1680  Need char = ')' Line 1778  Need char = ')'
1778   0: (x(y)z)   0: (x(y)z)
1779   1: z   1: z
1780    
1781  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1782  Capturing subpattern count = 0  Capturing subpattern count = 0
1783  Options: extended  Options: extended
1784  First char = '('  First char = '('
# Line 1689  Need char = ')' Line 1787  Need char = ')'
1787   0: (abcd)   0: (abcd)
1788      (ab(xy)cd)      (ab(xy)cd)
1789   0: (xy)   0: (xy)
1790      (a(b(c)d)e)      (a(b(c)d)e)
1791   0: (c)   0: (c)
1792      ((ab))      ((ab))
1793   0: ((ab))   0: ((ab))
1794      *** Failers      *** Failers
1795  No match  No match
1796      ()      ()
1797  No match  No match
1798    
1799  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1800  Capturing subpattern count = 0  Capturing subpattern count = 0
1801  Options: extended  Options: extended
1802  First char = '('  First char = '('
# Line 1708  Need char = ')' Line 1806  Need char = ')'
1806      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1807   0: (fsh)   0: (fsh)
1808    
1809  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1810  Capturing subpattern count = 1  Capturing subpattern count = 1
1811  Options: extended  Options: extended
1812  First char = '('  First char = '('
# Line 1717  Need char = ')' Line 1815  Need char = ')'
1815   0: (ab(xy)cd)   0: (ab(xy)cd)
1816   1: cd   1: cd
1817    
1818  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1819  Capturing subpattern count = 2  Capturing subpattern count = 2
1820  Options: extended  Options: extended
1821  First char = '('  First char = '('
# Line 1727  Need char = ')' Line 1825  Need char = ')'
1825   1: ab(xy)cd   1: ab(xy)cd
1826   2: cd   2: cd
1827    
1828  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1829  Capturing subpattern count = 3  Capturing subpattern count = 3
1830  Options: extended  Options: extended
1831  First char = '('  First char = '('
# Line 1743  Need char = ')' Line 1841  Need char = ')'
1841   2: ab(xy)cd   2: ab(xy)cd
1842   3: cd   3: cd
1843    
1844  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1845  Capturing subpattern count = 3  Capturing subpattern count = 3
1846  Options: extended  Options: extended
1847  First char = '('  First char = '('
# Line 1759  Need char = ')' Line 1857  Need char = ')'
1857   2: 123   2: 123
1858   3: cd   3: cd
1859    
1860  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1861  Capturing subpattern count = 11  Capturing subpattern count = 11
1862  Options: extended  Options: extended
1863  First char = '('  First char = '('
# Line 1778  Need char = ')' Line 1876  Need char = ')'
1876  10: ab(xy)cd  10: ab(xy)cd
1877  11: cd  11: cd
1878    
1879  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1880  Capturing subpattern count = 3  Capturing subpattern count = 3
1881  Options: extended  Options: extended
1882  First char = '('  First char = '('
# Line 1787  Need char = ')' Line 1885  Need char = ')'
1885   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1886   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1887   2: 123   2: 123
  3: <unset>  
1888    
1889  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1890  Capturing subpattern count = 3  Capturing subpattern count = 3
1891  Options: extended  Options: extended
1892  First char = '('  First char = '('
# Line 1805  Need char = ')' Line 1902  Need char = ')'
1902   2: ij   2: ij
1903   3: (cd(ef)gh)   3: (cd(ef)gh)
1904    
1905  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1906    ------------------------------------------------------------------
1907            Bra
1908            ^
1909            [0-9A-Za-z]
1910            Ket
1911            End
1912    ------------------------------------------------------------------
1913    Capturing subpattern count = 0
1914    Options: anchored
1915    No first char
1916    No need char
1917    
1918    /^[[:^alnum:]]/DZ
1919    ------------------------------------------------------------------
1920            Bra
1921            ^
1922            [\x00-/:-@[-`{-\xff] (neg)
1923            Ket
1924            End
1925    ------------------------------------------------------------------
1926    Capturing subpattern count = 0
1927    Options: anchored
1928    No first char
1929    No need char
1930    
1931    /^[[:alpha:]]/DZ
1932    ------------------------------------------------------------------
1933            Bra
1934            ^
1935            [A-Za-z]
1936            Ket
1937            End
1938    ------------------------------------------------------------------
1939    Capturing subpattern count = 0
1940    Options: anchored
1941    No first char
1942    No need char
1943    
1944    /^[[:^alpha:]]/DZ
1945    ------------------------------------------------------------------
1946            Bra
1947            ^
1948            [\x00-@[-`{-\xff] (neg)
1949            Ket
1950            End
1951    ------------------------------------------------------------------
1952    Capturing subpattern count = 0
1953    Options: anchored
1954    No first char
1955    No need char
1956    
1957    /[_[:alpha:]]/IS
1958    Capturing subpattern count = 0
1959    No options
1960    No first char
1961    No need char
1962    Subject length lower bound = 1
1963    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
1964      _ 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
1965    
1966    /^[[:ascii:]]/DZ
1967  ------------------------------------------------------------------  ------------------------------------------------------------------
1968    0  37 Bra 0          Bra
1969    3     ^          ^
1970    4     [0-9A-Za-z]          [\x00-\x7f]
1971   37  37 Ket          Ket
1972   40     End          End
1973  ------------------------------------------------------------------  ------------------------------------------------------------------
1974  Capturing subpattern count = 0  Capturing subpattern count = 0
1975  Options: anchored  Options: anchored
1976  No first char  No first char
1977  No need char  No need char
1978    
1979  /^[[:alpha:]]/D  /^[[:^ascii:]]/DZ
1980  ------------------------------------------------------------------  ------------------------------------------------------------------
1981    0  37 Bra 0          Bra
1982    3     ^          ^
1983    4     [A-Za-z]          [\x80-\xff] (neg)
1984   37  37 Ket          Ket
1985   40     End          End
1986  ------------------------------------------------------------------  ------------------------------------------------------------------
1987  Capturing subpattern count = 0  Capturing subpattern count = 0
1988  Options: anchored  Options: anchored
1989  No first char  No first char
1990  No need char  No need char
1991    
1992  /^[[:ascii:]]/D  /^[[:blank:]]/DZ
1993  ------------------------------------------------------------------  ------------------------------------------------------------------
1994    0  37 Bra 0          Bra
1995    3     ^          ^
1996    4     [\x00-\x7f]          [\x09 ]
1997   37  37 Ket          Ket
1998   40     End          End
1999  ------------------------------------------------------------------  ------------------------------------------------------------------
2000  Capturing subpattern count = 0  Capturing subpattern count = 0
2001  Options: anchored  Options: anchored
2002  No first char  No first char
2003  No need char  No need char
2004    
2005  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
2006  ------------------------------------------------------------------  ------------------------------------------------------------------
2007    0  37 Bra 0          Bra
2008    3     ^          ^
2009    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2010   37  37 Ket          Ket
2011   40     End          End
2012  ------------------------------------------------------------------  ------------------------------------------------------------------
2013  Capturing subpattern count = 0  Capturing subpattern count = 0
2014  Options: anchored  Options: anchored
2015  No first char  No first char
2016  No need char  No need char
2017    
2018  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
2019    Capturing subpattern count = 0
2020    Contains explicit CR or LF match
2021    No options
2022    No first char
2023    No need char
2024    Subject length lower bound = 1
2025    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2026    
2027    /^[[:cntrl:]]/DZ
2028  ------------------------------------------------------------------  ------------------------------------------------------------------
2029    0  37 Bra 0          Bra
2030    3     ^          ^
2031    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
2032   37  37 Ket          Ket
2033   40     End          End
2034  ------------------------------------------------------------------  ------------------------------------------------------------------
2035  Capturing subpattern count = 0  Capturing subpattern count = 0
2036  Options: anchored  Options: anchored
2037  No first char  No first char
2038  No need char  No need char
2039    
2040  /^[[:digit:]]/D  /^[[:digit:]]/DZ
2041  ------------------------------------------------------------------  ------------------------------------------------------------------
2042    0  37 Bra 0          Bra
2043    3     ^          ^
2044    4     [0-9]          [0-9]
2045   37  37 Ket          Ket
2046   40     End          End
2047  ------------------------------------------------------------------  ------------------------------------------------------------------
2048  Capturing subpattern count = 0  Capturing subpattern count = 0
2049  Options: anchored  Options: anchored
2050  No first char  No first char
2051  No need char  No need char
2052    
2053  /^[[:graph:]]/D  /^[[:graph:]]/DZ
2054  ------------------------------------------------------------------  ------------------------------------------------------------------
2055    0  37 Bra 0          Bra
2056    3     ^          ^
2057    4     [!-~]          [!-~]
2058   37  37 Ket          Ket
2059   40     End          End
2060  ------------------------------------------------------------------  ------------------------------------------------------------------
2061  Capturing subpattern count = 0  Capturing subpattern count = 0
2062  Options: anchored  Options: anchored
2063  No first char  No first char
2064  No need char  No need char
2065    
2066  /^[[:lower:]]/D  /^[[:lower:]]/DZ
2067  ------------------------------------------------------------------  ------------------------------------------------------------------
2068    0  37 Bra 0          Bra
2069    3     ^          ^
2070    4     [a-z]          [a-z]
2071   37  37 Ket          Ket
2072   40     End          End
2073  ------------------------------------------------------------------  ------------------------------------------------------------------
2074  Capturing subpattern count = 0  Capturing subpattern count = 0
2075  Options: anchored  Options: anchored
2076  No first char  No first char
2077  No need char  No need char
2078    
2079  /^[[:print:]]/D  /^[[:print:]]/DZ
2080  ------------------------------------------------------------------  ------------------------------------------------------------------
2081    0  37 Bra 0          Bra
2082    3     ^          ^
2083    4     [ -~]          [ -~]
2084   37  37 Ket          Ket
2085   40     End          End
2086  ------------------------------------------------------------------  ------------------------------------------------------------------
2087  Capturing subpattern count = 0  Capturing subpattern count = 0
2088  Options: anchored  Options: anchored
2089  No first char  No first char
2090  No need char  No need char
2091    
2092  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2093  ------------------------------------------------------------------  ------------------------------------------------------------------
2094    0  37 Bra 0          Bra
2095    3     ^          ^
2096    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2097   37  37 Ket          Ket
2098   40     End          End
2099  ------------------------------------------------------------------  ------------------------------------------------------------------
2100  Capturing subpattern count = 0  Capturing subpattern count = 0
2101  Options: anchored  Options: anchored
2102  No first char  No first char
2103  No need char  No need char
2104    
2105  /^[[:space:]]/D  /^[[:space:]]/DZ
2106  ------------------------------------------------------------------  ------------------------------------------------------------------
2107    0  37 Bra 0          Bra
2108    3     ^          ^
2109    4     [\x09-\x0d ]          [\x09-\x0d ]
2110   37  37 Ket          Ket
2111   40     End          End
2112  ------------------------------------------------------------------  ------------------------------------------------------------------
2113  Capturing subpattern count = 0  Capturing subpattern count = 0
2114  Options: anchored  Options: anchored
2115  No first char  No first char
2116  No need char  No need char
2117    
2118  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2119  ------------------------------------------------------------------  ------------------------------------------------------------------
2120    0  37 Bra 0          Bra
2121    3     ^          ^
2122    4     [A-Z]          [A-Z]
2123   37  37 Ket          Ket
2124   40     End          End
2125  ------------------------------------------------------------------  ------------------------------------------------------------------
2126  Capturing subpattern count = 0  Capturing subpattern count = 0
2127  Options: anchored  Options: anchored
2128  No first char  No first char
2129  No need char  No need char
2130    
2131  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2132  ------------------------------------------------------------------  ------------------------------------------------------------------
2133    0  37 Bra 0          Bra
2134    3     ^          ^
2135    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2136   37  37 Ket          Ket
2137   40     End          End
2138  ------------------------------------------------------------------  ------------------------------------------------------------------
2139  Capturing subpattern count = 0  Capturing subpattern count = 0
2140  Options: anchored  Options: anchored
2141  No first char  No first char
2142  No need char  No need char
2143    
2144  /^[[:word:]]/D  /^[[:word:]]/DZ
2145  ------------------------------------------------------------------  ------------------------------------------------------------------
2146    0  37 Bra 0          Bra
2147    3     ^          ^
2148    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2149   37  37 Ket          Ket
2150   40     End          End
2151  ------------------------------------------------------------------  ------------------------------------------------------------------
2152  Capturing subpattern count = 0  Capturing subpattern count = 0
2153  Options: anchored  Options: anchored
2154  No first char  No first char
2155  No need char  No need char
2156    
2157  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2158  ------------------------------------------------------------------  ------------------------------------------------------------------
2159    0  37 Bra 0          Bra
2160    3     ^          ^
2161    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2162   37  37 Ket          Ket
2163   40     End          End
2164  ------------------------------------------------------------------  ------------------------------------------------------------------
2165  Capturing subpattern count = 0  Capturing subpattern count = 0
2166  Options: anchored  Options: anchored
2167  No first char  No first char
2168  No need char  No need char
2169    
2170  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2171  ------------------------------------------------------------------  ------------------------------------------------------------------
2172    0  37 Bra 0          Bra
2173    3     ^          ^
2174    4     [\x00-/1-2:-\xff]          [\x00-/12:-\xff] (neg)
2175   37  37 Ket          Ket
2176   40     End          End
2177  ------------------------------------------------------------------  ------------------------------------------------------------------
2178  Capturing subpattern count = 0  Capturing subpattern count = 0
2179  Options: anchored  Options: anchored
2180  No first char  No first char
2181  No need char  No need char
2182    
2183  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2184  ------------------------------------------------------------------  ------------------------------------------------------------------
2185    0  37 Bra 0          Bra
2186    3     ^          ^
2187    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2188   37  37 Ket          Ket
2189   40     End          End
2190  ------------------------------------------------------------------  ------------------------------------------------------------------
2191  Capturing subpattern count = 0  Capturing subpattern count = 0
2192  Options: anchored  Options: anchored
2193  No first char  No first char
2194  No need char  No need char
2195    
2196  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2197  ------------------------------------------------------------------  ------------------------------------------------------------------
2198    0  36 Bra 0          Bra
2199    3     [%0-1A-Za-z]          [%01A-Za-z]
2200   36  36 Ket          Ket
2201   39     End          End
2202  ------------------------------------------------------------------  ------------------------------------------------------------------
2203  Capturing subpattern count = 0  Capturing subpattern count = 0
2204  No options  No options
2205  No first char  No first char
2206  No need char  No need char
2207    
2208  /[[.ch.]]/  /[[.ch.]]/I
2209  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2210    
2211  /[[=ch=]]/  /[[=ch=]]/I
2212  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2213    
2214  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2215  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2216    
2217  /[[:upper:]]/i  /[[:upper:]]/Ii
2218  Capturing subpattern count = 0  Capturing subpattern count = 0
2219  Options: caseless  Options: caseless
2220  No first char  No first char
2221  No need char  No need char
2222      A      A
2223   0: A   0: A
2224      a      a
2225   0: a   0: a
2226    
2227  /[[:lower:]]/i  /[[:lower:]]/Ii
2228  Capturing subpattern count = 0  Capturing subpattern count = 0
2229  Options: caseless  Options: caseless
2230  No first char  No first char
2231  No need char  No need char
2232      A      A
2233   0: A   0: A
2234      a      a
2235   0: a   0: a
2236    
2237  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2238  Capturing subpattern count = 1  Capturing subpattern count = 1
2239  Options: caseless  Options: caseless
 Case state changes  
2240  No first char  No first char
2241  No need char  No need char
2242      ab      ab
# Line 2084  No need char Line 2250  No need char
2250   1: a   1: a
2251      Ab      Ab
2252  No match  No match
2253      AB      AB
2254  No match  No match
2255    
2256  /[\200-\410]/  /[\200-\110]/I
2257  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2258    
2259  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2260  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2261    
2262  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2263  Capturing subpattern count = 0  Capturing subpattern count = 0
2264  No options  No options
2265  First char = 'T'  First char = 'T'
2266  Need char = 'd'  Need char = 'd'
2267    
2268  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2269  Capturing subpattern count = 271  Capturing subpattern count = 271
2270  Max back reference = 270  Max back reference = 270
2271  No options  No options
# Line 2379  No need char Line 2545  No need char
2545  270: ABC  270: ABC
2546  271: ABC  271: ABC
2547    
2548  /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
2549  Capturing subpattern count = 0  Capturing subpattern count = 0
2550  No options  No options
2551  First char = 'T'  First char = 'T'
2552  Need char = 't'  Need char = 't'
2553    
2554  /(main(O)?)+/  /(main(O)?)+/I
2555  Capturing subpattern count = 2  Capturing subpattern count = 2
2556  No options  No options
2557  First char = 'm'  First char = 'm'
# Line 2397  Need char = 'n' Line 2563  Need char = 'n'
2563   0: mainOmain   0: mainOmain
2564   1: main   1: main
2565   2: O   2: O
2566    
2567  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2568  Capturing subpattern count = 1  Capturing subpattern count = 1
2569  No options  No options
2570  First char = 'T'  First char = 'T'
2571  Need char = 's'  Need char = 's'
2572    
2573  /^(a(b)?)+$/  /^(a(b)?)+$/I
2574  Capturing subpattern count = 2  Capturing subpattern count = 2
2575  Options: anchored  Options: anchored
2576  No first char  No first char
# Line 2413  No need char Line 2579  No need char
2579   0: aba   0: aba
2580   1: a   1: a
2581   2: b   2: b
2582    
2583  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2584  Capturing subpattern count = 2  Capturing subpattern count = 2
2585  Options: anchored  Options: anchored
2586  No first char  No first char
2587  No need char  No need char
2588      aabbaa      aabbaa
2589   0: aabbaa   0: aabbaa
2590   1: aa   1: aa
2591   2: bb   2: bb
2592    
2593  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2594  Capturing subpattern count = 2  Capturing subpattern count = 2
2595  Options: anchored  Options: anchored
2596  No first char  No first char
2597  No need char  No need char
2598      aabbaa      aabbaa
2599   0: aabbaa   0: aabbaa
2600   1: aa   1: aa
2601   2: bb   2: bb
2602    
2603  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2604  Capturing subpattern count = 2  Capturing subpattern count = 2
2605  Options: anchored  Options: anchored
2606  No first char  No first char
2607  No need char  No need char
2608      aabbaa      aabbaa
2609   0: aabbaa   0: aabbaa
2610   1: aa   1: aa
2611   2: bb   2: bb
2612    
2613  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2614  Capturing subpattern count = 1  Capturing subpattern count = 1
2615  Options: anchored  Options: anchored
2616  No first char  No first char
2617  No need char  No need char
2618      aabbaa      aabbaa
2619   0: aabbaa   0: aabbaa
2620   1: bb   1: bb
2621    
2622  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2623  Capturing subpattern count = 3  Capturing subpattern count = 3
2624  Options: anchored  Options: anchored
2625  No first char  No first char
2626  No need char  No need char
2627      aabbaa      aabbaa
2628   0: aabbaa   0: aabbaa
2629   1: aa   1: aa
2630   2: bb   2: bb
2631   3: b   3: b
2632    
2633  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2634  Capturing subpattern count = 2  Capturing subpattern count = 2
2635  Options: anchored  Options: anchored
2636  No first char  No first char
2637  No need char  No need char
2638      aabbaa      aabbaa
2639   0: aabbaa   0: aabbaa
2640   1: bb   1: bb
2641   2: b   2: b
2642    
2643  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2644  Capturing subpattern count = 1  Capturing subpattern count = 1
2645  Options: anchored  Options: anchored
2646  No first char  No first char
2647  No need char  No need char
2648      aabbaa      aabbaa
2649   0: aabbaa   0: aabbaa
2650   1: bb   1: bb
2651    
2652  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2653  Capturing subpattern count = 1  Capturing subpattern count = 1
2654  Options: anchored  Options: anchored
2655  No first char  No first char
2656  No need char  No need char
2657      aabbbaa      aabbbaa
2658   0: aabbbaa   0: aabbbaa
2659   1: bbb   1: bbb
2660    
2661  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2662  Capturing subpattern count = 1  Capturing subpattern count = 1
2663  Options: anchored  Options: anchored
2664  No first char  No first char
2665  No need char  No need char
2666      aabbbaa      aabbbaa
2667   0: aabbbaa   0: aabbbaa
2668   1: bbb   1: bbb
2669    
2670  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2671  Capturing subpattern count = 1  Capturing subpattern count = 1
2672  Options: anchored  Options: anchored
2673  No first char  No first char
2674  No need char  No need char
2675      aabbaa      aabbaa
2676   0: aabbaa   0: aabbaa
2677   1: b   1: b
2678    
2679  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2680  Capturing subpattern count = 1  Capturing subpattern count = 1
2681  Options: anchored  Options: anchored
2682  No first char  No first char
2683  No need char  No need char
2684      aabbbaa      aabbbaa
2685   0: aabbbaa   0: aabbbaa
2686   1: bb   1: bb
2687    
2688  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2689  Capturing subpattern count = 3  Capturing subpattern count = 3
2690  Options: anchored  Options: anchored
2691  No first char  No first char
2692  No need char  No need char
2693      aabbbaa      aabbbaa
2694   0: aabbbaa   0: aabbbaa
2695   1: aa   1: aa
2696   2: bbb   2: bbb
2697   3: bb   3: bb
2698    
2699  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2700  Capturing subpattern count = 3  Capturing subpattern count = 3
2701  Options: anchored  Options: anchored
2702  No first char  No first char
2703  No need char  No need char
2704      aabbbbaa      aabbbbaa
2705   0: aabbbbaa   0: aabbbbaa
2706   1: aa   1: aa
2707   2: bbbb   2: bbbb
2708   3: bb   3: bb
2709    
2710  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2711  Capturing subpattern count = 0  Capturing subpattern count = 0
2712  No options  No options
2713  First char = '-'  First char = '-'
2714  Need char = '-'  Need char = '-'
2715    
2716  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2717  ------------------------------------------------------------------  ------------------------------------------------------------------
2718    0   3 Bra 0          Bra
2719    3   3 Ket          Ket
2720    6     End          End
2721  ------------------------------------------------------------------  ------------------------------------------------------------------
2722  Capturing subpattern count = 0  Capturing subpattern count = 0
2723  Options: extended  Options: extended
2724  No first char  No first char
2725  No need char  No need char
2726    
2727  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 13  
2728  ------------------------------------------------------------------  ------------------------------------------------------------------
2729    0   6 Bra 0          Bra
2730    3   1 a          a
2731    6   6 Ket          Ket
2732    9     End          End
2733  ------------------------------------------------------------------  ------------------------------------------------------------------
2734  Capturing subpattern count = 0  Capturing subpattern count = 0
2735  Options: extended  Options: extended
2736  First char = 'a'  First char = 'a'
2737  No need char  No need char
2738    
2739  /[\s]/D  /[\s]/DZ
2740  ------------------------------------------------------------------  ------------------------------------------------------------------
2741    0  36 Bra 0          Bra
2742    3     [\x09-\x0a\x0c-\x0d ]          [\x09\x0a\x0c\x0d ]
2743   36  36 Ket          Ket
2744   39     End          End
2745  ------------------------------------------------------------------  ------------------------------------------------------------------
2746  Capturing subpattern count = 0  Capturing subpattern count = 0
2747  No options  No options
2748  No first char  No first char
2749  No need char  No need char
2750    
2751  /[\S]/D  /[\S]/DZ
2752  ------------------------------------------------------------------  ------------------------------------------------------------------
2753    0  36 Bra 0          Bra
2754    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2755   36  36 Ket          Ket
2756   39     End          End
2757  ------------------------------------------------------------------  ------------------------------------------------------------------
2758  Capturing subpattern count = 0  Capturing subpattern count = 0
2759  No options  No options
2760  No first char  No first char
2761  No need char  No need char
2762    
2763  /a(?i)b/D  /a(?i)b/DZ
2764  ------------------------------------------------------------------  ------------------------------------------------------------------
2765    0  11 Bra 0          Bra
2766    3   1 a          a
2767    6  01 Opt       01 Opt
2768    8   1 b       NC b
2769   11  11 Ket          Ket
2770   14     End          End
2771  ------------------------------------------------------------------  ------------------------------------------------------------------
2772  Capturing subpattern count = 0  Capturing subpattern count = 0
2773  No options  No options
 Case state changes  
2774  First char = 'a'  First char = 'a'
2775  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2776      ab      ab
2777   0: ab   0: ab
2778      aB      aB
2779   0: aB   0: aB
2780      *** Failers      *** Failers
2781  No match  No match
2782      AB      AB
2783  No match  No match
2784    
2785  /(a(?i)b)/D  /(a(?i)b)/DZ
2786  ------------------------------------------------------------------  ------------------------------------------------------------------
2787    0  19 Bra 0          Bra
2788    3  11 Bra 1          CBra 1
2789    6   1 a          a
2790    9  01 Opt       01 Opt
2791   11   1 b       NC b
2792   14  11 Ket          Ket
2793   17  00 Opt       00 Opt
2794   19  19 Ket          Ket
2795   22     End          End
2796  ------------------------------------------------------------------  ------------------------------------------------------------------
2797  Capturing subpattern count = 1  Capturing subpattern count = 1
2798  No options  No options
 Case state changes  
2799  First char = 'a'  First char = 'a'
2800  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2801      ab      ab
# Line 2642  Need char = 'b' (caseless) Line 2804  Need char = 'b' (caseless)
2804      aB      aB
2805   0: aB   0: aB
2806   1: aB   1: aB
2807      *** Failers      *** Failers
2808  No match  No match
2809      AB      AB
2810  No match  No match
2811    
2812  /   (?i)abc/xD  /   (?i)abc/IxDZ
2813  ------------------------------------------------------------------  ------------------------------------------------------------------
2814    0   8 Bra 0          Bra
2815    3   3 abc       NC abc
2816    8   8 Ket          Ket
2817   11     End          End
2818  ------------------------------------------------------------------  ------------------------------------------------------------------
2819  Capturing subpattern count = 0  Capturing subpattern count = 0
2820  Options: caseless extended  Options: caseless extended
# Line 2660  First char = 'a' (caseless) Line 2822  First char = 'a' (caseless)
2822  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2823    
2824  /#this is a comment  /#this is a comment
2825    (?i)abc/xD    (?i)abc/IxDZ
2826  ------------------------------------------------------------------  ------------------------------------------------------------------
2827    0   8 Bra 0          Bra
2828    3   3 abc       NC abc
2829    8   8 Ket          Ket
2830   11     End          End
2831  ------------------------------------------------------------------  ------------------------------------------------------------------
2832  Capturing subpattern count = 0  Capturing subpattern count = 0
2833  Options: caseless extended  Options: caseless extended
2834  First char = 'a' (caseless)  First char = 'a' (caseless)
2835  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2836    
2837  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2838  ------------------------------------------------------------------  ------------------------------------------------------------------
2839    0 307 Bra 0          Bra
2840    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2841  255  50 12345678901234567890123456789012345678901234567890          Ket
2842  307 307 Ket          End
 310     End  
2843  ------------------------------------------------------------------  ------------------------------------------------------------------
2844  Capturing subpattern count = 0  Capturing subpattern count = 0
2845  No options  No options
2846  First char = '1'  First char = '1'
2847  Need char = '0'  Need char = '0'
2848    
2849  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2850  ------------------------------------------------------------------  ------------------------------------------------------------------
2851    0 307 Bra 0          Bra
2852    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2853  255  50 12345678901234567890123456789012345678901234567890          Ket
2854  307 307 Ket          End
 310     End  
2855  ------------------------------------------------------------------  ------------------------------------------------------------------
2856  Capturing subpattern count = 0  Capturing subpattern count = 0
2857  No options  No options
2858  First char = '1'  First char = '1'
2859  Need char = '0'  Need char = '0'
2860    
2861  /\Q\E/D  /\Q\E/DZ
2862  ------------------------------------------------------------------  ------------------------------------------------------------------
2863    0   3 Bra 0          Bra
2864    3   3 Ket          Ket
2865    6     End          End
2866  ------------------------------------------------------------------  ------------------------------------------------------------------
2867  Capturing subpattern count = 0  Capturing subpattern count = 0
2868  No options  No options
# Line 2711  No need char Line 2871  No need char
2871      \      \
2872   0:   0:
2873    
2874  /\Q\Ex/D  /\Q\Ex/DZ
2875  ------------------------------------------------------------------  ------------------------------------------------------------------
2876    0   6 Bra 0          Bra
2877    3   1 x          x
2878    6   6 Ket          Ket
2879    9     End          End
2880  ------------------------------------------------------------------  ------------------------------------------------------------------
2881  Capturing subpattern count = 0  Capturing subpattern count = 0
2882  No options  No options
2883  First char = 'x'  First char = 'x'
2884  No need char  No need char
2885    
2886  / \Q\E/D  / \Q\E/DZ
2887  ------------------------------------------------------------------  ------------------------------------------------------------------
2888    0   6 Bra 0          Bra
2889    3   1  
2890    6   6 Ket          Ket
2891    9     End          End
2892  ------------------------------------------------------------------  ------------------------------------------------------------------
2893  Capturing subpattern count = 0  Capturing subpattern count = 0
2894  No options  No options
2895  First char = ' '  First char = ' '
2896  No need char  No need char
2897    
2898  /a\Q\E/D  /a\Q\E/DZ
2899  ------------------------------------------------------------------  ------------------------------------------------------------------
2900    0   6 Bra 0          Bra
2901    3   1 a          a
2902    6   6 Ket          Ket
2903    9     End          End
2904  ------------------------------------------------------------------  ------------------------------------------------------------------
2905  Capturing subpattern count = 0  Capturing subpattern count = 0
2906  No options  No options
# Line 2750  No need char Line 2910  No need char
2910   0: a   0: a
2911    bca    bca
2912   0: a   0: a
2913    bac    bac
2914   0: a   0: a
2915    
2916  /a\Q\Eb/D  /a\Q\Eb/DZ
2917  ------------------------------------------------------------------  ------------------------------------------------------------------
2918    0   9 Bra 0          Bra
2919    3   1 a          ab
2920    6   1 b          Ket
2921    9   9 Ket          End
  12     End  
2922  ------------------------------------------------------------------  ------------------------------------------------------------------
2923  Capturing subpattern count = 0  Capturing subpattern count = 0
2924  No options  No options
# Line 2768  Need char = 'b' Line 2927  Need char = 'b'
2927    abc    abc
2928   0: ab   0: ab
2929    
2930  /\Q\Eabc/D  /\Q\Eabc/DZ
2931  ------------------------------------------------------------------  ------------------------------------------------------------------
2932    0   8 Bra 0          Bra
2933    3   3 abc          abc
2934    8   8 Ket          Ket
2935   11     End          End
2936  ------------------------------------------------------------------  ------------------------------------------------------------------
2937  Capturing subpattern count = 0  Capturing subpattern count = 0
2938  No options  No options
2939  First char = 'a'  First char = 'a'
2940  Need char = 'c'  Need char = 'c'
2941    
2942  /x*+\w/D  /x*+\w/DZ
2943  ------------------------------------------------------------------  ------------------------------------------------------------------
2944    0  12 Bra 0          Bra
2945    3   5 Once          x*+
2946    6     x*          \w
2947    8   5 Ket          Ket
2948   11     \w          End
  12  12 Ket  
  15     End  
2949  ------------------------------------------------------------------  ------------------------------------------------------------------
2950  Capturing subpattern count = 0  Capturing subpattern count = 0
2951  No options  No options
# Line 2798  No need char Line 2955  No need char
2955   0: F   0: F
2956      xxxxx      xxxxx
2957  No match  No match
2958    
2959  /x?+/D  /x?+/DZ
2960  ------------------------------------------------------------------  ------------------------------------------------------------------
2961    0  11 Bra 0          Bra
2962    3   5 Once          x?+
2963    6     x?          Ket
2964    8   5 Ket          End
  11  11 Ket  
  14     End  
2965  ------------------------------------------------------------------  ------------------------------------------------------------------
2966  Capturing subpattern count = 0  Capturing subpattern count = 0
2967  No options  No options
2968  No first char  No first char
2969  No need char  No need char
2970    
2971  /x++/D  /x++/DZ
2972  ------------------------------------------------------------------  ------------------------------------------------------------------
2973    0  11 Bra 0          Bra
2974    3   5 Once          x++
2975    6     x+          Ket
2976    8   5 Ket          End
  11  11 Ket  
  14     End  
2977  ------------------------------------------------------------------  ------------------------------------------------------------------
2978  Capturing subpattern count = 0  Capturing subpattern count = 0
2979  No options  No options
2980  First char = 'x'  First char = 'x'
2981  No need char  No need char
2982    
2983  /x{1,3}+/D  /x{1,3}+/DZ
2984  ------------------------------------------------------------------  ------------------------------------------------------------------
2985    0  16 Bra 0          Bra
2986    3  10 Once          Once
2987    6   1 x          x
2988    9     x{,2}          x{0,2}
2989   13  10 Ket          Ket
2990   16  16 Ket          Ket
2991   19     End          End
2992  ------------------------------------------------------------------  ------------------------------------------------------------------
2993  Capturing subpattern count = 0  Capturing subpattern count = 0
2994  No options  No options
2995  First char = 'x'  First char = 'x'
2996  No need char  No need char
2997    
2998  /(x)*+/D  /(x)*+/DZ
2999  ------------------------------------------------------------------  ------------------------------------------------------------------
3000    0  19 Bra 0          Bra
3001    3  13 Once          Once
3002    6     Brazero          Brazero
3003    7   6 Bra 1          CBra 1
3004   10   1 x          x
3005   13   6 KetRmax          KetRmax
3006   16  13 Ket          Ket
3007   19  19 Ket          Ket
3008   22     End          End
3009  ------------------------------------------------------------------  ------------------------------------------------------------------
3010  Capturing subpattern count = 1  Capturing subpattern count = 1
3011  No options  No options
3012  No first char  No first char
3013  No need char  No need char
3014    
3015  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
3016  Capturing subpattern count = 1  Capturing subpattern count = 1
3017  Options: anchored  Options: anchored
3018  No first char  No first char
# Line 2871  No need char Line 3024  No need char
3024  No match  No match
3025      this is not a line with only words and spaces!      this is not a line with only words and spaces!
3026  No match  No match
3027    
3028  /(\d++)(\w)/  /(\d++)(\w)/I
3029  Capturing subpattern count = 2  Capturing subpattern count = 2
3030  No options  No options
3031  No first char  No first char
# Line 2883  No need char Line 3036  No need char
3036   2: a   2: a
3037      *** Failers      *** Failers
3038  No match  No match
3039      12345+      12345+
3040  No match  No match
3041    
3042  /a++b/  /a++b/I
3043  Capturing subpattern count = 0  Capturing subpattern count = 0
3044  No options  No options
3045  First char = 'a'  First char = 'a'
# Line 2894  Need char = 'b' Line 3047  Need char = 'b'
3047      aaab      aaab
3048   0: aaab   0: aaab
3049    
3050  /(a++b)/  /(a++b)/I
3051  Capturing subpattern count = 1  Capturing subpattern count = 1
3052  No options  No options
3053  First char = 'a'  First char = 'a'
# Line 2903  Need char = 'b' Line 3056  Need char = 'b'
3056   0: aaab   0: aaab
3057   1: aaab   1: aaab
3058    
3059  /(a++)b/  /(a++)b/I
3060  Capturing subpattern count = 1  Capturing subpattern count = 1
3061  No options  No options
3062  First char = 'a'  First char = 'a'
# Line 2912  Need char = 'b' Line 3065  Need char = 'b'
3065   0: aaab   0: aaab
3066   1: aaa   1: aaa
3067    
3068  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3069  Capturing subpattern count = 1  Capturing subpattern count = 1
3070  No options  No options
3071  No first char  No first char
# Line 2920  No need char Line 3073  No need char
3073      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3074   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3075   1: x   1: x
3076    
3077  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3078  Capturing subpattern count = 1  Capturing subpattern count = 1
3079  No options  No options
3080  First char = '('  First char = '('
# Line 2934  Need char = ')' Line 3087  Need char = ')'
3087   1: xyz   1: xyz
3088      *** Failers      *** Failers
3089  No match  No match
3090      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3091  No match  No match
3092    
3093  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3094  ------------------------------------------------------------------  ------------------------------------------------------------------
3095    0  50 Bra 0          Bra
3096    3  44 Once          Once
3097    6   8 Bra 1          CBra 1
3098    9   3 abc          abc
3099   14   8 Ket          Ket
3100   17     Brazero          Brazero
3101   18  26 Bra 0          Bra
3102   21   8 Bra 1          CBra 1
3103   24   3 abc          abc
3104   29   8 Ket          Ket
3105   32     Brazero          Brazero
3106   33   8 Bra 1          CBra 1
3107   36   3 abc          abc
3108   41   8 Ket          Ket
3109   44  26 Ket          Ket
3110   47  44 Ket          Ket
3111   50  50 Ket          Ket
3112   53     End          End
3113  ------------------------------------------------------------------  ------------------------------------------------------------------
3114  Capturing subpattern count = 1  Capturing subpattern count = 1
3115  No options  No options
3116  First char = 'a'  First char = 'a'
3117  Need char = 'c'  Need char = 'c'
3118    
3119  /a+?+/  /a+?+/I
3120  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3121    
3122  /a{2,3}?+b/  /a{2,3}?+b/I
3123  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3124    
3125  /(?U)a+?+/  /(?U)a+?+/I
3126  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3127    
3128  /a{2,3}?+b/U  /a{2,3}?+b/IU
3129  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3130    
3131  /x(?U)a++b/D  /x(?U)a++b/DZ
3132  ------------------------------------------------------------------  ------------------------------------------------------------------
3133    0  17 Bra 0          Bra
3134    3   1 x          x
3135    6   5 Once          a++
3136    9     a+          b
3137   11   5 Ket          Ket
3138   14   1 b          End
  17  17 Ket  
  20     End  
3139  ------------------------------------------------------------------  ------------------------------------------------------------------
3140  Capturing subpattern count = 0  Capturing subpattern count = 0
3141  No options  No options
# Line 2993  Need char = 'b' Line 3144  Need char = 'b'
3144      xaaaab      xaaaab
3145   0: xaaaab   0: xaaaab
3146    
3147  /(?U)xa++b/D  /(?U)xa++b/DZ
3148  ------------------------------------------------------------------  ------------------------------------------------------------------
3149    0  17 Bra 0          Bra
3150    3   1 x          x
3151    6   5 Once          a++
3152    9     a+          b
3153   11   5 Ket          Ket
3154   14   1 b          End
  17  17 Ket  
  20     End  
3155  ------------------------------------------------------------------  ------------------------------------------------------------------
3156  Capturing subpattern count = 0  Capturing subpattern count = 0
3157  Options: ungreedy  Options: ungreedy
# Line 3011  Need char = 'b' Line 3160  Need char = 'b'
3160      xaaaab      xaaaab
3161   0: xaaaab   0: xaaaab
3162    
3163  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3164  ------------------------------------------------------------------  ------------------------------------------------------------------
3165    0 106 Bra 0          Bra
3166    3     ^          ^
3167    4  99 Bra 1          CBra 1
3168    7   5 Bra 2          CBra 2
3169   10     a+          a+
3170   12   5 Ket          Ket
3171   15  37 Bra 3          CBra 3
3172   18     [a-b]+?          [ab]+?
3173   52  37 Ket          Ket
3174   55  37 Bra 4          CBra 4
3175   58     [b-c]+          [bc]+
3176   92  37 Ket          Ket
3177   95   5 Bra 5          CBra 5
3178   98     \w*          \w*
3179  100   5 Ket          Ket
3180  103  99 Ket          Ket
3181  106 106 Ket          Ket
3182  109     End          End
3183  ------------------------------------------------------------------  ------------------------------------------------------------------
3184  Capturing subpattern count = 5  Capturing subpattern count = 5
3185  Options: anchored  Options: anchored
3186  No first char  No first char
3187  No need char  No need char
3188    
3189  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3190  ------------------------------------------------------------------  ------------------------------------------------------------------
3191    0  12 Bra 0          Bra
3192    3     ^          ^
3193    4   1 x          x
3194    7     a+?          a++
3195    9   1 b          b
3196   12  12 Ket          Ket
3197   15     End          End
3198  ------------------------------------------------------------------  ------------------------------------------------------------------
3199  Capturing subpattern count = 0  Capturing subpattern count = 0
3200  Options: anchored  Options: anchored
3201  No first char  No first char
3202  Need char = 'b'  Need char = 'b'
3203    
3204  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3205  ------------------------------------------------------------------  ------------------------------------------------------------------
3206    0  18 Bra 0          Bra
3207    3     ^          ^
3208    4   1 x          x
3209    7   5 Bra 1          CBra 1
3210   10     a+?          a+?
3211   12   5 Ket          Ket
3212   15   1 b          b
3213   18  18 Ket          Ket
3214   21     End          End
3215  ------------------------------------------------------------------  ------------------------------------------------------------------
3216  Capturing subpattern count = 1  Capturing subpattern count = 1
3217  Options: anchored  Options: anchored
3218  No first char  No first char
3219  Need char = 'b'  Need char = 'b'
3220    
3221  /[.x.]/  /[.x.]/I
3222  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3223    
3224  /[=x=]/  /[=x=]/I
3225  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3226    
3227  /[:x:]/  /[:x:]/I
3228  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
3229    
3230  /\l/  /\l/I
3231  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3232    
3233  /\L/  /\L/I
3234  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3235    
3236  /\N{name}/  /\N{name}/I
3237  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3238    
3239  /\pP/  /\u/I
3240  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3241    
3242  /\PP/  /\U/I
3243  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3244    
3245  /\p{prop}/  /[/I
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\P{prop}/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\u/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\U/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\X/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /[/  
3246  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3247    
3248  /[a-/  /[a-/I
3249  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3250    
3251  /[[:space:]/  /[[:space:]/I
3252  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3253    
3254  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3255  ------------------------------------------------------------------  ------------------------------------------------------------------
3256    0  36 Bra 0          Bra
3257    3     [\x09-\x0a\x0c-\x0d ]          [\x09\x0a\x0c\x0d ]
3258   36  36 Ket          Ket
3259   39     End          End
3260  ------------------------------------------------------------------  ------------------------------------------------------------------
3261  Capturing subpattern count = 0  Capturing subpattern count = 0
3262  No options  No options
3263  No first char  No first char
3264  No need char  No need char
3265    
3266  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3267  ------------------------------------------------------------------  ------------------------------------------------------------------
3268    0  36 Bra 0          Bra
3269    3     [\x09-\x0d ]          [\x09-\x0d ]
3270   36  36 Ket          Ket
3271   39     End          End
3272  ------------------------------------------------------------------  ------------------------------------------------------------------
3273  Capturing subpattern count = 0  Capturing subpattern count = 0
3274  No options  No options
3275  No first char  No first char
3276  No need char  No need char
3277    
3278  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3279  ------------------------------------------------------------------  ------------------------------------------------------------------
3280    0  36 Bra 0          Bra
3281    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3282   36  36 Ket          Ket
3283   39     End          End
3284  ------------------------------------------------------------------  ------------------------------------------------------------------
3285  Capturing subpattern count = 0  Capturing subpattern count = 0
3286  No options  No options
3287  No first char  No first char
3288  No need char  No need char
3289    
3290  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3291  Capturing subpattern count = 0  Capturing subpattern count = 0
3292  Options: extended  Options: extended
3293  First char = '<'  First char = '<'
# Line 3169  Need char = '>' Line 3300  Need char = '>'
3300   0: <abc <123> hij>   0: <abc <123> hij>
3301      <abc <def> hij>      <abc <def> hij>
3302   0: <def>   0: <def>
3303      <abc<>def>      <abc<>def>
3304   0: <abc<>def>   0: <abc<>def>
3305      <abc<>      <abc<>
3306   0: <>   0: <>
3307      *** Failers      *** Failers
3308  No match  No match
3309      <abc      <abc
3310  No match  No match
3311    
3312  |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): 421  
3313  ------------------------------------------------------------------  ------------------------------------------------------------------
3314    0 417 Bra 0          Bra
3315    3 250 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:          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
3316  255 159 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
3317  416     \b          Ket
3318  417 417 Ket          End
 420     End  
3319  ------------------------------------------------------------------  ------------------------------------------------------------------
3320  Capturing subpattern count = 0  Capturing subpattern count = 0
3321  No options  No options
3322  First char = '8'  First char = '8'
3323  Need char = 'X'  Need char = 'X'
3324    
3325  |\$\<\.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): 416  
3326  ------------------------------------------------------------------  ------------------------------------------------------------------
3327    0 412 Bra 0          Bra
3328    3 250 $<.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[          $<.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
3329  255 154 %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
3330  411     \b          Ket
3331  412 412 Ket          End
 415     End  
3332  ------------------------------------------------------------------  ------------------------------------------------------------------
3333  Capturing subpattern count = 0  Capturing subpattern count = 0
3334  No options  No options
# Line 3218  No need char Line 3345  No need char
3345  /(.*)\d+/I  /(.*)\d+/I
3346  Capturing subpattern count = 1  Capturing subpattern count = 1
3347  No options  No options
3348  First char at start or follows \n  First char at start or follows newline
3349  No need char  No need char
3350    
3351  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3352  Capturing subpattern count = 1  Capturing subpattern count = 1
3353  Max back reference = 1  Max back reference = 1
# Line 3238  No need char Line 3365  No need char
3365  Capturing subpattern count = 2  Capturing subpattern count = 2
3366  Max back reference = 2  Max back reference = 2
3367  No options  No options
3368  First char at start or follows \n  First char at start or follows newline
3369  Need char = 'z'  Need char = 'z'
3370    
3371  /((.*))\d+\1/I  /((.*))\d+\1/I
# Line 3251  No need char Line 3378  No need char
3378   0: bc123bc   0: bc123bc
3379   1: bc   1: bc
3380   2: bc   2: bc
3381    
3382  /a[b]/I  /a[b]/I
3383  Capturing subpattern count = 0  Capturing subpattern count = 0
3384  No options  No options
# Line 3264  No options Line 3391  No options
3391  First char = 'a'  First char = 'a'
3392  No need char  No need char
3393    
3394  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3395  Capturing subpattern count = 0  Capturing subpattern count = 0
3396  Options: caseless  Options: caseless
3397  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3273  Need char = 'z' (caseless) Line 3400  Need char = 'z' (caseless)
3400  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3401  Capturing subpattern count = 0  Capturing subpattern count = 0
3402  No options  No options
 Case state changes  
3403  First char = 'a'  First char = 'a'
3404  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3405    
# Line 3307  No options Line 3433  No options
3433  No first char  No first char
3434  Need char = 'a'  Need char = 'a'
3435    
3436  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3437  Capturing subpattern count = 0  Capturing subpattern count = 1
3438  No options  No options
3439  First char = 'a'  First char = 'a'
3440  No need char  No need char
3441    
3442  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3443  Capturing subpattern count = 0  Capturing subpattern count = 1
3444  No options  No options
3445  First char = 'a'  First char = 'a'
3446  Need char = 'z'  Need char = 'z'
3447    
3448  /(?(1)abz)/I  /(?(1)abz)(.)/I
3449  Capturing subpattern count = 0  Capturing subpattern count = 1
3450  No options  No options
3451  No first char  No first char
3452  No need char  No need char
3453    
3454  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3455  Capturing subpattern count = 0  Capturing subpattern count = 1
3456  No options  No options
3457  No first char  No first char
3458  Need char = '3'  Need char = '3'
# Line 3366  Capturing subpattern count = 0 Line 3492  Capturing subpattern count = 0
3492  No options  No options
3493  No first char  No first char
3494  No need char  No need char
3495  Starting character set: a b  Subject length lower bound = 1
3496    Starting byte set: a b
3497    
3498  /[^a]/I  /[^a]/I
3499  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3385  Capturing subpattern count = 0 Line 3512  Capturing subpattern count = 0
3512  No options  No options
3513  No first char  No first char
3514  Need char = '6'  Need char = '6'
3515  Starting character set: 0 1 2 3 4 5 6 7 8 9  Subject length lower bound = 4
3516    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3517    
3518  /a^b/I  /a^b/I
3519  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3393  No options Line 3521  No options
3521  First char = 'a'  First char = 'a'
3522  Need char = 'b'  Need char = 'b'
3523    
3524  /^a/mI  /^a/Im
3525  Capturing subpattern count = 0  Capturing subpattern count = 0
3526  Options: multiline  Options: multiline
3527  First char at start or follows \n  First char at start or follows newline
3528  Need char = 'a'  Need char = 'a'
3529    abcde    abcde
3530   0: a   0: a
3531    xy\nabc    xy\nabc
3532   0: a   0: a
3533    *** Failers    *** Failers
3534  No match  No match
3535    xyabc    xyabc
3536  No match  No match
3537    
3538  /c|abc/I  /c|abc/I
# Line 3418  Capturing subpattern count = 0 Line 3546  Capturing subpattern count = 0
3546  Options: caseless  Options: caseless
3547  No first char  No first char
3548  No need char  No need char
3549  Starting character set: A B a b  Subject length lower bound = 1
3550    Starting byte set: A B a b
3551    
3552  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3553  Capturing subpattern count = 0  Capturing subpattern count = 0
3554  No options  No options
 Case state changes  
3555  No first char  No first char
3556  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3557  Starting character set: a b  Subject length lower bound = 3
3558    Starting byte set: a b
3559    
3560  /abc(?C)def/  /abc(?C)def/I
3561  Capturing subpattern count = 0  Capturing subpattern count = 0
3562  No options  No options
3563  First char = 'a'  First char = 'a'
3564  Need char = 'f'  Need char = 'f'
3565      abcdef      abcdef
3566  --->abcdef  --->abcdef
3567    0 ^  ^    0 ^  ^       d
3568   0: abcdef   0: abcdef
3569      1234abcdef      1234abcdef
3570  --->1234abcdef  --->1234abcdef
3571    0     ^  ^    0     ^  ^       d
3572   0: abcdef   0: abcdef
3573      *** Failers      *** Failers
3574  No match  No match
3575      abcxyz      abcxyz
3576  No match  No match
3577      abcxyzf      abcxyzf
3578  --->abcxyzf  --->abcxyzf
3579    0 ^  ^    0 ^  ^        d
3580  No match  No match
3581    
3582  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3583  Capturing subpattern count = 0  Capturing subpattern count = 0
3584  No options  No options
3585  First char = 'a'  First char = 'a'
3586  Need char = 'f'  Need char = 'f'
3587      123abcdef      123abcdef
3588  --->123abcdef  --->123abcdef
3589    0    ^  ^    0    ^  ^       d
3590    1    ^    ^    1    ^    ^     f
3591   0: abcdef   0: abcdef
3592    
3593  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3594  Capturing subpattern count = 0  Capturing subpattern count = 0
3595  No options  No options
3596  No first char  No first char
3597  Need char = 'f'  Need char = 'f'
3598      1234abcdef      1234abcdef
3599  --->1234abcdef  --->1234abcdef
3600    1 ^    1 ^              \d
3601    1  ^    1  ^             \d
3602    1   ^    1   ^            \d
3603    1    ^    1    ^           \d
3604    2    ^   ^    2    ^   ^       d
3605   0: 4abcdef   0: 4abcdef
3606      *** Failers      *** Failers
3607  No match  No match
3608      abcdef      abcdef
3609  --->abcdef  --->abcdef
3610    1 ^    1 ^          \d
3611    1  ^    1  ^         \d
3612    1   ^    1   ^        \d
3613    1    ^    1    ^       \d
3614    1     ^    1     ^      \d
3615    1      ^    1      ^     \d
3616  No match  No match
3617    
3618  /(?C255)ab/  /(?C255)ab/I
3619  Capturing subpattern count = 0  Capturing subpattern count = 0
3620  No options  No options
3621  First char = 'a'  First char = 'a'
3622  Need char = 'b'  Need char = 'b'
3623    
3624  /(?C256)ab/  /(?C256)ab/I
3625  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3626    
3627  /(?Cab)xx/  /(?Cab)xx/I
3628  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3629    
3630  /(?C12vr)x/  /(?C12vr)x/I
3631  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3632    
3633  /abc(?C)def/  /abc(?C)def/I
3634  Capturing subpattern count = 0  Capturing subpattern count = 0
3635  No options  No options
3636  First char = 'a'  First char = 'a'
# Line 3510  Need char = 'f' Line 3639  Need char = 'f'
3639  No match  No match
3640      \x83\x0\x61bcdef      \x83\x0\x61bcdef
3641  --->\x83\x00abcdef  --->\x83\x00abcdef
3642    0         ^  ^    0         ^  ^       d
3643   0: abcdef   0: abcdef
3644    
3645  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3646  Capturing subpattern count = 1  Capturing subpattern count = 1
3647  No options  No options
3648  First char = 'a'  First char = 'a'
3649  Need char = 'f'  Need char = 'f'
3650      123abcdef      123abcdef
3651  --->123abcdef  --->123abcdef
3652    0    ^  ^    0    ^  ^       d
3653    1    ^    ^    1    ^    ^     f
3654   0: abcdef   0: abcdef
3655   1: abc   1: abc
3656      123abcdef\C+      123abcdef\C+
3657  Callout 0: last capture = 1  Callout 0: last capture = 1
3658   0: <unset>   0: <unset>
3659   1: abc   1: abc
3660  --->123abcdef  --->123abcdef
3661         ^  ^         ^  ^       d
3662  Callout 1: last capture = 1  Callout 1: last capture = 1
3663   0: <unset>   0: <unset>
3664   1: abc   1: abc
3665  --->123abcdef  --->123abcdef
3666         ^    ^         ^    ^     f
3667   0: abcdef   0: abcdef
3668   1: abc   1: abc
3669      123abcdef\C-      123abcdef\C-
3670   0: abcdef   0: abcdef
3671   1: abc   1: abc
3672      *** Failers      *** Failers
3673  No match  No match
3674      123abcdef\C!1      123abcdef\C!1
3675  --->123abcdef  --->123abcdef
3676    0    ^  ^    0    ^  ^       d
3677    1    ^    ^    1    ^    ^     f
3678  No match  No match
3679    
3680  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3681  Capturing subpattern count = 1  Capturing subpattern count = 1
3682  No options  No options
3683  No first char  No first char
3684  No need char  No need char
3685      abcabcabc      abcabcabc
3686  --->abcabcabc  --->abcabcabc
3687    0 ^    0 ^             (abc(?C1))*
3688    1 ^  ^    1 ^  ^          )
3689    1 ^     ^    1 ^     ^       )
3690    1 ^        ^    1 ^        ^    )
3691   0: abcabcabc   0: abcabcabc
3692   1: abc   1: abc
3693      abcabc\C!1!3      abcabc\C!1!3
3694  --->abcabc  --->abcabc
3695    0 ^    0 ^          (abc(?C1))*
3696    1 ^  ^    1 ^  ^       )
3697    1 ^     ^    1 ^     ^    )
3698   0: abcabc   0: abcabc
3699   1: abc   1: abc
3700      *** Failers      *** Failers
3701  --->*** Failers  --->*** Failers
3702    0 ^    0 ^               (abc(?C1))*
3703   0:   0:
3704      abcabcabc\C!1!3      abcabcabc\C!1!3
3705  --->abcabcabc  --->abcabcabc
3706    0 ^    0 ^             (abc(?C1))*
3707    1 ^  ^    1 ^  ^          )
3708    1 ^     ^    1 ^     ^       )
3709    1 ^        ^    1 ^        ^    )
3710   0: abcabc   0: abcabc
3711   1: abc   1: abc
3712    
3713  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3714  Capturing subpattern count = 1  Capturing subpattern count = 1
3715  No options  No options
3716  No first char  No first char
# Line 3590  No need char Line 3719  No need char
3719  Callout 0: last capture = -1  Callout 0: last capture = -1
3720   0: <unset>   0: <unset>
3721  --->123  --->123
3722      ^  ^      ^  ^    )
3723   0: 123   0: 123
3724   1: 123   1: 123
3725      123456\C+      123456\C+
3726  Callout 0: last capture = -1  Callout 0: last capture = -1
3727   0: <unset>   0: <unset>
3728  --->123456  --->123456
3729      ^  ^      ^  ^       )
3730  Callout 0: last capture = 1  Callout 0: last capture = 1
3731   0: <unset>   0: <unset>
3732   1: 123   1: 123
3733  --->123456  --->123456
3734      ^     ^      ^     ^    )
3735   0: 123456   0: 123456
3736   1: 456   1: 456
3737      123456789\C+      123456789\C+
3738  Callout 0: last capture = -1  Callout 0: last capture = -1
3739   0: <unset>   0: <unset>
3740  --->123456789  --->123456789
3741      ^  ^      ^  ^          )
3742  Callout 0: last capture = 1  Callout 0: last capture = 1
3743   0: <unset>   0: <unset>
3744   1: 123   1: 123
3745  --->123456789  --->123456789
3746      ^     ^      ^     ^       )
3747  Callout 0: last capture = 1  Callout 0: last capture = 1
3748   0: <unset>   0: <unset>
3749   1: 456   1: 456
3750  --->123456789  --->123456789
3751      ^        ^      ^        ^    )
3752   0: 123456789   0: 123456789
3753   1: 789   1: 789
3754    
3755  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3756  Capturing subpattern count = 2  Capturing subpattern count = 2
3757  No options  No options
3758  First char = 'x'  First char = 'x'
# Line 3634  Callout 0: last capture = 2 Line 3763  Callout 0: last capture = 2
3763   1: <unset>   1: <unset>
3764   2: xyz   2: xyz
3765  --->xyzabc  --->xyzabc
3766      ^  ^      ^  ^       p
3767  Callout 1: last capture = -1  Callout 1: last capture = -1
3768   0: <unset>   0: <unset>
3769  --->xyzabc  --->xyzabc
3770      ^      ^          x
3771   0: xyzabc   0: xyzabc
3772   1: xyzabc   1: xyzabc
3773    
3774  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3775  Capturing subpattern count = 3  Capturing subpattern count = 3
3776  No options  No options
3777  First char = 'X'  First char = 'X'
# Line 3654  Callout 0: last capture = 3 Line 3783  Callout 0: last capture = 3
3783   2: <unset>   2: <unset>
3784   3: xyz   3: xyz
3785  --->Xxyzabc  --->Xxyzabc
3786      ^   ^      ^   ^       p
3787  Callout 1: last capture = 1  Callout 1: last capture = 1
3788   0: <unset>   0: <unset>
3789   1: X   1: X
3790  --->Xxyzabc  --->Xxyzabc
3791      ^^      ^^          x
3792   0: Xxyzabc   0: Xxyzabc
3793   1: X   1: X
3794   2: xyzabc   2: xyzabc
3795    
3796  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3797  Capturing subpattern count = 1  Capturing subpattern count = 1
3798  No options  No options
3799  First char = 'a'  First char = 'a'
# Line 3674  Callout 0: last capture = 1 Line 3803  Callout 0: last capture = 1
3803   0: <unset>   0: <unset>
3804   1: abc   1: abc
3805  --->abcdef  --->abcdef
3806      ^      ^          a
3807   0: abcdef   0: abcdef
3808   1: abc   1: abc
3809    
3810  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3811  Capturing subpattern count = 1  Capturing subpattern count = 1
3812  No options  No options
3813  First char = 'a'  First char = 'a'
3814  Need char = 'z'  Need char = 'z'
3815      abcxyz\C+      abcxyz\C+
3816  Callout 1: last capture = 1  Callout 1: last capture = 1
3817   0: <unset>   0: <unset>
3818   1: abc   1: abc
3819  --->abcxyz  --->abcxyz
3820      ^  ^      ^  ^       d
3821  Callout 2: last capture = -1  Callout 2: last capture = -1
3822   0: <unset>   0: <unset>
3823  --->abcxyz  --->abcxyz
3824      ^      ^          a
3825   0: abcxyz   0: abcxyz
3826    
3827  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3828  Capturing subpattern count = 1  Capturing subpattern count = 1
3829  No options  No options
3830  First char = 'x'  First char = 'x'
# Line 3705  Callout 0: last capture = 1 Line 3834  Callout 0: last capture = 1
3834   0: <unset>   0: <unset>
3835   1: abc   1: abc
3836  --->abcxyz  --->abcxyz
3837         ^         ^       )
3838   0: xyz   0: xyz
3839   1: abc   1: abc
3840    
3841  /(?C)abc/  /a(b+)(c*)(?C1)/I
3842    Capturing subpattern count = 2
3843    No options
3844    First char = 'a'
3845    Need char = 'b'
3846        abbbbbccc\C*1
3847    --->abbbbbccc
3848      1 ^        ^
3849    Callout data = 1
3850      1 ^       ^
3851    Callout data = 1
3852      1 ^      ^
3853    Callout data = 1
3854      1 ^     ^
3855    Callout data = 1
3856      1 ^    ^
3857    Callout data = 1
3858      1 ^   ^
3859    Callout data = 1
3860      1 ^  ^
3861    Callout data = 1
3862      1 ^ ^
3863    Callout data = 1
3864    No match
3865    
3866    /a(b+?)(c*?)(?C1)/I
3867    Capturing subpattern count = 2
3868    No options
3869    First char = 'a'
3870    Need char = 'b'
3871        abbbbbccc\C*1
3872    --->abbbbbccc
3873      1 ^ ^
3874    Callout data = 1
3875      1 ^  ^
3876    Callout data = 1
3877      1 ^   ^
3878    Callout data = 1
3879      1 ^    ^
3880    Callout data = 1
3881      1 ^     ^
3882    Callout data = 1
3883      1 ^      ^
3884    Callout data = 1
3885      1 ^       ^
3886    Callout data = 1
3887      1 ^        ^
3888    Callout data = 1
3889    No match
3890    
3891    /(?C)abc/I
3892  Capturing subpattern count = 0  Capturing subpattern count = 0
3893  No options  No options
3894  First char = 'a'  First char = 'a'
3895  Need char = 'c'  Need char = 'c'
3896    
3897  /(?C)^abc/  /(?C)^abc/I
3898  Capturing subpattern count = 0  Capturing subpattern count = 0
3899  Options: anchored  Options: anchored
3900  No first char  No first char
3901  No need char  No need char
3902    
3903  /(?C)a|b/S  /(?C)a|b/IS
3904  Capturing subpattern count = 0  Capturing subpattern count = 0
3905  No options  No options
3906  No first char  No first char
3907  No need char  No need char
3908  Starting character set: a b  Subject length lower bound = 1
3909    Starting byte set: a b
3910    
3911  /(?R)/  /(?R)/I
3912  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3913    
3914  /(a|(?R))/  /(a|(?R))/I
3915  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3916    
3917  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3918  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3919    
3920  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3921  Capturing subpattern count = 3  Capturing subpattern count = 3
3922  No options  No options
3923  First char = 'x'  First char = 'x'
# Line 3766  No need char Line 3946  No need char
3946   3: xxab   3: xxab
3947      *** Failers      *** Failers
3948  No match  No match
3949      xyab      xyab
3950  No match  No match
3951    
3952  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3953  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3954    
3955  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3956  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3957    
3958  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3959  Capturing subpattern count = 1  Capturing subpattern count = 1
3960  Options: anchored  Options: anchored
3961  No first char  No first char
# Line 3786  No need char Line 3966  No need char
3966      a(b)c      a(b)c
3967   0: a(b)c   0: a(b)c
3968   1: c   1: c
3969      a(b(c))d      a(b(c))d
3970   0: a(b(c))d   0: a(b(c))d
3971   1: d   1: d
3972      *** Failers)      *** Failers)
3973  No match  No match
3974      a(b(c)d      a(b(c)d
3975  No match  No match
3976    
3977  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3978  Capturing subpattern count = 1  Capturing subpattern count = 1
3979  Options: anchored  Options: anchored
3980  No first char  No first char
# Line 3809  Need char = '<' Line 3989  Need char = '<'
3989   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3990   1: (1(2)3)   1: (1(2)3)
3991    
3992  /(a(?1)b)/D  /(a(?1)b)/DZ
3993  ------------------------------------------------------------------  ------------------------------------------------------------------
3994    0  18 Bra 0          Bra
3995    3  12 Bra 1          CBra 1
3996    6   1 a          a
3997    9   3 Recurse          Once
3998   12   1 b          Recurse
3999   15  12 Ket          Ket
4000   18  18 Ket          b
4001   21     End          Ket
4002            Ket
4003            End
4004  ------------------------------------------------------------------  ------------------------------------------------------------------
4005  Capturing subpattern count = 1  Capturing subpattern count = 1
4006  No options  No options
4007  First char = 'a'  First char = 'a'
4008  Need char = 'b'  Need char = 'b'
4009    
4010  /(a(?1)+b)/D  /(a(?1)+b)/DZ
4011  ------------------------------------------------------------------  ------------------------------------------------------------------
4012    0  24 Bra 0          Bra
4013    3  18 Bra 1          CBra 1
4014    6   1 a          a
4015    9   6 Bra 0          Once
4016   12   3 Recurse          Recurse
4017   15   6 KetRmax          KetRmax
4018   18   1 b          b
4019   21  18 Ket          Ket
4020   24  24 Ket          Ket
4021   27     End          End
4022  ------------------------------------------------------------------  ------------------------------------------------------------------
4023  Capturing subpattern count = 1  Capturing subpattern count = 1
4024  No options  No options
4025  First char = 'a'  First char = 'a'
4026  Need char = 'b'  Need char = 'b'
4027    
4028  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4029  Capturing subpattern count = 4  Capturing subpattern count = 2
4030  Max back reference = 4  Options: anchored
 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))$/  
 Capturing subpattern count = 2  
 Options: anchored  
4031  No first char  No first char
4032  No need char  No need char
4033      12      12
# Line 3895  No need char Line 4044  No need char
4044  No match  No match
4045      ((2+2)*-3)-7)      ((2+2)*-3)-7)
4046  No match  No match
4047    
4048  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
4049  Capturing subpattern count = 2  Capturing subpattern count = 2
4050  Options: anchored  Options: anchored
4051  No first char  No first char
# Line 3905  No need char Line 4054  No need char
4054   0: xyz   0: xyz
4055   1: xyz   1: xyz
4056   2: y   2: y
4057      xxyzxyzz      xxyzxyzz
4058   0: xxyzxyzz   0: xxyzxyzz
4059   1: xxyzxyzz   1: xxyzxyzz
4060   2: xyzxyz   2: xyzxyz
# Line 3913  No need char Line 4062  No need char
4062  No match  No match
4063      xxyzz      xxyzz
4064  No match  No match
4065      xxyzxyzxyzz      xxyzxyzxyzz
4066  No match  No match
4067    
4068  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4069  Capturing subpattern count = 2  Capturing subpattern count = 2
4070  Options: extended  Options: extended
4071  First char = '<'  First char = '<'
# Line 3937  Need char = '>' Line 4086  Need char = '>'
4086   0: <def>   0: <def>
4087   1: <def>   1: <def>
4088   2: <def>   2: <def>
4089      <abc<>def>      <abc<>def>
4090   0: <abc<>def>   0: <abc<>def>
4091   1: <abc<>def>   1: <abc<>def>
4092   2: <abc<>def>   2: <abc<>def>
4093      <abc<>      <abc<>
4094   0: <>   0: <>
4095   1: <>   1: <>
4096   2: <>   2: <>
# Line 3950  No match Line 4099  No match
4099      <abc      <abc
4100  No match  No match
4101    
4102  /(?1)/  /(?1)/I
4103  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4104    
4105  /((?2)(abc)/  /((?2)(abc)/I
4106  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4107    
4108  /^(abc)def(?1)/  /^(abc)def(?1)/I
4109  Capturing subpattern count = 1  Capturing subpattern count = 1
4110  Options: anchored  Options: anchored
4111  No first char  No first char
# Line 3965  No need char Line 4114  No need char
4114   0: abcdefabc   0: abcdefabc
4115   1: abc   1: abc
4116    
4117  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4118  Capturing subpattern count = 1  Capturing subpattern count = 1
4119  Options: anchored  Options: anchored
4120  No first char  No first char
# Line 3976  No need char Line 4125  No need char
4125      a=b      a=b
4126   0: a=b   0: a=b
4127   1: a   1: a
4128      a=bc      a=bc
4129   0: a=bc   0: a=bc
4130   1: a   1: a
4131    
4132  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4133  Capturing subpattern count = 2  Capturing subpattern count = 2
4134  Options: anchored  Options: anchored
4135  No first char  No first char
# Line 3993  No need char Line 4142  No need char
4142   0: a=b   0: a=b
4143   1: a   1: a
4144   2: b   2: b
4145      a=bc      a=bc
4146   0: a=bc   0: a=bc
4147   1: a   1: a
4148   2: c   2: c
4149    
4150  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4151  ------------------------------------------------------------------  ------------------------------------------------------------------
4152    0  33 Bra 0          Bra
4153    3   1 a          a
4154    6   6 Bra 1          CBra 1
4155    9   1 b          b
4156   12   6 Alt          Alt
4157   15   1 c          c
4158   18  12 Ket          Ket
4159   21   1 d          d
4160   24   6 Bra 2          CBra 2
4161   27   1 e          e
4162   30   6 Ket          Ket
4163   33  33 Ket          Ket
4164   36     End          End
4165  ------------------------------------------------------------------  ------------------------------------------------------------------
4166  Capturing subpattern count = 2  Capturing subpattern count = 2
4167  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4025  Need char = 'e' Line 4174  Need char = 'e'
4174   0: abde   0: abde
4175   1: b   1: b
4176   2: e   2: e
4177      acde      acde
4178   0: acde   0: acde
4179   1: c   1: c
4180   2: e   2: e
4181    
4182  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4183  ------------------------------------------------------------------  ------------------------------------------------------------------
4184    0  39 Bra 0          Bra
4185    3  24 Bra 0          Bra
4186    6   1 a          a
4187    9  15 Bra 1          CBra 1
4188   12   1 c          c
4189   15   6 Bra 2          CBra 2
4190   18   1 d          d
4191   21   6 Ket          Ket
4192   24  15 Ket          Ket
4193   27  24 Ket          Ket
4194   30   6 Bra 3          CBra 3
4195   33   1 a          a
4196   36   6 Ket          Ket
4197   39  39 Ket          Ket
4198   42     End          End
4199  ------------------------------------------------------------------  ------------------------------------------------------------------
4200  Capturing subpattern count = 3  Capturing subpattern count = 3
4201  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4057  No options Line 4206  No options
4206  First char = 'a'  First char = 'a'
4207  Need char = 'a'  Need char = 'a'
4208    
4209  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4210  ------------------------------------------------------------------  ------------------------------------------------------------------
4211    0  29 Bra 0          Bra
4212    3   6 Bra 1          CBra 1
4213    6   1 a          a
4214    9   6 Ket          Ket
4215   12     Any          Any
4216   13     Any          Any
4217   14     Any          Any
4218   15     \1          \1
4219   18   3 bbb          bbb
4220   23   3 Recurse          Once
4221   26   1 d          Recurse
4222   29  29 Ket          Ket
4223   32     End          d
4224            Ket
4225            End
4226  ------------------------------------------------------------------  ------------------------------------------------------------------
4227  Capturing subpattern count = 1  Capturing subpattern count = 1
4228  Max back reference = 1  Max back reference = 1
# Line 4081  No options Line 4232  No options
4232  First char = 'a'  First char = 'a'
4233  Need char = 'd'  Need char = 'd'
4234    
4235  /^\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
4236  Capturing subpattern count = 4  Capturing subpattern count = 4
4237  Max back reference = 4  Max back reference = 4
4238  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4108  No need char Line 4259  No need char
4259   2: <unset>   2: <unset>
4260   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4261   4: A   4: A
4262      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4263   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4264   1: <unset>   1: <unset>
4265   2: <unset>   2: <unset>
# Line 4116  No need char Line 4267  No need char
4267   4: A   4: A
4268      *** Failers      *** Failers
4269  No match  No match
4270      The quick brown fox      The quick brown fox
4271  No match  No match
4272    
4273  /((?(R)a|b))\1(?1)?/  /((?(R)a|b))\1(?1)?/I
4274  Capturing subpattern count = 1  Capturing subpattern count = 1
4275  Max back reference = 1  Max back reference = 1
4276  No options  No options
# Line 4128  No need char Line 4279  No need char
4279    bb    bb
4280   0: bb   0: bb
4281   1: b   1: b
4282    bbaa    bbaa
4283   0: bba   0: bba
4284   1: b   1: b
4285    
4286  /(.*)a/sI  /(.*)a/Is
4287  Capturing subpattern count = 1  Capturing subpattern count = 1
4288  Options: anchored dotall  Options: anchored dotall
4289  No first char  No first char
4290  Need char = 'a'  Need char = 'a'
4291    
4292  /(.*)a\1/sI  /(.*)a\1/Is
4293  Capturing subpattern count = 1  Capturing subpattern count = 1
4294  Max back reference = 1  Max back reference = 1
4295  Options: dotall  Options: dotall
4296  No first char  No first char
4297  Need char = 'a'  Need char = 'a'
4298    
4299  /(.*)a(b)\2/sI  /(.*)a(b)\2/Is
4300  Capturing subpattern count = 2  Capturing subpattern count = 2
4301  Max back reference = 2  Max back reference = 2
4302  Options: anchored dotall  Options: anchored dotall
4303  No first char  No first char
4304  Need char = 'b'  Need char = 'b'
4305    
4306  /((.*)a|(.*)b)z/sI  /((.*)a|(.*)b)z/Is
4307  Capturing subpattern count = 3  Capturing subpattern count = 3
4308  Options: anchored dotall  Options: anchored dotall
4309  No first char  No first char
4310  Need char = 'z'  Need char = 'z'
4311    
4312  /((.*)a|(.*)b)z\1/sI  /((.*)a|(.*)b)z\1/Is
4313  Capturing subpattern count = 3  Capturing subpattern count = 3
4314  Max back reference = 1  Max back reference = 1
4315  Options: dotall  Options: dotall
4316  No first char  No first char
4317  Need char = 'z'  Need char = 'z'
4318    
4319  /((.*)a|(.*)b)z\2/sI  /((.*)a|(.*)b)z\2/Is
4320  Capturing subpattern count = 3  Capturing subpattern count = 3
4321  Max back reference = 2  Max back reference = 2
4322  Options: dotall  Options: dotall
4323  No first char  No first char
4324  Need char = 'z'  Need char = 'z'
4325    
4326  /((.*)a|(.*)b)z\3/sI  /((.*)a|(.*)b)z\3/Is
4327  Capturing subpattern count = 3  Capturing subpattern count = 3
4328  Max back reference = 3  Max back reference = 3
4329  Options: dotall  Options: dotall
4330  No first char  No first char
4331  Need char = 'z'  Need char = 'z'
4332    
4333  /((.*)a|^(.*)b)z\3/sI  /((.*)a|^(.*)b)z\3/Is
4334  Capturing subpattern count = 3  Capturing subpattern count = 3
4335  Max back reference = 3  Max back reference = 3
4336  Options: anchored dotall  Options: anchored dotall
4337  No first char  No first char
4338  Need char = 'z'  Need char = 'z'
4339    
4340  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4341  Capturing subpattern count = 31  Capturing subpattern count = 31
4342  Options: anchored dotall  Options: anchored dotall
4343  No first char  No first char
4344  No need char  No need char
4345    
4346  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4347  Capturing subpattern count = 31  Capturing subpattern count = 31
4348  Max back reference = 31  Max back reference = 31
4349  Options: dotall  Options: dotall
4350  No first char  No first char
4351  No need char  No need char
4352    
4353  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4354  Capturing subpattern count = 32  Capturing subpattern count = 32
4355  Max back reference = 32  Max back reference = 32
4356  Options: dotall  Options: dotall
4357  No first char  No first char
4358  No need char  No need char
4359    
4360  /(a)(bc)/ND  /(a)(bc)/INDZ
4361  ------------------------------------------------------------------  ------------------------------------------------------------------
4362    0  22 Bra 0          Bra
4363    3   6 Bra 0          Bra
4364    6   1 a          a
4365    9   6 Ket          Ket
4366   12   7 Bra 0          Bra
4367   15   2 bc          bc
4368   19   7 Ket          Ket
4369   22  22 Ket          Ket
4370   25     End          End
4371  ------------------------------------------------------------------  ------------------------------------------------------------------
4372  Capturing subpattern count = 0  Capturing subpattern count = 0
4373  Options:  Options: no_auto_capture
4374  First char = 'a'  First char = 'a'
4375  Need char = 'c'  Need char = 'c'
4376    abc    abc
4377   0: abc   0: abc
4378    
4379  /(?P<one>a)(bc)/ND  /(?P<one>a)(bc)/INDZ
4380  ------------------------------------------------------------------  ------------------------------------------------------------------
4381    0  22 Bra 0          Bra
4382    3   6 Bra 1          CBra 1
4383    6   1 a          a
4384    9   6 Ket          Ket
4385   12   7 Bra 0          Bra
4386   15   2 bc          bc
4387   19   7 Ket          Ket
4388   22  22 Ket          Ket
4389   25     End          End
4390  ------------------------------------------------------------------  ------------------------------------------------------------------
4391  Capturing subpattern count = 1  Capturing subpattern count = 1
4392  Named capturing subpatterns:  Named capturing subpatterns:
4393    one   1    one   1
4394  Options:  Options: no_auto_capture
4395  First char = 'a'  First char = 'a'
4396  Need char = 'c'  Need char = 'c'
4397    abc    abc
4398   0: abc   0: abc
4399   1: a   1: a
4400    
4401  /(a)(?P<named>bc)/ND  /(a)(?P<named>bc)/INDZ
4402  ------------------------------------------------------------------  ------------------------------------------------------------------
4403    0  22 Bra 0          Bra
4404    3   6 Bra 0          Bra
4405    6   1 a          a
4406    9   6 Ket          Ket
4407   12   7 Bra 1          CBra 1
4408   15   2 bc          bc
4409   19   7 Ket          Ket
4410   22  22 Ket          Ket
4411   25     End          End
4412  ------------------------------------------------------------------  ------------------------------------------------------------------
4413  Capturing subpattern count = 1  Capturing subpattern count = 1
4414  Named capturing subpatterns:  Named capturing subpatterns:
4415    named   1    named   1
4416  Options:  Options: no_auto_capture
4417  First char = 'a'  First char = 'a'
4418  Need char = 'c'  Need char = 'c'
4419    
4420  /(a+)*zz/  /(a+)*zz/I
4421  Capturing subpattern count = 1  Capturing subpattern count = 1
4422  No options  No options
4423  No first char  No first char
4424  Need char = 'z'  Need char = 'z'
4425    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4426  Minimum match limit = 8  Minimum match() limit = 8
4427    Minimum match() recursion limit = 6
4428   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4429   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4430    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4431  Minimum match limit = 32768  Minimum match() limit = 32768
4432    Minimum match() recursion limit = 42
4433  No match  No match
4434    
4435  /(aaa(?C1)bbb|ab)/  /(aaa(?C1)bbb|ab)/I
4436  Capturing subpattern count = 1  Capturing subpattern count = 1
4437  No options  No options
4438  First char = 'a'  First char = 'a'
4439  Need char = 'b'  Need char = 'b'
4440     aaabbb     aaabbb