/[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 602 by ph10, Wed May 25 08:29:03 2011 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       /i b
636    8   1 b          Ket
637   11   8 Ket          Ket
638   14  00 Opt          End
  16  16 Ket  
  19     End  
639  ------------------------------------------------------------------  ------------------------------------------------------------------
640  Capturing subpattern count = 1  Capturing subpattern count = 1
641  No options  No options
 Case state changes  
642  First char = 'b' (caseless)  First char = 'b' (caseless)
643  No need char  No need char
644  Study returned NULL  Subject length lower bound = 1
645    No set of starting bytes
646    
647  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
648  Capturing subpattern count = 1  Capturing subpattern count = 1
649  No options  No options
 Case state changes  
650  No first char  No first char
651  No need char  No need char
652  Starting character set: C a b c d  Subject length lower bound = 1
653    Starting byte set: C a b c d
654    
655  /a$/  /a$/I
656  Capturing subpattern count = 0  Capturing subpattern count = 0
657  No options  No options
658  First char = 'a'  First char = 'a'
# Line 615  No need char Line 661  No need char
661   0: a   0: a
662      a\n      a\n
663   0: a   0: a
664      *** Failers      *** Failers
665  No match  No match
666      \Za      \Za
667  No match  No match
668      \Za\n      \Za\n
669  No match  No match
670    
671  /a$/m  /a$/Im
672  Capturing subpattern count = 0  Capturing subpattern count = 0
673  Options: multiline  Options: multiline
674  First char = 'a'  First char = 'a'
# Line 631  No need char Line 677  No need char
677   0: a   0: a
678      a\n      a\n
679   0: a   0: a
680      \Za\n      \Za\n
681   0: a   0: a
682      *** Failers      *** Failers
683  No match  No match
684      \Za      \Za
685  No match  No match
686    
687  /\Aabc/m  /\Aabc/Im
688  Capturing subpattern count = 0  Capturing subpattern count = 0
689  Options: anchored multiline  Options: anchored multiline
690  No first char  No first char
691  No need char  No need char
692    
693  /^abc/m  /^abc/Im
694  Capturing subpattern count = 0  Capturing subpattern count = 0
695  Options: multiline  Options: multiline
696  First char at start or follows \n  First char at start or follows newline
697  Need char = 'c'  Need char = 'c'
698    
699  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
700  Capturing subpattern count = 5  Capturing subpattern count = 5
701  Options: anchored  Options: anchored
702  No first char  No first char
# Line 663  No need char Line 709  No need char
709   4: bbbbccccc   4: bbbbccccc
710   5: def   5: def
711    
712  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
713  Capturing subpattern count = 0  Capturing subpattern count = 0
714  No options  No options
715  No first char  No first char
716  No need char  No need char
717  Starting character set: a b  Subject length lower bound = 1
718    Starting byte set: a b
719    
720  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
721  Capturing subpattern count = 1  Capturing subpattern count = 1
722  No options  No options
723  No first char  No first char
724  Need char = 'a'  Need char = 'a'
725  Starting character set: a o  Subject length lower bound = 5
726    Starting byte set: a o
727    
728  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
729  Capturing subpattern count = 0  Capturing subpattern count = 0
730  No options  No options
731  No first char  No first char
732  No need char  No need char
733  Starting character set: a b  Subject length lower bound = 1
734    Starting byte set: a b
735    
736    /(?<=foo\n)^bar/Im
737    Capturing subpattern count = 0
738    Contains explicit CR or LF match
739    Options: multiline
740    No first char
741    Need char = 'r'
742        foo\nbarbar
743     0: bar
744        ***Failers
745    No match
746        rhubarb
747    No match
748        barbell
749    No match
750        abc\nbarton
751    No match
752    
753  /(?<=foo\n)^bar/m  /^(?<=foo\n)bar/Im
754  Capturing subpattern count = 0  Capturing subpattern count = 0
755    Contains explicit CR or LF match
756  Options: multiline  Options: multiline
757  First char at start or follows \n  First char at start or follows newline
758  Need char = 'r'  Need char = 'r'
759        foo\nbarbar
760     0: bar
761        ***Failers
762    No match
763        rhubarb
764    No match
765        barbell
766    No match
767        abc\nbarton
768    No match
769    
770  /(?>^abc)/m  /(?>^abc)/Im
771  Capturing subpattern count = 0  Capturing subpattern count = 0
772  Options: multiline  Options: multiline
773  First char at start or follows \n  First char at start or follows newline
774  Need char = 'c'  Need char = 'c'
775      abc      abc
776   0: abc   0: abc
# Line 701  Need char = 'c' Line 778  Need char = 'c'
778   0: abc   0: abc
779      *** Failers      *** Failers
780  No match  No match
781      defabc      defabc
782  No match  No match
783    
784  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 714  Failed: lookbehind assertion is not fixe Line 791  Failed: lookbehind assertion is not fixe
791  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
792    
793  /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'  
794    
795  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
796  Capturing subpattern count = 0  Capturing subpattern count = 0
797  No options  No options
798  First char = '-'  First char = '-'
# Line 732  Need char = 't' Line 805  Need char = 't'
805  No match  No match
806      cart      cart
807  No match  No match
808      horse-and-cart      horse-and-cart
809  No match  No match
810    
811  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
812  Capturing subpattern count = 0  Capturing subpattern count = 0
813  No options  No options
 Case state changes  
814  No first char  No first char
815  No need char  No need char
816    
817  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
818  Capturing subpattern count = 2  Capturing subpattern count = 2
819  No options  No options
820  First char at start or follows \n  First char at start or follows newline
821  No need char  No need char
822      alphabetabcd      alphabetabcd
823   0: alphabetabcd   0: alphabetabcd
# Line 755  No need char Line 827  No need char
827   1: <unset>   1: <unset>
828   2: xyz   2: xyz
829    
830  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
831  Capturing subpattern count = 0  Capturing subpattern count = 0
832  No options  No options
 Case state changes  
833  First char = 'Z'  First char = 'Z'
834  Need char = 'Z'  Need char = 'Z'
835      abxyZZ      abxyZZ
# Line 771  Need char = 'Z' Line 842  Need char = 'Z'
842   0: ZZ   0: ZZ
843      bZZ      bZZ
844   0: ZZ   0: ZZ
845      BZZ      BZZ
846   0: ZZ   0: ZZ
847      *** Failers      *** Failers
848  No match  No match
849      ZZ      ZZ
850  No match  No match
851      abXYZZ      abXYZZ
852  No match  No match
853      zzz      zzz
854  No match  No match
855      bzz      bzz
856  No match  No match
857    
858  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
859  Capturing subpattern count = 1  Capturing subpattern count = 1
860  No options  No options
861  First char = 'b'  First char = 'b'
862  Need char = 'r'  Need char = 'r'
863      bar      bar
864   0: bar   0: bar
865      foobbar      foobbar
866   0: bar   0: bar
867      *** Failers      *** Failers
868  No match  No match
869      fooabar      fooabar
870  No match  No match
871    
872  /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
873  Capturing subpattern count = 0  Capturing subpattern count = 0
874  No options  No options
875  First char = 'T'  First char = 'T'
876  Need char = 't'  Need char = 't'
877    
878  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
879  Capturing subpattern count = 1  Capturing subpattern count = 1
880  Options: anchored  Options: anchored
881  No first char  No first char
882  No need char  No need char
883      *** Failers      *** Failers
884  No match  No match
885      a      a
886  No match  No match
887    
888  /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
889  Capturing subpattern count = 0  Capturing subpattern count = 0
890  No options  No options
891  First char = 'T'  First char = 'T'
892  Need char = 'g'  Need char = 'g'
893    
894  /^(a\1?){4}$/  /^(a\1?){4}$/I
895  Capturing subpattern count = 1  Capturing subpattern count = 1
896  Max back reference = 1  Max back reference = 1
897  Options: anchored  Options: anchored
898  No first char  No first char
899  No need char  No need char
900        aaaa
901    No match
902      aaaaaa      aaaaaa
903   0: aaaaaa  No match
  1: aa  
904    
905  /These are syntax tests from Perl 5.005/  /Perl does not fail these two for the final subjects. Neither did PCRE until/
906    /release 8.01. The problem is in backtracking into a subpattern that contains/
907    No match
908    /a recursive reference to itself. PCRE has now made these into atomic patterns./
909    No match
910    
911    /^(xa|=?\1a){2}$/
912        xa=xaa
913     0: xa=xaa
914     1: =xaa
915        ** Failers
916    No match
917        xa=xaaa
918    No match
919    
920    /^(xa|=?\1a)+$/
921        xa=xaa
922     0: xa=xaa
923     1: =xaa
924        ** Failers
925    No match
926        xa=xaaa
927    No match
928    
929    /These are syntax tests from Perl 5.005/I
930  Capturing subpattern count = 0  Capturing subpattern count = 0
931  No options  No options
932  First char = 'T'  First char = 'T'
# Line 872  Failed: reference to non-existent subpat Line 968  Failed: reference to non-existent subpat
968  /(a)|\2/  /(a)|\2/
969  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
970    
971  /a[b-a]/i  /a[b-a]/Ii
972  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
973    
974  /a[]b/i  /a[]b/Ii
975  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
976    
977  /a[/i  /a[/Ii
978  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
979    
980  /*a/i  /*a/Ii
981  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
982    
983  /(*)b/i  /(*)b/Ii
984  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
985    
986  /abc)/i  /abc)/Ii
987  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
988    
989  /(abc/i  /(abc/Ii
990  Failed: missing ) at offset 4  Failed: missing ) at offset 4
991    
992  /a**/i  /a**/Ii
993  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
994    
995  /)(/i  /)(/Ii
996  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
997    
998  /:(?:/  /:(?:/
# Line 906  Failed: missing ) at offset 4 Line 1002  Failed: missing ) at offset 4
1002  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
1003    
1004  /a(?{)b/  /a(?{)b/
1005  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1006    
1007  /a(?{{})b/  /a(?{{})b/
1008  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1009    
1010  /a(?{}})b/  /a(?{}})b/
1011  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1012    
1013  /a(?{"{"})b/  /a(?{"{"})b/
1014  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1015    
1016  /a(?{"{"}})b/  /a(?{"{"}})b/
1017  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1018    
1019  /(?(1?)a|b)/  /(?(1?)a|b)/
1020  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  
1021    
1022  /[a[:xyz:/  /[a[:xyz:/
1023  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 1037  Failed: POSIX code 9: bad escape sequenc
1037  /abc/\i  /abc/\i
1038  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
1039    
1040  /(a)bc(d)/  /(a)bc(d)/I
1041  Capturing subpattern count = 2  Capturing subpattern count = 2
1042  No options  No options
1043  First char = 'a'  First char = 'a'
# Line 963  Need char = 'd' Line 1056  Need char = 'd'
1056   1: a   1: a
1057   2: d   2: d
1058  copy substring 5 failed -7  copy substring 5 failed -7
1059    
1060  /(.{20})/  /(.{20})/I
1061  Capturing subpattern count = 1  Capturing subpattern count = 1
1062  No options  No options
1063  No first char  No first char
# Line 975  No need char Line 1068  No need char
1068      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1069   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1070   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1071  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1072      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1073   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1074   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1075   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1076    
1077  /(.{15})/  /(.{15})/I
1078  Capturing subpattern count = 1  Capturing subpattern count = 1
1079  No options  No options
1080  No first char  No first char
# Line 995  No need char Line 1088  No need char
1088   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1089   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1090    
1091  /(.{16})/  /(.{16})/I
1092  Capturing subpattern count = 1  Capturing subpattern count = 1
1093  No options  No options
1094  No first char  No first char
# Line 1006  No need char Line 1099  No need char
1099      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1100   0: abcdefghijklmnop   0: abcdefghijklmnop
1101   1: abcdefghijklmnop   1: abcdefghijklmnop
1102  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1103   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1104   0L abcdefghijklmnop   0L abcdefghijklmnop
1105   1L abcdefghijklmnop   1L abcdefghijklmnop
1106    
1107  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1108  Capturing subpattern count = 3  Capturing subpattern count = 3
1109  Options: anchored  Options: anchored
1110  No first char  No first char
1111  No need char  No need char
1112      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1113   0: adef   0: adef
1114   1: a   1: a
1115   2: <unset>   2: <unset>
# Line 1029  get substring 4 failed -7 Line 1122  get substring 4 failed -7
1122   1L a   1L a
1123   2L   2L
1124   3L f   3L f
1125      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1126   0: bcdef   0: bcdef
1127   1: bc   1: bc
1128   2: bc   2: bc
# Line 1042  get substring 4 failed -7 Line 1135  get substring 4 failed -7
1135   1L bc   1L bc
1136   2L bc   2L bc
1137   3L f   3L f
1138      adefghijk\C0      adefghijk\C0
1139   0: adef   0: adef
1140   1: a   1: a
1141   2: <unset>   2: <unset>
1142   3: f   3: f
1143   0C adef (4)   0C adef (4)
1144    
1145  /^abc\00def/  /^abc\00def/I
1146  Capturing subpattern count = 0  Capturing subpattern count = 0
1147  Options: anchored  Options: anchored
1148  No first char  No first char
1149  No need char  No need char
1150      abc\00def\L\C0      abc\00def\L\C0
1151   0: abc\x00def   0: abc\x00def
1152   0C abc (7)   0C abc (7)
1153   0L abc   0L abc
1154    
1155  /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]+
1156  )((?:[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]+
1157  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 428  
1158  Capturing subpattern count = 8  Capturing subpattern count = 8
1159    Contains explicit CR or LF match
1160  No options  No options
1161  First char = 'w'  First char = 'w'
1162  Need char = 'd'  Need char = 'd'
1163    
1164  /.*X/D  /.*X/IDZ
1165  ------------------------------------------------------------------  ------------------------------------------------------------------
1166    0   8 Bra 0          Bra
1167    3     Any*          Any*
1168    5   1 X          X
1169    8   8 Ket          Ket
1170   11     End          End
1171  ------------------------------------------------------------------  ------------------------------------------------------------------
1172  Capturing subpattern count = 0  Capturing subpattern count = 0
1173  No options  No options
1174  First char at start or follows \n  First char at start or follows newline
1175  Need char = 'X'  Need char = 'X'
1176    
1177  /.*X/Ds  /.*X/IDZs
1178  ------------------------------------------------------------------  ------------------------------------------------------------------
1179    0   8 Bra 0          Bra
1180    3     Any*          AllAny*
1181    5   1 X          X
1182    8   8 Ket          Ket
1183   11     End          End
1184  ------------------------------------------------------------------  ------------------------------------------------------------------
1185  Capturing subpattern count = 0  Capturing subpattern count = 0
1186  Options: anchored dotall  Options: anchored dotall
1187  No first char  No first char
1188  Need char = 'X'  Need char = 'X'
1189    
1190  /(.*X|^B)/D  /(.*X|^B)/IDZ
1191  ------------------------------------------------------------------  ------------------------------------------------------------------
1192    0  21 Bra 0          Bra
1193    3   8 Bra 1          CBra 1
1194    6     Any*          Any*
1195    8   1 X          X
1196   11   7 Alt          Alt
1197   14     ^          ^
1198   15   1 B          B
1199   18  15 Ket          Ket
1200   21  21 Ket          Ket
1201   24     End          End
1202  ------------------------------------------------------------------  ------------------------------------------------------------------
1203  Capturing subpattern count = 1  Capturing subpattern count = 1
1204  No options  No options
1205  First char at start or follows \n  First char at start or follows newline
1206  No need char  No need char
1207    
1208  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1209  ------------------------------------------------------------------  ------------------------------------------------------------------
1210    0  21 Bra 0          Bra
1211    3   8 Bra 1          CBra 1
1212    6     Any*          AllAny*
1213    8   1 X          X
1214   11   7 Alt          Alt
1215   14     ^          ^
1216   15   1 B          B
1217   18  15 Ket          Ket
1218   21  21 Ket          Ket
1219   24     End          End
1220  ------------------------------------------------------------------  ------------------------------------------------------------------
1221  Capturing subpattern count = 1  Capturing subpattern count = 1
1222  Options: anchored dotall  Options: anchored dotall
1223  No first char  No first char
1224  No need char  No need char
1225    
1226  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1227  ------------------------------------------------------------------  ------------------------------------------------------------------
1228    0  21 Bra 0          Bra
1229    3   8 Bra 1          CBra 1
1230    6     Any*          AllAny*
1231    8   1 X          X
1232   11   7 Alt          Alt
1233   14     ^          ^
1234   15   1 B          B
1235   18  15 Ket          Ket
1236   21  21 Ket          Ket
1237   24     End          End
1238  ------------------------------------------------------------------  ------------------------------------------------------------------
1239  Capturing subpattern count = 1  Capturing subpattern count = 1
1240  Options: anchored dotall  Options: anchored dotall
1241  No first char  No first char
1242  No need char  No need char
1243    
1244  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1245  ------------------------------------------------------------------  ------------------------------------------------------------------
1246    0  27 Bra 0          Bra
1247    3  10 Bra 0          Bra
1248    6  04 Opt          AllAny*
1249    8     Any*          X
1250   10   1 X          Alt
1251   13   9 Alt          ^
1252   16  04 Opt          B
1253   18     ^          Ket
1254   19   1 B          Ket
1255   22  19 Ket          End
  25  00 Opt  
  27  27 Ket  
  30     End  
1256  ------------------------------------------------------------------  ------------------------------------------------------------------
1257  Capturing subpattern count = 0  Capturing subpattern count = 0
1258  No options  Options: anchored
1259  First char at start or follows \n  No first char
1260  No need char  No need char
1261    
1262  /\Biss\B/+  /\Biss\B/I+
1263  Capturing subpattern count = 0  Capturing subpattern count = 0
1264  No options  No options
1265  First char = 'i'  First char = 'i'
# Line 1178  Need char = 's' Line 1268  Need char = 's'
1268   0: iss   0: iss
1269   0+ issippi   0+ issippi
1270    
1271  /\Biss\B/+P  /\Biss\B/I+P
1272      Mississippi      Mississippi
1273   0: iss   0: iss
1274   0+ issippi   0+ issippi
1275    
1276  /iss/G+  /iss/IG+
1277  Capturing subpattern count = 0  Capturing subpattern count = 0
1278  No options  No options
1279  First char = 'i'  First char = 'i'
# Line 1194  Need char = 's' Line 1284  Need char = 's'
1284   0: iss   0: iss
1285   0+ ippi   0+ ippi
1286    
1287  /\Biss\B/G+  /\Biss\B/IG+
1288  Capturing subpattern count = 0  Capturing subpattern count = 0
1289  No options  No options
1290  First char = 'i'  First char = 'i'
# Line 1203  Need char = 's' Line 1293  Need char = 's'
1293   0: iss   0: iss
1294   0+ issippi   0+ issippi
1295    
1296  /\Biss\B/g+  /\Biss\B/Ig+
1297  Capturing subpattern count = 0  Capturing subpattern count = 0
1298  No options  No options
1299  First char = 'i'  First char = 'i'
# Line 1218  No match Line 1308  No match
1308      Mississippi\A      Mississippi\A
1309  No match  No match
1310    
1311  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1312  Capturing subpattern count = 0  Capturing subpattern count = 0
1313  No options  No options
1314  First char = 'i'  First char = 'i'
# Line 1229  Need char = 's' Line 1319  Need char = 's'
1319   0: iss   0: iss
1320   0+ ippi   0+ ippi
1321    
1322  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1323  Capturing subpattern count = 0  Capturing subpattern count = 0
1324  No options  No options
1325  First char = 'i'  First char = 'i'
# Line 1238  Need char = 's' Line 1328  Need char = 's'
1328   0: iss   0: iss
1329   0+ issippi   0+ issippi
1330    
1331  /^iss/g+  /^iss/Ig+
1332  Capturing subpattern count = 0  Capturing subpattern count = 0
1333  Options: anchored  Options: anchored
1334  No first char  No first char
# Line 1246  No need char Line 1336  No need char
1336      ississippi      ississippi
1337   0: iss   0: iss
1338   0+ issippi   0+ issippi
1339    
1340  /.*iss/g+  /.*iss/Ig+
1341  Capturing subpattern count = 0  Capturing subpattern count = 0
1342  No options  No options
1343  First char at start or follows \n  First char at start or follows newline
1344  Need char = 's'  Need char = 's'
1345      abciss\nxyzisspqr      abciss\nxyzisspqr
1346   0: abciss   0: abciss
1347   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1348   0: xyziss   0: xyziss
1349   0+ pqr   0+ pqr
1350    
1351  /.i./+g  /.i./I+g
1352  Capturing subpattern count = 0  Capturing subpattern count = 0
1353  No options  No options
1354  No first char  No first char
# Line 1284  Need char = 'i' Line 1374  Need char = 'i'
1374   0+ river   0+ river
1375   0: riv   0: riv
1376   0+ er   0+ er
1377      Missouri river\A      Missouri river\A
1378   0: Mis   0: Mis
1379   0+ souri river   0+ souri river
1380    
1381  /^.is/+g  /^.is/I+g
1382  Capturing subpattern count = 0  Capturing subpattern count = 0
1383  Options: anchored  Options: anchored
1384  No first char  No first char
# Line 1297  No need char Line 1387  No need char
1387   0: Mis   0: Mis
1388   0+ sissippi   0+ sissippi
1389    
1390  /^ab\n/g+  /^ab\n/Ig+
1391  Capturing subpattern count = 0  Capturing subpattern count = 0
1392    Contains explicit CR or LF match
1393  Options: anchored  Options: anchored
1394  No first char  No first char
1395  No need char  No need char
# Line 1306  No need char Line 1397  No need char
1397   0: ab\x0a   0: ab\x0a
1398   0+ ab\x0acd   0+ ab\x0acd
1399    
1400  /^ab\n/mg+  /^ab\n/Img+
1401  Capturing subpattern count = 0  Capturing subpattern count = 0
1402    Contains explicit CR or LF match
1403  Options: multiline  Options: multiline
1404  First char at start or follows \n  First char at start or follows newline
1405  Need char = 10  Need char = 10
1406      ab\nab\ncd      ab\nab\ncd
1407   0: ab\x0a   0: ab\x0a
# Line 1317  Need char = 10 Line 1409  Need char = 10
1409   0: ab\x0a   0: ab\x0a
1410   0+ cd   0+ cd
1411    
1412  /abc/  /abc/I
1413  Capturing subpattern count = 0  Capturing subpattern count = 0
1414  No options  No options
1415  First char = 'a'  First char = 'a'
1416  Need char = 'c'  Need char = 'c'
1417    
1418  /abc|bac/  /abc|bac/I
1419  Capturing subpattern count = 0  Capturing subpattern count = 0
1420  No options  No options
1421  No first char  No first char
1422  Need char = 'c'  Need char = 'c'
1423    
1424  /(abc|bac)/  /(abc|bac)/I
1425  Capturing subpattern count = 1  Capturing subpattern count = 1
1426  No options  No options
1427  No first char  No first char
1428  Need char = 'c'  Need char = 'c'
1429    
1430  /(abc|(c|dc))/  /(abc|(c|dc))/I
1431  Capturing subpattern count = 2  Capturing subpattern count = 2
1432  No options  No options
1433  No first char  No first char
1434  Need char = 'c'  Need char = 'c'
1435    
1436  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1437  Capturing subpattern count = 2  Capturing subpattern count = 2
1438  No options  No options
1439  No first char  No first char
1440  Need char = 'c'  Need char = 'c'
1441    
1442  /a*/  /a*/I
1443  Capturing subpattern count = 0  Capturing subpattern count = 0
1444  No options  No options
1445  No first char  No first char
1446  No need char  No need char
1447    
1448  /a+/  /a+/I
1449  Capturing subpattern count = 0  Capturing subpattern count = 0
1450  No options  No options
1451  First char = 'a'  First char = 'a'
1452  No need char  No need char
1453    
1454  /(baa|a+)/  /(baa|a+)/I
1455  Capturing subpattern count = 1  Capturing subpattern count = 1
1456  No options  No options
1457  No first char  No first char
1458  Need char = 'a'  Need char = 'a'
1459    
1460  /a{0,3}/  /a{0,3}/I
1461  Capturing subpattern count = 0  Capturing subpattern count = 0
1462  No options  No options
1463  No first char  No first char
1464  No need char  No need char
1465    
1466  /baa{3,}/  /baa{3,}/I
1467  Capturing subpattern count = 0  Capturing subpattern count = 0
1468  No options  No options
1469  First char = 'b'  First char = 'b'
1470  Need char = 'a'  Need char = 'a'
1471    
1472  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1473  Capturing subpattern count = 1  Capturing subpattern count = 1
1474  No options  No options
1475  First char = '"'  First char = '"'
1476  Need char = '"'  Need char = '"'
1477    
1478  /(abc|ab[cd])/  /(abc|ab[cd])/I
1479  Capturing subpattern count = 1  Capturing subpattern count = 1
1480  No options  No options
1481  First char = 'a'  First char = 'a'
1482  No need char  No need char
1483    
1484  /(a|.)/  /(a|.)/I
1485  Capturing subpattern count = 1  Capturing subpattern count = 1
1486  No options  No options
1487  No first char  No first char
1488  No need char  No need char
1489    
1490  /a|ba|\w/  /a|ba|\w/I
1491  Capturing subpattern count = 0  Capturing subpattern count = 0
1492  No options  No options
1493  No first char  No first char
1494  No need char  No need char
1495    
1496  /abc(?=pqr)/  /abc(?=pqr)/I
1497  Capturing subpattern count = 0  Capturing subpattern count = 0
1498  No options  No options
1499  First char = 'a'  First char = 'a'
1500  Need char = 'r'  Need char = 'r'
1501    
1502  /...(?<=abc)/  /...(?<=abc)/I
1503  Capturing subpattern count = 0  Capturing subpattern count = 0
1504  No options  No options
1505  No first char  No first char
1506  No need char  No need char
1507    
1508  /abc(?!pqr)/  /abc(?!pqr)/I
1509  Capturing subpattern count = 0  Capturing subpattern count = 0
1510  No options  No options
1511  First char = 'a'  First char = 'a'
1512  Need char = 'c'  Need char = 'c'
1513    
1514  /ab./  /ab./I
1515  Capturing subpattern count = 0  Capturing subpattern count = 0
1516  No options  No options
1517  First char = 'a'  First char = 'a'
1518  Need char = 'b'  Need char = 'b'
1519    
1520  /ab[xyz]/  /ab[xyz]/I
1521  Capturing subpattern count = 0  Capturing subpattern count = 0
1522  No options  No options
1523  First char = 'a'  First char = 'a'
1524  Need char = 'b'  Need char = 'b'
1525    
1526  /abc*/  /abc*/I
1527  Capturing subpattern count = 0  Capturing subpattern count = 0
1528  No options  No options
1529  First char = 'a'  First char = 'a'
1530  Need char = 'b'  Need char = 'b'
1531    
1532  /ab.c*/  /ab.c*/I
1533  Capturing subpattern count = 0  Capturing subpattern count = 0
1534  No options  No options
1535  First char = 'a'  First char = 'a'
1536  Need char = 'b'  Need char = 'b'
1537    
1538  /a.c*/  /a.c*/I
1539  Capturing subpattern count = 0  Capturing subpattern count = 0
1540  No options  No options
1541  First char = 'a'  First char = 'a'
1542  No need char  No need char
1543    
1544  /.c*/  /.c*/I
1545  Capturing subpattern count = 0  Capturing subpattern count = 0
1546  No options  No options
1547  No first char  No first char
1548  No need char  No need char
1549    
1550  /ac*/  /ac*/I
1551  Capturing subpattern count = 0  Capturing subpattern count = 0
1552  No options  No options
1553  First char = 'a'  First char = 'a'
1554  No need char  No need char
1555    
1556  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1557  Capturing subpattern count = 1  Capturing subpattern count = 1
1558  No options  No options
1559  No first char  No first char
1560  No need char  No need char
1561    
1562  /a.c*|aba/  /a.c*|aba/I
1563  Capturing subpattern count = 0  Capturing subpattern count = 0
1564  No options  No options
1565  First char = 'a'  First char = 'a'
1566  No need char  No need char
1567    
1568  /.+a/  /.+a/I
1569  Capturing subpattern count = 0  Capturing subpattern count = 0
1570  No options  No options
1571  No first char  No first char
1572  Need char = 'a'  Need char = 'a'
1573    
1574  /(?=abcda)a.*/  /(?=abcda)a.*/I
1575  Capturing subpattern count = 0  Capturing subpattern count = 0
1576  No options  No options
1577  First char = 'a'  First char = 'a'
1578  Need char = 'a'  Need char = 'a'
1579    
1580  /(?=a)a.*/  /(?=a)a.*/I
1581  Capturing subpattern count = 0  Capturing subpattern count = 0
1582  No options  No options
1583  First char = 'a'  First char = 'a'
1584  No need char  No need char
1585    
1586  /a(b)*/  /a(b)*/I
1587  Capturing subpattern count = 1  Capturing subpattern count = 1
1588  No options  No options
1589  First char = 'a'  First char = 'a'
1590  No need char  No need char
1591    
1592  /a\d*/  /a\d*/I
1593  Capturing subpattern count = 0  Capturing subpattern count = 0
1594  No options  No options
1595  First char = 'a'  First char = 'a'
1596  No need char  No need char
1597    
1598  /ab\d*/  /ab\d*/I
1599  Capturing subpattern count = 0  Capturing subpattern count = 0
1600  No options  No options
1601  First char = 'a'  First char = 'a'
1602  Need char = 'b'  Need char = 'b'
1603    
1604  /a(\d)*/  /a(\d)*/I
1605  Capturing subpattern count = 1  Capturing subpattern count = 1
1606  No options  No options
1607  First char = 'a'  First char = 'a'
1608  No need char  No need char
1609    
1610  /abcde{0,0}/  /abcde{0,0}/I
1611  Capturing subpattern count = 0  Capturing subpattern count = 0
1612  No options  No options
1613  First char = 'a'  First char = 'a'
1614  Need char = 'd'  Need char = 'd'
1615    
1616  /ab\d+/  /ab\d+/I
1617  Capturing subpattern count = 0  Capturing subpattern count = 0
1618  No options  No options
1619  First char = 'a'  First char = 'a'
1620  Need char = 'b'  Need char = 'b'
1621    
1622  /a(?(1)b)/  /a(?(1)b)(.)/I
1623  Capturing subpattern count = 0  Capturing subpattern count = 1
1624  No options  No options
1625  First char = 'a'  First char = 'a'
1626  No need char  No need char
1627    
1628  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1629  Capturing subpattern count = 0  Capturing subpattern count = 1
1630  No options  No options
1631  First char = 'a'  First char = 'a'
1632  Need char = 'g'  Need char = 'g'
1633    
1634  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1635  Capturing subpattern count = 0  Capturing subpattern count = 1
1636  No options  No options
1637  First char = 'a'  First char = 'a'
1638  No need char  No need char
1639    
1640  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1641  Capturing subpattern count = 0  Capturing subpattern count = 1
1642  No options  No options
1643  First char = 'a'  First char = 'a'
1644  Need char = 'g'  Need char = 'g'
1645    
1646  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1647  Capturing subpattern count = 0  Capturing subpattern count = 1
1648  No options  No options
1649  First char = 'a'  First char = 'a'
1650  Need char = 'b'  Need char = 'b'
1651    
1652  /ab\d{0}e/  /ab\d{0}e/I
1653  Capturing subpattern count = 0  Capturing subpattern count = 0
1654  No options  No options
1655  First char = 'a'  First char = 'a'
1656  Need char = 'e'  Need char = 'e'
1657    
1658  /a?b?/  /a?b?/I
1659  Capturing subpattern count = 0  Capturing subpattern count = 0
1660  No options  No options
1661  No first char  No first char
# Line 1578  No need char Line 1670  No need char
1670   0:   0:
1671      *** Failers      *** Failers
1672   0:   0:
1673      \N      \N
1674  No match  No match
1675    
1676  /|-/  /|-/I
1677  Capturing subpattern count = 0  Capturing subpattern count = 0
1678  No options  No options
1679  No first char  No first char
# Line 1594  No need char Line 1686  No need char
1686   0: -   0: -
1687      *** Failers      *** Failers
1688   0:   0:
1689      \Nabc      \Nabc
1690  No match  No match
1691    
1692  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/P
# Line 1623  No match Line 1715  No match
1715   1: bbbb   1: bbbb
1716   2: z   2: z
1717   3: z   3: z
1718    
1719  /^.?abcd/S  /^.?abcd/IS
1720  Capturing subpattern count = 0  Capturing subpattern count = 0
1721  Options: anchored  Options: anchored
1722  No first char  No first char
1723  Need char = 'd'  Need char = 'd'
1724  Study returned NULL  Subject length lower bound = 4
1725    No set of starting bytes
1726    
1727  /\(             # ( at start  /\(             # ( at start
1728    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1638  Study returned NULL Line 1731  Study returned NULL
1731    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1732    )*            # Zero or more contents    )*            # Zero or more contents
1733    \)            # Closing )    \)            # Closing )
1734    /x    /Ix
1735  Capturing subpattern count = 0  Capturing subpattern count = 0
1736  Options: extended  Options: extended
1737  First char = '('  First char = '('
# Line 1649  Need char = ')' Line 1742  Need char = ')'
1742   0: (abcd)   0: (abcd)
1743      xyz(abcd)      xyz(abcd)
1744   0: (abcd)   0: (abcd)
1745      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1746   0: (ab(xy)cd)   0: (ab(xy)cd)
1747      (ab(xycd)pqr      (ab(xycd)pqr
1748   0: (xycd)   0: (xycd)
1749      () abc ()      () abc ()
1750   0: ()   0: ()
1751      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1752   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1753      *** Failers      *** Failers
1754  No match  No match
1755      abcd      abcd
1756  No match  No match
1757      abcd)      abcd)
1758  No match  No match
1759      (abcd      (abcd
1760  No match  No match
1761    
1762  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1763  Capturing subpattern count = 1  Capturing subpattern count = 1
1764  Options: extended  Options: extended
1765  First char = '('  First char = '('
1766  Need char = ')'  Need char = ')'
1767      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1768   0: (ab(xy)cd)   0: (ab(xy)cd)
1769   1: cd   1: cd
1770      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1680  Need char = ')' Line 1773  Need char = ')'
1773   0: (x(y)z)   0: (x(y)z)
1774   1: z   1: z
1775    
1776  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1777  Capturing subpattern count = 0  Capturing subpattern count = 0
1778  Options: extended  Options: extended
1779  First char = '('  First char = '('
# Line 1689  Need char = ')' Line 1782  Need char = ')'
1782   0: (abcd)   0: (abcd)
1783      (ab(xy)cd)      (ab(xy)cd)
1784   0: (xy)   0: (xy)
1785      (a(b(c)d)e)      (a(b(c)d)e)
1786   0: (c)   0: (c)
1787      ((ab))      ((ab))
1788   0: ((ab))   0: ((ab))
1789      *** Failers      *** Failers
1790  No match  No match
1791      ()      ()
1792  No match  No match
1793    
1794  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1795  Capturing subpattern count = 0  Capturing subpattern count = 0
1796  Options: extended  Options: extended
1797  First char = '('  First char = '('
# Line 1708  Need char = ')' Line 1801  Need char = ')'
1801      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1802   0: (fsh)   0: (fsh)
1803    
1804  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1805  Capturing subpattern count = 1  Capturing subpattern count = 1
1806  Options: extended  Options: extended
1807  First char = '('  First char = '('
# Line 1717  Need char = ')' Line 1810  Need char = ')'
1810   0: (ab(xy)cd)   0: (ab(xy)cd)
1811   1: cd   1: cd
1812    
1813  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1814  Capturing subpattern count = 2  Capturing subpattern count = 2
1815  Options: extended  Options: extended
1816  First char = '('  First char = '('
# Line 1727  Need char = ')' Line 1820  Need char = ')'
1820   1: ab(xy)cd   1: ab(xy)cd
1821   2: cd   2: cd
1822    
1823  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1824  Capturing subpattern count = 3  Capturing subpattern count = 3
1825  Options: extended  Options: extended
1826  First char = '('  First char = '('
# Line 1743  Need char = ')' Line 1836  Need char = ')'
1836   2: ab(xy)cd   2: ab(xy)cd
1837   3: cd   3: cd
1838    
1839  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1840  Capturing subpattern count = 3  Capturing subpattern count = 3
1841  Options: extended  Options: extended
1842  First char = '('  First char = '('
# Line 1759  Need char = ')' Line 1852  Need char = ')'
1852   2: 123   2: 123
1853   3: cd   3: cd
1854    
1855  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1856  Capturing subpattern count = 11  Capturing subpattern count = 11
1857  Options: extended  Options: extended
1858  First char = '('  First char = '('
# Line 1778  Need char = ')' Line 1871  Need char = ')'
1871  10: ab(xy)cd  10: ab(xy)cd
1872  11: cd  11: cd
1873    
1874  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1875  Capturing subpattern count = 3  Capturing subpattern count = 3
1876  Options: extended  Options: extended
1877  First char = '('  First char = '('
# Line 1787  Need char = ')' Line 1880  Need char = ')'
1880   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1881   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1882   2: 123   2: 123
  3: <unset>  
1883    
1884  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1885  Capturing subpattern count = 3  Capturing subpattern count = 3
1886  Options: extended  Options: extended
1887  First char = '('  First char = '('
# Line 1805  Need char = ')' Line 1897  Need char = ')'
1897   2: ij   2: ij
1898   3: (cd(ef)gh)   3: (cd(ef)gh)
1899    
1900  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1901    ------------------------------------------------------------------
1902            Bra
1903            ^
1904            [0-9A-Za-z]
1905            Ket
1906            End
1907    ------------------------------------------------------------------
1908    Capturing subpattern count = 0
1909    Options: anchored
1910    No first char
1911    No need char
1912    
1913    /^[[:^alnum:]]/DZ
1914    ------------------------------------------------------------------
1915            Bra
1916            ^
1917            [\x00-/:-@[-`{-\xff] (neg)
1918            Ket
1919            End
1920    ------------------------------------------------------------------
1921    Capturing subpattern count = 0
1922    Options: anchored
1923    No first char
1924    No need char
1925    
1926    /^[[:alpha:]]/DZ
1927    ------------------------------------------------------------------
1928            Bra
1929            ^
1930            [A-Za-z]
1931            Ket
1932            End
1933    ------------------------------------------------------------------
1934    Capturing subpattern count = 0
1935    Options: anchored
1936    No first char
1937    No need char
1938    
1939    /^[[:^alpha:]]/DZ
1940    ------------------------------------------------------------------
1941            Bra
1942            ^
1943            [\x00-@[-`{-\xff] (neg)
1944            Ket
1945            End
1946    ------------------------------------------------------------------
1947    Capturing subpattern count = 0
1948    Options: anchored
1949    No first char
1950    No need char
1951    
1952    /[_[:alpha:]]/IS
1953    Capturing subpattern count = 0
1954    No options
1955    No first char
1956    No need char
1957    Subject length lower bound = 1
1958    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
1959      _ 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
1960    
1961    /^[[:ascii:]]/DZ
1962  ------------------------------------------------------------------  ------------------------------------------------------------------
1963    0  37 Bra 0          Bra
1964    3     ^          ^
1965    4     [0-9A-Za-z]          [\x00-\x7f]
1966   37  37 Ket          Ket
1967   40     End          End
1968  ------------------------------------------------------------------  ------------------------------------------------------------------
1969  Capturing subpattern count = 0  Capturing subpattern count = 0
1970  Options: anchored  Options: anchored
1971  No first char  No first char
1972  No need char  No need char
1973    
1974  /^[[:alpha:]]/D  /^[[:^ascii:]]/DZ
1975  ------------------------------------------------------------------  ------------------------------------------------------------------
1976    0  37 Bra 0          Bra
1977    3     ^          ^
1978    4     [A-Za-z]          [\x80-\xff] (neg)
1979   37  37 Ket          Ket
1980   40     End          End
1981  ------------------------------------------------------------------  ------------------------------------------------------------------
1982  Capturing subpattern count = 0  Capturing subpattern count = 0
1983  Options: anchored  Options: anchored
1984  No first char  No first char
1985  No need char  No need char
1986    
1987  /^[[:ascii:]]/D  /^[[:blank:]]/DZ
1988  ------------------------------------------------------------------  ------------------------------------------------------------------
1989    0  37 Bra 0          Bra
1990    3     ^          ^
1991    4     [\x00-\x7f]          [\x09 ]
1992   37  37 Ket          Ket
1993   40     End          End
1994  ------------------------------------------------------------------  ------------------------------------------------------------------
1995  Capturing subpattern count = 0  Capturing subpattern count = 0
1996  Options: anchored  Options: anchored
1997  No first char  No first char
1998  No need char  No need char
1999    
2000  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
2001  ------------------------------------------------------------------  ------------------------------------------------------------------
2002    0  37 Bra 0          Bra
2003    3     ^          ^
2004    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2005   37  37 Ket          Ket
2006   40     End          End
2007  ------------------------------------------------------------------  ------------------------------------------------------------------
2008  Capturing subpattern count = 0  Capturing subpattern count = 0
2009  Options: anchored  Options: anchored
2010  No first char  No first char
2011  No need char  No need char
2012    
2013  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
2014    Capturing subpattern count = 0
2015    Contains explicit CR or LF match
2016    No options
2017    No first char
2018    No need char
2019    Subject length lower bound = 1
2020    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2021    
2022    /^[[:cntrl:]]/DZ
2023  ------------------------------------------------------------------  ------------------------------------------------------------------
2024    0  37 Bra 0          Bra
2025    3     ^          ^
2026    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
2027   37  37 Ket          Ket
2028   40     End          End
2029  ------------------------------------------------------------------  ------------------------------------------------------------------
2030  Capturing subpattern count = 0  Capturing subpattern count = 0
2031  Options: anchored  Options: anchored
2032  No first char  No first char
2033  No need char  No need char
2034    
2035  /^[[:digit:]]/D  /^[[:digit:]]/DZ
2036  ------------------------------------------------------------------  ------------------------------------------------------------------
2037    0  37 Bra 0          Bra
2038    3     ^          ^
2039    4     [0-9]          [0-9]
2040   37  37 Ket          Ket
2041   40     End          End
2042  ------------------------------------------------------------------  ------------------------------------------------------------------
2043  Capturing subpattern count = 0  Capturing subpattern count = 0
2044  Options: anchored  Options: anchored
2045  No first char  No first char
2046  No need char  No need char
2047    
2048  /^[[:graph:]]/D  /^[[:graph:]]/DZ
2049  ------------------------------------------------------------------  ------------------------------------------------------------------
2050    0  37 Bra 0          Bra
2051    3     ^          ^
2052    4     [!-~]          [!-~]
2053   37  37 Ket          Ket
2054   40     End          End
2055  ------------------------------------------------------------------  ------------------------------------------------------------------
2056  Capturing subpattern count = 0  Capturing subpattern count = 0
2057  Options: anchored  Options: anchored
2058  No first char  No first char
2059  No need char  No need char
2060    
2061  /^[[:lower:]]/D  /^[[:lower:]]/DZ
2062  ------------------------------------------------------------------  ------------------------------------------------------------------
2063    0  37 Bra 0          Bra
2064    3     ^          ^
2065    4     [a-z]          [a-z]
2066   37  37 Ket          Ket
2067   40     End          End
2068  ------------------------------------------------------------------  ------------------------------------------------------------------
2069  Capturing subpattern count = 0  Capturing subpattern count = 0
2070  Options: anchored  Options: anchored
2071  No first char  No first char
2072  No need char  No need char
2073    
2074  /^[[:print:]]/D  /^[[:print:]]/DZ
2075  ------------------------------------------------------------------  ------------------------------------------------------------------
2076    0  37 Bra 0          Bra
2077    3     ^          ^
2078    4     [ -~]          [ -~]
2079   37  37 Ket          Ket
2080   40     End          End
2081  ------------------------------------------------------------------  ------------------------------------------------------------------
2082  Capturing subpattern count = 0  Capturing subpattern count = 0
2083  Options: anchored  Options: anchored
2084  No first char  No first char
2085  No need char  No need char
2086    
2087  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2088  ------------------------------------------------------------------  ------------------------------------------------------------------
2089    0  37 Bra 0          Bra
2090    3     ^          ^
2091    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2092   37  37 Ket          Ket
2093   40     End          End
2094  ------------------------------------------------------------------  ------------------------------------------------------------------
2095  Capturing subpattern count = 0  Capturing subpattern count = 0
2096  Options: anchored  Options: anchored
2097  No first char  No first char
2098  No need char  No need char
2099    
2100  /^[[:space:]]/D  /^[[:space:]]/DZ
2101  ------------------------------------------------------------------  ------------------------------------------------------------------
2102    0  37 Bra 0          Bra
2103    3     ^          ^
2104    4     [\x09-\x0d ]          [\x09-\x0d ]
2105   37  37 Ket          Ket
2106   40     End          End
2107  ------------------------------------------------------------------  ------------------------------------------------------------------
2108  Capturing subpattern count = 0  Capturing subpattern count = 0
2109  Options: anchored  Options: anchored
2110  No first char  No first char
2111  No need char  No need char
2112    
2113  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2114  ------------------------------------------------------------------  ------------------------------------------------------------------
2115    0  37 Bra 0          Bra
2116    3     ^          ^
2117    4     [A-Z]          [A-Z]
2118   37  37 Ket          Ket
2119   40     End          End
2120  ------------------------------------------------------------------  ------------------------------------------------------------------
2121  Capturing subpattern count = 0  Capturing subpattern count = 0
2122  Options: anchored  Options: anchored
2123  No first char  No first char
2124  No need char  No need char
2125    
2126  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2127  ------------------------------------------------------------------  ------------------------------------------------------------------
2128    0  37 Bra 0          Bra
2129    3     ^          ^
2130    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2131   37  37 Ket          Ket
2132   40     End          End
2133  ------------------------------------------------------------------  ------------------------------------------------------------------
2134  Capturing subpattern count = 0  Capturing subpattern count = 0
2135  Options: anchored  Options: anchored
2136  No first char  No first char
2137  No need char  No need char
2138    
2139  /^[[:word:]]/D  /^[[:word:]]/DZ
2140  ------------------------------------------------------------------  ------------------------------------------------------------------
2141    0  37 Bra 0          Bra
2142    3     ^          ^
2143    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2144   37  37 Ket          Ket
2145   40     End          End
2146  ------------------------------------------------------------------  ------------------------------------------------------------------
2147  Capturing subpattern count = 0  Capturing subpattern count = 0
2148  Options: anchored  Options: anchored
2149  No first char  No first char
2150  No need char  No need char
2151    
2152  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2153  ------------------------------------------------------------------  ------------------------------------------------------------------
2154    0  37 Bra 0          Bra
2155    3     ^          ^
2156    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2157   37  37 Ket          Ket
2158   40     End          End
2159  ------------------------------------------------------------------  ------------------------------------------------------------------
2160  Capturing subpattern count = 0  Capturing subpattern count = 0
2161  Options: anchored  Options: anchored
2162  No first char  No first char
2163  No need char  No need char
2164    
2165  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2166  ------------------------------------------------------------------  ------------------------------------------------------------------
2167    0  37 Bra 0          Bra
2168    3     ^          ^
2169    4     [\x00-/1-2:-\xff]          [\x00-/12:-\xff] (neg)
2170   37  37 Ket          Ket
2171   40     End          End
2172  ------------------------------------------------------------------  ------------------------------------------------------------------
2173  Capturing subpattern count = 0  Capturing subpattern count = 0
2174  Options: anchored  Options: anchored
2175  No first char  No first char
2176  No need char  No need char
2177    
2178  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2179  ------------------------------------------------------------------  ------------------------------------------------------------------
2180    0  37 Bra 0          Bra
2181    3     ^          ^
2182    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2183   37  37 Ket          Ket
2184   40     End          End
2185  ------------------------------------------------------------------  ------------------------------------------------------------------
2186  Capturing subpattern count = 0  Capturing subpattern count = 0
2187  Options: anchored  Options: anchored
2188  No first char  No first char
2189  No need char  No need char
2190    
2191  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2192  ------------------------------------------------------------------  ------------------------------------------------------------------
2193    0  36 Bra 0          Bra
2194    3     [%0-1A-Za-z]          [%01A-Za-z]
2195   36  36 Ket          Ket
2196   39     End          End
2197  ------------------------------------------------------------------  ------------------------------------------------------------------
2198  Capturing subpattern count = 0  Capturing subpattern count = 0
2199  No options  No options
2200  No first char  No first char
2201  No need char  No need char
2202    
2203  /[[.ch.]]/  /[[.ch.]]/I
2204  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2205    
2206  /[[=ch=]]/  /[[=ch=]]/I
2207  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2208    
2209  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2210  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2211    
2212  /[[:upper:]]/i  /[[:upper:]]/Ii
2213  Capturing subpattern count = 0  Capturing subpattern count = 0
2214  Options: caseless  Options: caseless
2215  No first char  No first char
2216  No need char  No need char
2217      A      A
2218   0: A   0: A
2219      a      a
2220   0: a   0: a
2221    
2222  /[[:lower:]]/i  /[[:lower:]]/Ii
2223  Capturing subpattern count = 0  Capturing subpattern count = 0
2224  Options: caseless  Options: caseless
2225  No first char  No first char
2226  No need char  No need char
2227      A      A
2228   0: A   0: A
2229      a      a
2230   0: a   0: a
2231    
2232  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2233  Capturing subpattern count = 1  Capturing subpattern count = 1
2234  Options: caseless  Options: caseless
 Case state changes  
2235  No first char  No first char
2236  No need char  No need char
2237      ab      ab
# Line 2084  No need char Line 2245  No need char
2245   1: a   1: a
2246      Ab      Ab
2247  No match  No match
2248      AB      AB
2249  No match  No match
2250    
2251  /[\200-\410]/  /[\200-\110]/I
2252  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2253    
2254  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2255  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2256    
2257  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2258  Capturing subpattern count = 0  Capturing subpattern count = 0
2259  No options  No options
2260  First char = 'T'  First char = 'T'
2261  Need char = 'd'  Need char = 'd'
2262    
2263  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2264  Capturing subpattern count = 271  Capturing subpattern count = 271
2265  Max back reference = 270  Max back reference = 270
2266  No options  No options
# Line 2379  No need char Line 2540  No need char
2540  270: ABC  270: ABC
2541  271: ABC  271: ABC
2542    
2543  /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
2544  Capturing subpattern count = 0  Capturing subpattern count = 0
2545  No options  No options
2546  First char = 'T'  First char = 'T'
2547  Need char = 't'  Need char = 't'
2548    
2549  /(main(O)?)+/  /(main(O)?)+/I
2550  Capturing subpattern count = 2  Capturing subpattern count = 2
2551  No options  No options
2552  First char = 'm'  First char = 'm'
# Line 2397  Need char = 'n' Line 2558  Need char = 'n'
2558   0: mainOmain   0: mainOmain
2559   1: main   1: main
2560   2: O   2: O
2561    
2562  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2563  Capturing subpattern count = 1  Capturing subpattern count = 1
2564  No options  No options
2565  First char = 'T'  First char = 'T'
2566  Need char = 's'  Need char = 's'
2567    
2568  /^(a(b)?)+$/  /^(a(b)?)+$/I
2569  Capturing subpattern count = 2  Capturing subpattern count = 2
2570  Options: anchored  Options: anchored
2571  No first char  No first char
# Line 2413  No need char Line 2574  No need char
2574   0: aba   0: aba
2575   1: a   1: a
2576   2: b   2: b
2577    
2578  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2579  Capturing subpattern count = 2  Capturing subpattern count = 2
2580  Options: anchored  Options: anchored
2581  No first char  No first char
2582  No need char  No need char
2583      aabbaa      aabbaa
2584   0: aabbaa   0: aabbaa
2585   1: aa   1: aa
2586   2: bb   2: bb
2587    
2588  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2589  Capturing subpattern count = 2  Capturing subpattern count = 2
2590  Options: anchored  Options: anchored
2591  No first char  No first char
2592  No need char  No need char
2593      aabbaa      aabbaa
2594   0: aabbaa   0: aabbaa
2595   1: aa   1: aa
2596   2: bb   2: bb
2597    
2598  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2599  Capturing subpattern count = 2  Capturing subpattern count = 2
2600  Options: anchored  Options: anchored
2601  No first char  No first char
2602  No need char  No need char
2603      aabbaa      aabbaa
2604   0: aabbaa   0: aabbaa
2605   1: aa   1: aa
2606   2: bb   2: bb
2607    
2608  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2609  Capturing subpattern count = 1  Capturing subpattern count = 1
2610  Options: anchored  Options: anchored
2611  No first char  No first char
2612  No need char  No need char
2613      aabbaa      aabbaa
2614   0: aabbaa   0: aabbaa
2615   1: bb   1: bb
2616    
2617  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2618  Capturing subpattern count = 3  Capturing subpattern count = 3
2619  Options: anchored  Options: anchored
2620  No first char  No first char
2621  No need char  No need char
2622      aabbaa      aabbaa
2623   0: aabbaa   0: aabbaa
2624   1: aa   1: aa
2625   2: bb   2: bb
2626   3: b   3: b
2627    
2628  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2629  Capturing subpattern count = 2  Capturing subpattern count = 2
2630  Options: anchored  Options: anchored
2631  No first char  No first char
2632  No need char  No need char
2633      aabbaa      aabbaa
2634   0: aabbaa   0: aabbaa
2635   1: bb   1: bb
2636   2: b   2: b
2637    
2638  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2639  Capturing subpattern count = 1  Capturing subpattern count = 1
2640  Options: anchored  Options: anchored
2641  No first char  No first char
2642  No need char  No need char
2643      aabbaa      aabbaa
2644   0: aabbaa   0: aabbaa
2645   1: bb   1: bb
2646    
2647  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2648  Capturing subpattern count = 1  Capturing subpattern count = 1
2649  Options: anchored  Options: anchored
2650  No first char  No first char
2651  No need char  No need char
2652      aabbbaa      aabbbaa
2653   0: aabbbaa   0: aabbbaa
2654   1: bbb   1: bbb
2655    
2656  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2657  Capturing subpattern count = 1  Capturing subpattern count = 1
2658  Options: anchored  Options: anchored
2659  No first char  No first char
2660  No need char  No need char
2661      aabbbaa      aabbbaa
2662   0: aabbbaa   0: aabbbaa
2663   1: bbb   1: bbb
2664    
2665  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2666  Capturing subpattern count = 1  Capturing subpattern count = 1
2667  Options: anchored  Options: anchored
2668  No first char  No first char
2669  No need char  No need char
2670      aabbaa      aabbaa
2671   0: aabbaa   0: aabbaa
2672   1: b   1: b
2673    
2674  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2675  Capturing subpattern count = 1  Capturing subpattern count = 1
2676  Options: anchored  Options: anchored
2677  No first char  No first char
2678  No need char  No need char
2679      aabbbaa      aabbbaa
2680   0: aabbbaa   0: aabbbaa
2681   1: bb   1: bb
2682    
2683  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2684  Capturing subpattern count = 3  Capturing subpattern count = 3
2685  Options: anchored  Options: anchored
2686  No first char  No first char
2687  No need char  No need char
2688      aabbbaa      aabbbaa
2689   0: aabbbaa   0: aabbbaa
2690   1: aa   1: aa
2691   2: bbb   2: bbb
2692   3: bb   3: bb
2693    
2694  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2695  Capturing subpattern count = 3  Capturing subpattern count = 3
2696  Options: anchored  Options: anchored
2697  No first char  No first char
2698  No need char  No need char
2699      aabbbbaa      aabbbbaa
2700   0: aabbbbaa   0: aabbbbaa
2701   1: aa   1: aa
2702   2: bbbb   2: bbbb
2703   3: bb   3: bb
2704    
2705  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2706  Capturing subpattern count = 0  Capturing subpattern count = 0
2707  No options  No options
2708  First char = '-'  First char = '-'
2709  Need char = '-'  Need char = '-'
2710    
2711  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2712  ------------------------------------------------------------------  ------------------------------------------------------------------
2713    0   3 Bra 0          Bra
2714    3   3 Ket          Ket
2715    6     End          End
2716  ------------------------------------------------------------------  ------------------------------------------------------------------
2717  Capturing subpattern count = 0  Capturing subpattern count = 0
2718  Options: extended  Options: extended
2719  No first char  No first char
2720  No need char  No need char
2721    
2722  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 13  
2723  ------------------------------------------------------------------  ------------------------------------------------------------------
2724    0   6 Bra 0          Bra
2725    3   1 a          a
2726    6   6 Ket          Ket
2727    9     End          End
2728  ------------------------------------------------------------------  ------------------------------------------------------------------
2729  Capturing subpattern count = 0  Capturing subpattern count = 0
2730  Options: extended  Options: extended
2731  First char = 'a'  First char = 'a'
2732  No need char  No need char
2733    
2734  /[\s]/D  /[\s]/DZ
2735  ------------------------------------------------------------------  ------------------------------------------------------------------
2736    0  36 Bra 0          Bra
2737    3     [\x09-\x0a\x0c-\x0d ]          [\x09\x0a\x0c\x0d ]
2738   36  36 Ket          Ket
2739   39     End          End
2740  ------------------------------------------------------------------  ------------------------------------------------------------------
2741  Capturing subpattern count = 0  Capturing subpattern count = 0
2742  No options  No options
2743  No first char  No first char
2744  No need char  No need char
2745    
2746  /[\S]/D  /[\S]/DZ
2747  ------------------------------------------------------------------  ------------------------------------------------------------------
2748    0  36 Bra 0          Bra
2749    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2750   36  36 Ket          Ket
2751   39     End          End
2752  ------------------------------------------------------------------  ------------------------------------------------------------------
2753  Capturing subpattern count = 0  Capturing subpattern count = 0
2754  No options  No options
2755  No first char  No first char
2756  No need char  No need char
2757    
2758  /a(?i)b/D  /a(?i)b/DZ
2759  ------------------------------------------------------------------  ------------------------------------------------------------------
2760    0  11 Bra 0          Bra
2761    3   1 a          a
2762    6  01 Opt       /i b
2763    8   1 b          Ket
2764   11  11 Ket          End
  14     End  
2765  ------------------------------------------------------------------  ------------------------------------------------------------------
2766  Capturing subpattern count = 0  Capturing subpattern count = 0
2767  No options  No options
 Case state changes  
2768  First char = 'a'  First char = 'a'
2769  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2770      ab      ab
2771   0: ab   0: ab
2772      aB      aB
2773   0: aB   0: aB
2774      *** Failers      *** Failers
2775  No match  No match
2776      AB      AB
2777  No match  No match
2778    
2779  /(a(?i)b)/D  /(a(?i)b)/DZ
2780  ------------------------------------------------------------------  ------------------------------------------------------------------
2781    0  19 Bra 0          Bra
2782    3  11 Bra 1          CBra 1
2783    6   1 a          a
2784    9  01 Opt       /i b
2785   11   1 b          Ket
2786   14  11 Ket          Ket
2787   17  00 Opt          End
  19  19 Ket  
  22     End  
2788  ------------------------------------------------------------------  ------------------------------------------------------------------
2789  Capturing subpattern count = 1  Capturing subpattern count = 1
2790  No options  No options
 Case state changes  
2791  First char = 'a'  First char = 'a'
2792  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2793      ab      ab
# Line 2642  Need char = 'b' (caseless) Line 2796  Need char = 'b' (caseless)
2796      aB      aB
2797   0: aB   0: aB
2798   1: aB   1: aB
2799      *** Failers      *** Failers
2800  No match  No match
2801      AB      AB
2802  No match  No match
2803    
2804  /   (?i)abc/xD  /   (?i)abc/IxDZ
2805  ------------------------------------------------------------------  ------------------------------------------------------------------
2806    0   8 Bra 0          Bra
2807    3   3 abc       /i abc
2808    8   8 Ket          Ket
2809   11     End          End
2810  ------------------------------------------------------------------  ------------------------------------------------------------------
2811  Capturing subpattern count = 0  Capturing subpattern count = 0
2812  Options: caseless extended  Options: caseless extended
# Line 2660  First char = 'a' (caseless) Line 2814  First char = 'a' (caseless)
2814  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2815    
2816  /#this is a comment  /#this is a comment
2817    (?i)abc/xD    (?i)abc/IxDZ
2818  ------------------------------------------------------------------  ------------------------------------------------------------------
2819    0   8 Bra 0          Bra
2820    3   3 abc       /i abc
2821    8   8 Ket          Ket
2822   11     End          End
2823  ------------------------------------------------------------------  ------------------------------------------------------------------
2824  Capturing subpattern count = 0  Capturing subpattern count = 0
2825  Options: caseless extended  Options: caseless extended
2826  First char = 'a' (caseless)  First char = 'a' (caseless)
2827  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2828    
2829  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2830  ------------------------------------------------------------------  ------------------------------------------------------------------
2831    0 307 Bra 0          Bra
2832    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2833  255  50 12345678901234567890123456789012345678901234567890          Ket
2834  307 307 Ket          End
 310     End  
2835  ------------------------------------------------------------------  ------------------------------------------------------------------
2836  Capturing subpattern count = 0  Capturing subpattern count = 0
2837  No options  No options
2838  First char = '1'  First char = '1'
2839  Need char = '0'  Need char = '0'
2840    
2841  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2842  ------------------------------------------------------------------  ------------------------------------------------------------------
2843    0 307 Bra 0          Bra
2844    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2845  255  50 12345678901234567890123456789012345678901234567890          Ket
2846  307 307 Ket          End
 310     End  
2847  ------------------------------------------------------------------  ------------------------------------------------------------------
2848  Capturing subpattern count = 0  Capturing subpattern count = 0
2849  No options  No options
2850  First char = '1'  First char = '1'
2851  Need char = '0'  Need char = '0'
2852    
2853  /\Q\E/D  /\Q\E/DZ
2854  ------------------------------------------------------------------  ------------------------------------------------------------------
2855    0   3 Bra 0          Bra
2856    3   3 Ket          Ket
2857    6     End          End
2858  ------------------------------------------------------------------  ------------------------------------------------------------------
2859  Capturing subpattern count = 0  Capturing subpattern count = 0
2860  No options  No options
# Line 2711  No need char Line 2863  No need char
2863      \      \
2864   0:   0:
2865    
2866  /\Q\Ex/D  /\Q\Ex/DZ
2867  ------------------------------------------------------------------  ------------------------------------------------------------------
2868    0   6 Bra 0          Bra
2869    3   1 x          x
2870    6   6 Ket          Ket
2871    9     End          End
2872  ------------------------------------------------------------------  ------------------------------------------------------------------
2873  Capturing subpattern count = 0  Capturing subpattern count = 0
2874  No options  No options
2875  First char = 'x'  First char = 'x'
2876  No need char  No need char
2877    
2878  / \Q\E/D  / \Q\E/DZ
2879  ------------------------------------------------------------------  ------------------------------------------------------------------
2880    0   6 Bra 0          Bra
2881    3   1  
2882    6   6 Ket          Ket
2883    9     End          End
2884  ------------------------------------------------------------------  ------------------------------------------------------------------
2885  Capturing subpattern count = 0  Capturing subpattern count = 0
2886  No options  No options
2887  First char = ' '  First char = ' '
2888  No need char  No need char
2889    
2890  /a\Q\E/D  /a\Q\E/DZ
2891  ------------------------------------------------------------------  ------------------------------------------------------------------
2892    0   6 Bra 0          Bra
2893    3   1 a          a
2894    6   6 Ket          Ket
2895    9     End          End
2896  ------------------------------------------------------------------  ------------------------------------------------------------------
2897  Capturing subpattern count = 0  Capturing subpattern count = 0
2898  No options  No options
# Line 2750  No need char Line 2902  No need char
2902   0: a   0: a
2903    bca    bca
2904   0: a   0: a
2905    bac    bac
2906   0: a   0: a
2907    
2908  /a\Q\Eb/D  /a\Q\Eb/DZ
2909  ------------------------------------------------------------------  ------------------------------------------------------------------
2910    0   9 Bra 0          Bra
2911    3   1 a          ab
2912    6   1 b          Ket
2913    9   9 Ket          End
  12     End  
2914  ------------------------------------------------------------------  ------------------------------------------------------------------
2915  Capturing subpattern count = 0  Capturing subpattern count = 0
2916  No options  No options
# Line 2768  Need char = 'b' Line 2919  Need char = 'b'
2919    abc    abc
2920   0: ab   0: ab
2921    
2922  /\Q\Eabc/D  /\Q\Eabc/DZ
2923  ------------------------------------------------------------------  ------------------------------------------------------------------
2924    0   8 Bra 0          Bra
2925    3   3 abc          abc
2926    8   8 Ket          Ket
2927   11     End          End
2928  ------------------------------------------------------------------  ------------------------------------------------------------------
2929  Capturing subpattern count = 0  Capturing subpattern count = 0
2930  No options  No options
2931  First char = 'a'  First char = 'a'
2932  Need char = 'c'  Need char = 'c'
2933    
2934  /x*+\w/D  /x*+\w/DZ
2935  ------------------------------------------------------------------  ------------------------------------------------------------------
2936    0  12 Bra 0          Bra
2937    3   5 Once          x*+
2938    6     x*          \w
2939    8   5 Ket          Ket
2940   11     \w          End
  12  12 Ket  
  15     End  
2941  ------------------------------------------------------------------  ------------------------------------------------------------------
2942  Capturing subpattern count = 0  Capturing subpattern count = 0
2943  No options  No options
# Line 2798  No need char Line 2947  No need char
2947   0: F   0: F
2948      xxxxx      xxxxx
2949  No match  No match
2950    
2951  /x?+/D  /x?+/DZ
2952  ------------------------------------------------------------------  ------------------------------------------------------------------
2953    0  11 Bra 0          Bra
2954    3   5 Once          x?+
2955    6     x?          Ket
2956    8   5 Ket          End
  11  11 Ket  
  14     End  
2957  ------------------------------------------------------------------  ------------------------------------------------------------------
2958  Capturing subpattern count = 0  Capturing subpattern count = 0
2959  No options  No options
2960  No first char  No first char
2961  No need char  No need char
2962    
2963  /x++/D  /x++/DZ
2964  ------------------------------------------------------------------  ------------------------------------------------------------------
2965    0  11 Bra 0          Bra
2966    3   5 Once          x++
2967    6     x+          Ket
2968    8   5 Ket          End
  11  11 Ket  
  14     End  
2969  ------------------------------------------------------------------  ------------------------------------------------------------------
2970  Capturing subpattern count = 0  Capturing subpattern count = 0
2971  No options  No options
2972  First char = 'x'  First char = 'x'
2973  No need char  No need char
2974    
2975  /x{1,3}+/D  /x{1,3}+/DZ
2976  ------------------------------------------------------------------  ------------------------------------------------------------------
2977    0  16 Bra 0          Bra
2978    3  10 Once          Once
2979    6   1 x          x
2980    9     x{,2}          x{0,2}
2981   13  10 Ket          Ket
2982   16  16 Ket          Ket
2983   19     End          End
2984  ------------------------------------------------------------------  ------------------------------------------------------------------
2985  Capturing subpattern count = 0  Capturing subpattern count = 0
2986  No options  No options
2987  First char = 'x'  First char = 'x'
2988  No need char  No need char
2989    
2990  /(x)*+/D  /(x)*+/DZ
2991  ------------------------------------------------------------------  ------------------------------------------------------------------
2992    0  19 Bra 0          Bra
2993    3  13 Once          Once
2994    6     Brazero          Brazero
2995    7   6 Bra 1          CBra 1
2996   10   1 x          x
2997   13   6 KetRmax          KetRmax
2998   16  13 Ket          Ket
2999   19  19 Ket          Ket
3000   22     End          End
3001  ------------------------------------------------------------------  ------------------------------------------------------------------
3002  Capturing subpattern count = 1  Capturing subpattern count = 1
3003  No options  No options
3004  No first char  No first char
3005  No need char  No need char
3006    
3007  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
3008  Capturing subpattern count = 1  Capturing subpattern count = 1
3009  Options: anchored  Options: anchored
3010  No first char  No first char
# Line 2871  No need char Line 3016  No need char
3016  No match  No match
3017      this is not a line with only words and spaces!      this is not a line with only words and spaces!
3018  No match  No match
3019    
3020  /(\d++)(\w)/  /(\d++)(\w)/I
3021  Capturing subpattern count = 2  Capturing subpattern count = 2
3022  No options  No options
3023  No first char  No first char
# Line 2883  No need char Line 3028  No need char
3028   2: a   2: a
3029      *** Failers      *** Failers
3030  No match  No match
3031      12345+      12345+
3032  No match  No match
3033    
3034  /a++b/  /a++b/I
3035  Capturing subpattern count = 0  Capturing subpattern count = 0
3036  No options  No options
3037  First char = 'a'  First char = 'a'
# Line 2894  Need char = 'b' Line 3039  Need char = 'b'
3039      aaab      aaab
3040   0: aaab   0: aaab
3041    
3042  /(a++b)/  /(a++b)/I
3043  Capturing subpattern count = 1  Capturing subpattern count = 1
3044  No options  No options
3045  First char = 'a'  First char = 'a'
# Line 2903  Need char = 'b' Line 3048  Need char = 'b'
3048   0: aaab   0: aaab
3049   1: aaab   1: aaab
3050    
3051  /(a++)b/  /(a++)b/I
3052  Capturing subpattern count = 1  Capturing subpattern count = 1
3053  No options  No options
3054  First char = 'a'  First char = 'a'
# Line 2912  Need char = 'b' Line 3057  Need char = 'b'
3057   0: aaab   0: aaab
3058   1: aaa   1: aaa
3059    
3060  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3061  Capturing subpattern count = 1  Capturing subpattern count = 1
3062  No options  No options
3063  No first char  No first char
# Line 2920  No need char Line 3065  No need char
3065      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3066   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3067   1: x   1: x
3068    
3069  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3070  Capturing subpattern count = 1  Capturing subpattern count = 1
3071  No options  No options
3072  First char = '('  First char = '('
# Line 2934  Need char = ')' Line 3079  Need char = ')'
3079   1: xyz   1: xyz
3080      *** Failers      *** Failers
3081  No match  No match
3082      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3083  No match  No match
3084    
3085  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3086  ------------------------------------------------------------------  ------------------------------------------------------------------
3087    0  50 Bra 0          Bra
3088    3  44 Once          Once
3089    6   8 Bra 1          CBra 1
3090    9   3 abc          abc
3091   14   8 Ket          Ket
3092   17     Brazero          Brazero
3093   18  26 Bra 0          Bra
3094   21   8 Bra 1          CBra 1
3095   24   3 abc          abc
3096   29   8 Ket          Ket
3097   32     Brazero          Brazero
3098   33   8 Bra 1          CBra 1
3099   36   3 abc          abc
3100   41   8 Ket          Ket
3101   44  26 Ket          Ket
3102   47  44 Ket          Ket
3103   50  50 Ket          Ket
3104   53     End          End
3105  ------------------------------------------------------------------  ------------------------------------------------------------------
3106  Capturing subpattern count = 1  Capturing subpattern count = 1
3107  No options  No options
3108  First char = 'a'  First char = 'a'
3109  Need char = 'c'  Need char = 'c'
3110    
3111  /a+?+/  /a+?+/I
3112  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3113    
3114  /a{2,3}?+b/  /a{2,3}?+b/I
3115  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3116    
3117  /(?U)a+?+/  /(?U)a+?+/I
3118  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3119    
3120  /a{2,3}?+b/U  /a{2,3}?+b/IU
3121  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3122    
3123  /x(?U)a++b/D  /x(?U)a++b/DZ
3124  ------------------------------------------------------------------  ------------------------------------------------------------------
3125    0  17 Bra 0          Bra
3126    3   1 x          x
3127    6   5 Once          a++
3128    9     a+          b
3129   11   5 Ket          Ket
3130   14   1 b          End
  17  17 Ket  
  20     End  
3131  ------------------------------------------------------------------  ------------------------------------------------------------------
3132  Capturing subpattern count = 0  Capturing subpattern count = 0
3133  No options  No options
# Line 2993  Need char = 'b' Line 3136  Need char = 'b'
3136      xaaaab      xaaaab
3137   0: xaaaab   0: xaaaab
3138    
3139  /(?U)xa++b/D  /(?U)xa++b/DZ
3140  ------------------------------------------------------------------  ------------------------------------------------------------------
3141    0  17 Bra 0          Bra
3142    3   1 x          x
3143    6   5 Once          a++
3144    9     a+          b
3145   11   5 Ket          Ket
3146   14   1 b          End
  17  17 Ket  
  20     End  
3147  ------------------------------------------------------------------  ------------------------------------------------------------------
3148  Capturing subpattern count = 0  Capturing subpattern count = 0
3149  Options: ungreedy  Options: ungreedy
# Line 3011  Need char = 'b' Line 3152  Need char = 'b'
3152      xaaaab      xaaaab
3153   0: xaaaab   0: xaaaab
3154    
3155  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3156  ------------------------------------------------------------------  ------------------------------------------------------------------
3157    0 106 Bra 0          Bra
3158    3     ^          ^
3159    4  99 Bra 1          CBra 1
3160    7   5 Bra 2          CBra 2
3161   10     a+          a+
3162   12   5 Ket          Ket
3163   15  37 Bra 3          CBra 3
3164   18     [a-b]+?          [ab]+?
3165   52  37 Ket          Ket
3166   55  37 Bra 4          CBra 4
3167   58     [b-c]+          [bc]+
3168   92  37 Ket          Ket
3169   95   5 Bra 5          CBra 5
3170   98     \w*          \w*
3171  100   5 Ket          Ket
3172  103  99 Ket          Ket
3173  106 106 Ket          Ket
3174  109     End          End
3175  ------------------------------------------------------------------  ------------------------------------------------------------------
3176  Capturing subpattern count = 5  Capturing subpattern count = 5
3177  Options: anchored  Options: anchored
3178  No first char  No first char
3179  No need char  No need char
3180    
3181  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3182  ------------------------------------------------------------------  ------------------------------------------------------------------
3183    0  12 Bra 0          Bra
3184    3     ^          ^
3185    4   1 x          x
3186    7     a+?          a++
3187    9   1 b          b
3188   12  12 Ket          Ket
3189   15     End          End
3190  ------------------------------------------------------------------  ------------------------------------------------------------------
3191  Capturing subpattern count = 0  Capturing subpattern count = 0
3192  Options: anchored  Options: anchored
3193  No first char  No first char
3194  Need char = 'b'  Need char = 'b'
3195    
3196  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3197  ------------------------------------------------------------------  ------------------------------------------------------------------
3198    0  18 Bra 0          Bra
3199    3     ^          ^
3200    4   1 x          x
3201    7   5 Bra 1          CBra 1
3202   10     a+?          a+?
3203   12   5 Ket          Ket
3204   15   1 b          b
3205   18  18 Ket          Ket
3206   21     End          End
3207  ------------------------------------------------------------------  ------------------------------------------------------------------
3208  Capturing subpattern count = 1  Capturing subpattern count = 1
3209  Options: anchored  Options: anchored
3210  No first char  No first char
3211  Need char = 'b'  Need char = 'b'
3212    
3213  /[.x.]/  /[.x.]/I
3214  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3215    
3216  /[=x=]/  /[=x=]/I
3217  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3218    
3219  /[:x:]/  /[:x:]/I
3220  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
3221    
3222  /\l/  /\l/I
3223  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
3224    
3225  /\L/  /\L/I
3226  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
3227    
3228  /\N{name}/  /\N{name}/I
3229  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
3230    
3231  /\pP/  /\u/I
3232  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
3233    
3234  /\PP/  /\U/I
3235  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
3236    
3237  /\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  
   
 /[/  
3238  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3239    
3240  /[a-/  /[a-/I
3241  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3242    
3243  /[[:space:]/  /[[:space:]/I
3244  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3245    
3246  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3247  ------------------------------------------------------------------  ------------------------------------------------------------------
3248    0  36 Bra 0          Bra
3249    3     [\x09-\x0a\x0c-\x0d ]          [\x09\x0a\x0c\x0d ]
3250   36  36 Ket          Ket
3251   39     End          End
3252  ------------------------------------------------------------------  ------------------------------------------------------------------
3253  Capturing subpattern count = 0  Capturing subpattern count = 0
3254  No options  No options
3255  No first char  No first char
3256  No need char  No need char
3257    
3258  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3259  ------------------------------------------------------------------  ------------------------------------------------------------------
3260    0  36 Bra 0          Bra
3261    3     [\x09-\x0d ]          [\x09-\x0d ]
3262   36  36 Ket          Ket
3263   39     End          End
3264  ------------------------------------------------------------------  ------------------------------------------------------------------
3265  Capturing subpattern count = 0  Capturing subpattern count = 0
3266  No options  No options
3267  No first char  No first char
3268  No need char  No need char
3269    
3270  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3271  ------------------------------------------------------------------  ------------------------------------------------------------------
3272    0  36 Bra 0          Bra
3273    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3274   36  36 Ket          Ket
3275   39     End          End
3276  ------------------------------------------------------------------  ------------------------------------------------------------------
3277  Capturing subpattern count = 0  Capturing subpattern count = 0
3278  No options  No options
3279  No first char  No first char
3280  No need char  No need char
3281    
3282  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3283  Capturing subpattern count = 0  Capturing subpattern count = 0
3284  Options: extended  Options: extended
3285  First char = '<'  First char = '<'
# Line 3169  Need char = '>' Line 3292  Need char = '>'
3292   0: <abc <123> hij>   0: <abc <123> hij>
3293      <abc <def> hij>      <abc <def> hij>
3294   0: <def>   0: <def>
3295      <abc<>def>      <abc<>def>
3296   0: <abc<>def>   0: <abc<>def>
3297      <abc<>      <abc<>
3298   0: <>   0: <>
3299      *** Failers      *** Failers
3300  No match  No match
3301      <abc      <abc
3302  No match  No match
3303    
3304  |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  
3305  ------------------------------------------------------------------  ------------------------------------------------------------------
3306    0 417 Bra 0          Bra
3307    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
3308  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
3309  416     \b          Ket
3310  417 417 Ket          End
 420     End  
3311  ------------------------------------------------------------------  ------------------------------------------------------------------
3312  Capturing subpattern count = 0  Capturing subpattern count = 0
3313  No options  No options
3314  First char = '8'  First char = '8'
3315  Need char = 'X'  Need char = 'X'
3316    
3317  |\$\<\.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  
3318  ------------------------------------------------------------------  ------------------------------------------------------------------
3319    0 412 Bra 0          Bra
3320    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
3321  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
3322  411     \b          Ket
3323  412 412 Ket          End
 415     End  
3324  ------------------------------------------------------------------  ------------------------------------------------------------------
3325  Capturing subpattern count = 0  Capturing subpattern count = 0
3326  No options  No options
# Line 3218  No need char Line 3337  No need char
3337  /(.*)\d+/I  /(.*)\d+/I
3338  Capturing subpattern count = 1  Capturing subpattern count = 1
3339  No options  No options
3340  First char at start or follows \n  First char at start or follows newline
3341  No need char  No need char
3342    
3343  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3344  Capturing subpattern count = 1  Capturing subpattern count = 1
3345  Max back reference = 1  Max back reference = 1
# Line 3238  No need char Line 3357  No need char
3357  Capturing subpattern count = 2  Capturing subpattern count = 2
3358  Max back reference = 2  Max back reference = 2
3359  No options  No options
3360  First char at start or follows \n  First char at start or follows newline
3361  Need char = 'z'  Need char = 'z'
3362    
3363  /((.*))\d+\1/I  /((.*))\d+\1/I
# Line 3251  No need char Line 3370  No need char
3370   0: bc123bc   0: bc123bc
3371   1: bc   1: bc
3372   2: bc   2: bc
3373    
3374  /a[b]/I  /a[b]/I
3375  Capturing subpattern count = 0  Capturing subpattern count = 0
3376  No options  No options
# Line 3264  No options Line 3383  No options
3383  First char = 'a'  First char = 'a'
3384  No need char  No need char
3385    
3386  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3387  Capturing subpattern count = 0  Capturing subpattern count = 0
3388  Options: caseless  Options: caseless
3389  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3273  Need char = 'z' (caseless) Line 3392  Need char = 'z' (caseless)
3392  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3393  Capturing subpattern count = 0  Capturing subpattern count = 0
3394  No options  No options
 Case state changes  
3395  First char = 'a'  First char = 'a'
3396  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3397    
# Line 3307  No options Line 3425  No options
3425  No first char  No first char
3426  Need char = 'a'  Need char = 'a'
3427    
3428  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3429  Capturing subpattern count = 0  Capturing subpattern count = 1
3430  No options  No options
3431  First char = 'a'  First char = 'a'
3432  No need char  No need char
3433    
3434  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3435  Capturing subpattern count = 0  Capturing subpattern count = 1
3436  No options  No options
3437  First char = 'a'  First char = 'a'
3438  Need char = 'z'  Need char = 'z'
3439    
3440  /(?(1)abz)/I  /(?(1)abz)(.)/I
3441  Capturing subpattern count = 0  Capturing subpattern count = 1
3442  No options  No options
3443  No first char  No first char
3444  No need char  No need char
3445    
3446  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3447  Capturing subpattern count = 0  Capturing subpattern count = 1
3448  No options  No options
3449  No first char  No first char
3450  Need char = '3'  Need char = '3'
# Line 3366  Capturing subpattern count = 0 Line 3484  Capturing subpattern count = 0
3484  No options  No options
3485  No first char  No first char
3486  No need char  No need char
3487  Starting character set: a b  Subject length lower bound = 1
3488    Starting byte set: a b
3489    
3490  /[^a]/I  /[^a]/I
3491  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3385  Capturing subpattern count = 0 Line 3504  Capturing subpattern count = 0
3504  No options  No options
3505  No first char  No first char
3506  Need char = '6'  Need char = '6'
3507  Starting character set: 0 1 2 3 4 5 6 7 8 9  Subject length lower bound = 4
3508    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3509    
3510  /a^b/I  /a^b/I
3511  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3393  No options Line 3513  No options
3513  First char = 'a'  First char = 'a'
3514  Need char = 'b'  Need char = 'b'
3515    
3516  /^a/mI  /^a/Im
3517  Capturing subpattern count = 0  Capturing subpattern count = 0
3518  Options: multiline  Options: multiline
3519  First char at start or follows \n  First char at start or follows newline
3520  Need char = 'a'  Need char = 'a'
3521    abcde    abcde
3522   0: a   0: a
3523    xy\nabc    xy\nabc
3524   0: a   0: a
3525    *** Failers    *** Failers
3526  No match  No match
3527    xyabc    xyabc
3528  No match  No match
3529    
3530  /c|abc/I  /c|abc/I
# Line 3418  Capturing subpattern count = 0 Line 3538  Capturing subpattern count = 0
3538  Options: caseless  Options: caseless
3539  No first char  No first char
3540  No need char  No need char
3541  Starting character set: A B a b  Subject length lower bound = 1
3542    Starting byte set: A B a b
3543    
3544  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3545  Capturing subpattern count = 0  Capturing subpattern count = 0
3546  No options  No options
 Case state changes  
3547  No first char  No first char
3548  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3549  Starting character set: a b  Subject length lower bound = 3
3550    Starting byte set: a b
3551    
3552  /abc(?C)def/  /abc(?C)def/I
3553  Capturing subpattern count = 0  Capturing subpattern count = 0
3554  No options  No options
3555  First char = 'a'  First char = 'a'
3556  Need char = 'f'  Need char = 'f'
3557      abcdef      abcdef
3558  --->abcdef  --->abcdef
3559    0 ^  ^    0 ^  ^       d
3560   0: abcdef   0: abcdef
3561      1234abcdef      1234abcdef
3562  --->1234abcdef  --->1234abcdef
3563    0     ^  ^    0     ^  ^       d
3564   0: abcdef   0: abcdef
3565      *** Failers      *** Failers
3566  No match  No match
3567      abcxyz      abcxyz
3568  No match  No match
3569      abcxyzf      abcxyzf
3570  --->abcxyzf  --->abcxyzf
3571    0 ^  ^    0 ^  ^        d
3572  No match  No match
3573    
3574  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3575  Capturing subpattern count = 0  Capturing subpattern count = 0
3576  No options  No options
3577  First char = 'a'  First char = 'a'
3578  Need char = 'f'  Need char = 'f'
3579      123abcdef      123abcdef
3580  --->123abcdef  --->123abcdef
3581    0    ^  ^    0    ^  ^       d
3582    1    ^    ^    1    ^    ^     f
3583   0: abcdef   0: abcdef
3584    
3585  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3586  Capturing subpattern count = 0  Capturing subpattern count = 0
3587  No options  No options
3588  No first char  No first char
3589  Need char = 'f'  Need char = 'f'
3590      1234abcdef      1234abcdef
3591  --->1234abcdef  --->1234abcdef
3592    1 ^    1 ^              \d
3593    1  ^    1  ^             \d
3594    1   ^    1   ^            \d
3595    1    ^    1    ^           \d
3596    2    ^   ^    2    ^   ^       d
3597   0: 4abcdef   0: 4abcdef
3598      *** Failers      *** Failers
3599  No match  No match
3600      abcdef      abcdef
3601  --->abcdef  --->abcdef
3602    1 ^    1 ^          \d
3603    1  ^    1  ^         \d
3604    1   ^    1   ^        \d
3605    1    ^    1    ^       \d
3606    1     ^    1     ^      \d
3607    1      ^    1      ^     \d
3608  No match  No match
3609    
3610  /(?C255)ab/  /(?C255)ab/I
3611  Capturing subpattern count = 0  Capturing subpattern count = 0
3612  No options  No options
3613  First char = 'a'  First char = 'a'
3614  Need char = 'b'  Need char = 'b'
3615    
3616  /(?C256)ab/  /(?C256)ab/I
3617  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3618    
3619  /(?Cab)xx/  /(?Cab)xx/I
3620  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3621    
3622  /(?C12vr)x/  /(?C12vr)x/I
3623  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3624    
3625  /abc(?C)def/  /abc(?C)def/I
3626  Capturing subpattern count = 0  Capturing subpattern count = 0
3627  No options  No options
3628  First char = 'a'  First char = 'a'
# Line 3510  Need char = 'f' Line 3631  Need char = 'f'
3631  No match  No match
3632      \x83\x0\x61bcdef      \x83\x0\x61bcdef
3633  --->\x83\x00abcdef  --->\x83\x00abcdef
3634    0         ^  ^    0         ^  ^       d
3635   0: abcdef   0: abcdef
3636    
3637  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3638  Capturing subpattern count = 1  Capturing subpattern count = 1
3639  No options  No options
3640  First char = 'a'  First char = 'a'
3641  Need char = 'f'  Need char = 'f'
3642      123abcdef      123abcdef
3643  --->123abcdef  --->123abcdef
3644    0    ^  ^    0    ^  ^       d
3645    1    ^    ^    1    ^    ^     f
3646   0: abcdef   0: abcdef
3647   1: abc   1: abc
3648      123abcdef\C+      123abcdef\C+
3649  Callout 0: last capture = 1  Callout 0: last capture = 1
3650   0: <unset>   0: <unset>
3651   1: abc   1: abc
3652  --->123abcdef  --->123abcdef
3653         ^  ^         ^  ^       d
3654  Callout 1: last capture = 1  Callout 1: last capture = 1
3655   0: <unset>   0: <unset>
3656   1: abc   1: abc
3657  --->123abcdef  --->123abcdef
3658         ^    ^         ^    ^     f
3659   0: abcdef   0: abcdef
3660   1: abc   1: abc
3661      123abcdef\C-      123abcdef\C-
3662   0: abcdef   0: abcdef
3663   1: abc   1: abc
3664      *** Failers      *** Failers
3665  No match  No match
3666      123abcdef\C!1      123abcdef\C!1
3667  --->123abcdef  --->123abcdef
3668    0    ^  ^    0    ^  ^       d
3669    1    ^    ^    1    ^    ^     f
3670  No match  No match
3671    
3672  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3673  Capturing subpattern count = 1  Capturing subpattern count = 1
3674  No options  No options
3675  No first char  No first char
3676  No need char  No need char
3677      abcabcabc      abcabcabc
3678  --->abcabcabc  --->abcabcabc
3679    0 ^    0 ^             (abc(?C1))*
3680    1 ^  ^    1 ^  ^          )
3681    1 ^     ^    1 ^     ^       )
3682    1 ^        ^    1 ^        ^    )
3683   0: abcabcabc   0: abcabcabc
3684   1: abc   1: abc
3685      abcabc\C!1!3      abcabc\C!1!3
3686  --->abcabc  --->abcabc
3687    0 ^    0 ^          (abc(?C1))*
3688    1 ^  ^    1 ^  ^       )
3689    1 ^     ^    1 ^     ^    )
3690   0: abcabc   0: abcabc
3691   1: abc   1: abc
3692      *** Failers      *** Failers
3693  --->*** Failers  --->*** Failers
3694    0 ^    0 ^               (abc(?C1))*
3695   0:   0:
3696      abcabcabc\C!1!3      abcabcabc\C!1!3
3697  --->abcabcabc  --->abcabcabc
3698    0 ^    0 ^             (abc(?C1))*
3699    1 ^  ^    1 ^  ^          )
3700    1 ^     ^    1 ^     ^       )
3701    1 ^        ^    1 ^        ^    )
3702   0: abcabc   0: abcabc
3703   1: abc   1: abc
3704    
3705  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3706  Capturing subpattern count = 1  Capturing subpattern count = 1
3707  No options  No options
3708  No first char  No first char
# Line 3590  No need char Line 3711  No need char
3711  Callout 0: last capture = -1  Callout 0: last capture = -1
3712   0: <unset>   0: <unset>
3713  --->123  --->123
3714      ^  ^      ^  ^    )
3715   0: 123   0: 123
3716   1: 123   1: 123
3717      123456\C+      123456\C+
3718  Callout 0: last capture = -1  Callout 0: last capture = -1
3719   0: <unset>   0: <unset>
3720  --->123456  --->123456
3721      ^  ^      ^  ^       )
3722  Callout 0: last capture = 1  Callout 0: last capture = 1
3723   0: <unset>   0: <unset>
3724   1: 123   1: 123
3725  --->123456  --->123456
3726      ^     ^      ^     ^    )
3727   0: 123456   0: 123456
3728   1: 456   1: 456
3729      123456789\C+      123456789\C+
3730  Callout 0: last capture = -1  Callout 0: last capture = -1
3731   0: <unset>   0: <unset>
3732  --->123456789  --->123456789
3733      ^  ^      ^  ^          )
3734  Callout 0: last capture = 1  Callout 0: last capture = 1
3735   0: <unset>   0: <unset>
3736   1: 123   1: 123
3737  --->123456789  --->123456789
3738      ^     ^      ^     ^       )
3739  Callout 0: last capture = 1  Callout 0: last capture = 1
3740   0: <unset>   0: <unset>
3741   1: 456   1: 456
3742  --->123456789  --->123456789
3743      ^        ^      ^        ^    )
3744   0: 123456789   0: 123456789
3745   1: 789   1: 789
3746    
3747  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3748  Capturing subpattern count = 2  Capturing subpattern count = 2
3749  No options  No options
3750  First char = 'x'  First char = 'x'
# Line 3634  Callout 0: last capture = 2 Line 3755  Callout 0: last capture = 2
3755   1: <unset>   1: <unset>
3756   2: xyz   2: xyz
3757  --->xyzabc  --->xyzabc
3758      ^  ^      ^  ^       p
3759  Callout 1: last capture = -1  Callout 1: last capture = -1
3760   0: <unset>   0: <unset>
3761  --->xyzabc  --->xyzabc
3762      ^      ^          x
3763   0: xyzabc   0: xyzabc
3764   1: xyzabc   1: xyzabc
3765    
3766  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3767  Capturing subpattern count = 3  Capturing subpattern count = 3
3768  No options  No options
3769  First char = 'X'  First char = 'X'
# Line 3654  Callout 0: last capture = 3 Line 3775  Callout 0: last capture = 3
3775   2: <unset>   2: <unset>
3776   3: xyz   3: xyz
3777  --->Xxyzabc  --->Xxyzabc
3778      ^   ^      ^   ^       p
3779  Callout 1: last capture = 1  Callout 1: last capture = 1
3780   0: <unset>   0: <unset>
3781   1: X   1: X
3782  --->Xxyzabc  --->Xxyzabc
3783      ^^      ^^          x
3784   0: Xxyzabc   0: Xxyzabc
3785   1: X   1: X
3786   2: xyzabc   2: xyzabc
3787    
3788  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3789  Capturing subpattern count = 1  Capturing subpattern count = 1
3790  No options  No options
3791  First char = 'a'  First char = 'a'
# Line 3674  Callout 0: last capture = 1 Line 3795  Callout 0: last capture = 1
3795   0: <unset>   0: <unset>
3796   1: abc   1: abc
3797  --->abcdef  --->abcdef
3798      ^      ^          a
3799   0: abcdef   0: abcdef
3800   1: abc   1: abc
3801    
3802  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3803  Capturing subpattern count = 1  Capturing subpattern count = 1
3804  No options  No options
3805  First char = 'a'  First char = 'a'
3806  Need char = 'z'  Need char = 'z'
3807      abcxyz\C+      abcxyz\C+
3808  Callout 1: last capture = 1  Callout 1: last capture = 1
3809   0: <unset>   0: <unset>
3810   1: abc   1: abc
3811  --->abcxyz  --->abcxyz
3812      ^  ^      ^  ^       d
3813  Callout 2: last capture = -1  Callout 2: last capture = -1
3814   0: <unset>   0: <unset>
3815  --->abcxyz  --->abcxyz
3816      ^      ^          a
3817   0: abcxyz   0: abcxyz
3818    
3819  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3820  Capturing subpattern count = 1  Capturing subpattern count = 1
3821  No options  No options
3822  First char = 'x'  First char = 'x'
# Line 3705  Callout 0: last capture = 1 Line 3826  Callout 0: last capture = 1
3826   0: <unset>   0: <unset>
3827   1: abc   1: abc
3828  --->abcxyz  --->abcxyz
3829         ^         ^       )
3830   0: xyz   0: xyz
3831   1: abc   1: abc
3832    
3833  /(?C)abc/  /a(b+)(c*)(?C1)/I
3834    Capturing subpattern count = 2
3835    No options
3836    First char = 'a'
3837    Need char = 'b'
3838        abbbbbccc\C*1
3839    --->abbbbbccc
3840      1 ^        ^
3841    Callout data = 1
3842      1 ^       ^
3843    Callout data = 1
3844      1 ^      ^
3845    Callout data = 1
3846      1 ^     ^
3847    Callout data = 1
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    No match
3857    
3858    /a(b+?)(c*?)(?C1)/I
3859    Capturing subpattern count = 2
3860    No options
3861    First char = 'a'
3862    Need char = 'b'
3863        abbbbbccc\C*1
3864    --->abbbbbccc
3865      1 ^ ^
3866    Callout data = 1
3867      1 ^  ^
3868    Callout data = 1
3869      1 ^   ^
3870    Callout data = 1
3871      1 ^    ^
3872    Callout data = 1
3873      1 ^     ^
3874    Callout data = 1
3875      1 ^      ^
3876    Callout data = 1
3877      1 ^       ^
3878    Callout data = 1
3879      1 ^        ^
3880    Callout data = 1
3881    No match
3882    
3883    /(?C)abc/I
3884  Capturing subpattern count = 0  Capturing subpattern count = 0
3885  No options  No options
3886  First char = 'a'  First char = 'a'
3887  Need char = 'c'  Need char = 'c'
3888    
3889  /(?C)^abc/  /(?C)^abc/I
3890  Capturing subpattern count = 0  Capturing subpattern count = 0
3891  Options: anchored  Options: anchored
3892  No first char  No first char
3893  No need char  No need char
3894    
3895  /(?C)a|b/S  /(?C)a|b/IS
3896  Capturing subpattern count = 0  Capturing subpattern count = 0
3897  No options  No options
3898  No first char  No first char
3899  No need char  No need char
3900  Starting character set: a b  Subject length lower bound = 1
3901    Starting byte set: a b
3902    
3903  /(?R)/  /(?R)/I
3904  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3905    
3906  /(a|(?R))/  /(a|(?R))/I
3907  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3908    
3909  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3910  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3911    
3912  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3913  Capturing subpattern count = 3  Capturing subpattern count = 3
3914  No options  No options
3915  First char = 'x'  First char = 'x'
# Line 3766  No need char Line 3938  No need char
3938   3: xxab   3: xxab
3939      *** Failers      *** Failers
3940  No match  No match
3941      xyab      xyab
3942  No match  No match
3943    
3944  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3945  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3946    
3947  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3948  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3949    
3950  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3951  Capturing subpattern count = 1  Capturing subpattern count = 1
3952  Options: anchored  Options: anchored
3953  No first char  No first char
# Line 3786  No need char Line 3958  No need char
3958      a(b)c      a(b)c
3959   0: a(b)c   0: a(b)c
3960   1: c   1: c
3961      a(b(c))d      a(b(c))d
3962   0: a(b(c))d   0: a(b(c))d
3963   1: d   1: d
3964      *** Failers)      *** Failers)
3965  No match  No match
3966      a(b(c)d      a(b(c)d
3967  No match  No match
3968    
3969  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3970  Capturing subpattern count = 1  Capturing subpattern count = 1
3971  Options: anchored  Options: anchored
3972  No first char  No first char
# Line 3809  Need char = '<' Line 3981  Need char = '<'
3981   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3982   1: (1(2)3)   1: (1(2)3)
3983    
3984  /(a(?1)b)/D  /(a(?1)b)/DZ
3985  ------------------------------------------------------------------  ------------------------------------------------------------------
3986    0  18 Bra 0          Bra
3987    3  12 Bra 1          CBra 1
3988    6   1 a          a
3989    9   3 Recurse          Once
3990   12   1 b          Recurse
3991   15  12 Ket          Ket
3992   18  18 Ket          b
3993   21     End          Ket
3994            Ket
3995            End
3996  ------------------------------------------------------------------  ------------------------------------------------------------------
3997  Capturing subpattern count = 1  Capturing subpattern count = 1
3998  No options  No options
3999  First char = 'a'  First char = 'a'
4000  Need char = 'b'  Need char = 'b'
4001    
4002  /(a(?1)+b)/D  /(a(?1)+b)/DZ
4003  ------------------------------------------------------------------  ------------------------------------------------------------------
4004    0  24 Bra 0          Bra
4005    3  18 Bra 1          CBra 1
4006    6   1 a          a
4007    9   6 Bra 0          Once
4008   12   3 Recurse          Recurse
4009   15   6 KetRmax          KetRmax
4010   18   1 b          b
4011   21  18 Ket          Ket
4012   24  24 Ket          Ket
4013   27     End          End
4014  ------------------------------------------------------------------  ------------------------------------------------------------------
4015  Capturing subpattern count = 1  Capturing subpattern count = 1
4016  No options  No options
4017  First char = 'a'  First char = 'a'
4018  Need char = 'b'  Need char = 'b'
4019    
4020  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4021  Capturing subpattern count = 4  Capturing subpattern count = 2
4022  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  
4023  No first char  No first char
4024  No need char  No need char
4025      12      12
# Line 3895  No need char Line 4036  No need char
4036  No match  No match
4037      ((2+2)*-3)-7)      ((2+2)*-3)-7)
4038  No match  No match
4039    
4040  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
4041  Capturing subpattern count = 2  Capturing subpattern count = 2
4042  Options: anchored  Options: anchored
4043  No first char  No first char
# Line 3905  No need char Line 4046  No need char
4046   0: xyz   0: xyz
4047   1: xyz   1: xyz
4048   2: y   2: y
4049      xxyzxyzz      xxyzxyzz
4050   0: xxyzxyzz   0: xxyzxyzz
4051   1: xxyzxyzz   1: xxyzxyzz
4052   2: xyzxyz   2: xyzxyz
# Line 3913  No need char Line 4054  No need char
4054  No match  No match
4055      xxyzz      xxyzz
4056  No match  No match
4057      xxyzxyzxyzz      xxyzxyzxyzz
4058  No match  No match
4059    
4060  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4061  Capturing subpattern count = 2  Capturing subpattern count = 2
4062  Options: extended  Options: extended
4063  First char = '<'  First char = '<'
# Line 3937  Need char = '>' Line 4078  Need char = '>'
4078   0: <def>   0: <def>
4079   1: <def>   1: <def>
4080   2: <def>   2: <def>
4081      <abc<>def>      <abc<>def>
4082   0: <abc<>def>   0: <abc<>def>
4083   1: <abc<>def>   1: <abc<>def>
4084   2: <abc<>def>   2: <abc<>def>
4085      <abc<>      <abc<>
4086   0: <>   0: <>
4087   1: <>   1: <>
4088   2: <>   2: <>
# Line 3950  No match Line 4091  No match
4091      <abc      <abc
4092  No match  No match
4093    
4094  /(?1)/  /(?1)/I
4095  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4096    
4097  /((?2)(abc)/  /((?2)(abc)/I
4098  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4099    
4100  /^(abc)def(?1)/  /^(abc)def(?1)/I
4101  Capturing subpattern count = 1  Capturing subpattern count = 1
4102  Options: anchored  Options: anchored
4103  No first char  No first char
# Line 3965  No need char Line 4106  No need char
4106   0: abcdefabc   0: abcdefabc
4107   1: abc   1: abc
4108    
4109  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4110  Capturing subpattern count = 1  Capturing subpattern count = 1
4111  Options: anchored  Options: anchored
4112  No first char  No first char
# Line 3976  No need char Line 4117  No need char
4117      a=b      a=b
4118   0: a=b   0: a=b
4119   1: a   1: a
4120      a=bc      a=bc
4121   0: a=bc   0: a=bc
4122   1: a   1: a
4123    
4124  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4125  Capturing subpattern count = 2  Capturing subpattern count = 2
4126  Options: anchored  Options: anchored
4127  No first char  No first char
# Line 3993  No need char Line 4134  No need char
4134   0: a=b   0: a=b
4135   1: a   1: a
4136   2: b   2: b
4137      a=bc      a=bc
4138   0: a=bc   0: a=bc
4139   1: a   1: a
4140   2: c   2: c
4141    
4142  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4143  ------------------------------------------------------------------  ------------------------------------------------------------------
4144    0  33 Bra 0          Bra
4145    3   1 a          a
4146    6   6 Bra 1          CBra 1
4147    9   1 b          b
4148   12   6 Alt          Alt
4149   15   1 c          c
4150   18  12 Ket          Ket
4151   21   1 d          d
4152   24   6 Bra 2          CBra 2
4153   27   1 e          e
4154   30   6 Ket          Ket
4155   33  33 Ket          Ket
4156   36     End          End
4157  ------------------------------------------------------------------  ------------------------------------------------------------------
4158  Capturing subpattern count = 2  Capturing subpattern count = 2
4159  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4025  Need char = 'e' Line 4166  Need char = 'e'
4166   0: abde   0: abde
4167   1: b   1: b
4168   2: e   2: e
4169      acde      acde
4170   0: acde   0: acde
4171   1: c   1: c
4172   2: e   2: e
4173    
4174  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4175  ------------------------------------------------------------------  ------------------------------------------------------------------
4176    0  39 Bra 0          Bra
4177    3  24 Bra 0          Bra
4178    6   1 a          a
4179    9  15 Bra 1          CBra 1
4180   12   1 c          c
4181   15   6 Bra 2          CBra 2
4182   18   1 d          d
4183   21   6 Ket          Ket
4184   24  15 Ket          Ket
4185   27  24 Ket          Ket
4186   30   6 Bra 3          CBra 3
4187   33   1 a          a
4188   36   6 Ket          Ket
4189   39  39 Ket          Ket
4190   42     End          End
4191  ------------------------------------------------------------------  ------------------------------------------------------------------
4192  Capturing subpattern count = 3  Capturing subpattern count = 3
4193  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4057  No options Line 4198  No options
4198  First char = 'a'  First char = 'a'
4199  Need char = 'a'  Need char = 'a'
4200    
4201  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4202  ------------------------------------------------------------------  ------------------------------------------------------------------
4203    0  29 Bra 0          Bra
4204    3   6 Bra 1          CBra 1
4205    6   1 a          a
4206    9   6 Ket          Ket
4207   12     Any          Any
4208   13     Any          Any
4209   14     Any          Any
4210   15     \1          \1
4211   18   3 bbb          bbb
4212   23   3 Recurse          Once
4213   26   1 d          Recurse
4214   29  29 Ket          Ket
4215   32     End          d
4216            Ket
4217            End
4218  ------------------------------------------------------------------  ------------------------------------------------------------------
4219  Capturing subpattern count = 1  Capturing subpattern count = 1
4220  Max back reference = 1  Max back reference = 1
# Line 4081  No options Line 4224  No options
4224  First char = 'a'  First char = 'a'
4225  Need char = 'd'  Need char = 'd'
4226    
4227  /^\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
4228  Capturing subpattern count = 4  Capturing subpattern count = 4
4229  Max back reference = 4  Max back reference = 4
4230  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4108  No need char Line 4251  No need char
4251   2: <unset>   2: <unset>
4252   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4253   4: A   4: A
4254      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4255   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4256   1: <unset>   1: <unset>
4257   2: <unset>   2: <unset>
# Line 4116  No need char Line 4259  No need char
4259   4: A   4: A
4260      *** Failers      *** Failers
4261  No match  No match
4262      The quick brown fox      The quick brown fox
4263  No match  No match
4264    
4265  /((?(R)a|b))\1(?1)?/  /((?(R)a|b))\1(?1)?/I
4266  Capturing subpattern count = 1  Capturing subpattern count = 1
4267  Max back reference = 1  Max back reference = 1
4268  No options  No options
# Line 4128  No need char Line 4271  No need char
4271    bb    bb
4272   0: bb   0: bb
4273   1: b   1: b
4274    bbaa    bbaa
4275   0: bba   0: bba
4276   1: b   1: b
4277    
4278  /(.*)a/sI  /(.*)a/Is
4279  Capturing subpattern count = 1  Capturing subpattern count = 1
4280  Options: anchored dotall  Options: anchored dotall
4281  No first char  No first char
4282  Need char = 'a'  Need char = 'a'
4283    
4284  /(.*)a\1/sI  /(.*)a\1/Is
4285  Capturing subpattern count = 1  Capturing subpattern count = 1
4286  Max back reference = 1  Max back reference = 1
4287  Options: dotall  Options: dotall
4288  No first char  No first char
4289  Need char = 'a'  Need char = 'a'
4290    
4291  /(.*)a(b)\2/sI  /(.*)a(b)\2/Is
4292  Capturing subpattern count = 2  Capturing subpattern count = 2
4293  Max back reference = 2  Max back reference = 2
4294  Options: anchored dotall  Options: anchored dotall
4295  No first char  No first char
4296  Need char = 'b'  Need char = 'b'
4297    
4298  /((.*)a|(.*)b)z/sI  /((.*)a|(.*)b)z/Is
4299  Capturing subpattern count = 3  Capturing subpattern count = 3
4300  Options: anchored dotall  Options: anchored dotall
4301  No first char  No first char
4302  Need char = 'z'  Need char = 'z'
4303    
4304  /((.*)a|(.*)b)z\1/sI  /((.*)a|(.*)b)z\1/Is
4305  Capturing subpattern count = 3  Capturing subpattern count = 3
4306  Max back reference = 1  Max back reference = 1
4307  Options: dotall  Options: dotall
4308  No first char  No first char
4309  Need char = 'z'  Need char = 'z'
4310    
4311  /((.*)a|(.*)b)z\2/sI  /((.*)a|(.*)b)z\2/Is
4312  Capturing subpattern count = 3  Capturing subpattern count = 3
4313  Max back reference = 2  Max back reference = 2
4314  Options: dotall  Options: dotall
4315  No first char  No first char
4316  Need char = 'z'  Need char = 'z'
4317    
4318  /((.*)a|(.*)b)z\3/sI  /((.*)a|(.*)b)z\3/Is
4319  Capturing subpattern count = 3  Capturing subpattern count = 3
4320  Max back reference = 3  Max back reference = 3
4321  Options: dotall  Options: dotall
4322  No first char  No first char
4323  Need char = 'z'  Need char = 'z'
4324    
4325  /((.*)a|^(.*)b)z\3/sI  /((.*)a|^(.*)b)z\3/Is
4326  Capturing subpattern count = 3  Capturing subpattern count = 3
4327  Max back reference = 3  Max back reference = 3
4328  Options: anchored dotall  Options: anchored dotall
4329  No first char  No first char
4330  Need char = 'z'  Need char = 'z'
4331    
4332  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4333  Capturing subpattern count = 31  Capturing subpattern count = 31
4334  Options: anchored dotall  Options: anchored dotall
4335  No first char  No first char
4336  No need char  No need char
4337    
4338  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4339  Capturing subpattern count = 31  Capturing subpattern count = 31
4340  Max back reference = 31  Max back reference = 31
4341  Options: dotall  Options: dotall
4342  No first char  No first char
4343  No need char  No need char
4344    
4345  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4346  Capturing subpattern count = 32  Capturing subpattern count = 32
4347  Max back reference = 32  Max back reference = 32
4348  Options: dotall  Options: dotall
4349  No first char  No first char
4350  No need char  No need char
4351    
4352  /(a)(bc)/ND  /(a)(bc)/INDZ
4353  ------------------------------------------------------------------  ------------------------------------------------------------------
4354    0  22 Bra 0          Bra
4355    3   6 Bra 0          Bra
4356    6   1 a          a
4357    9   6 Ket          Ket
4358   12   7 Bra 0          Bra
4359   15   2 bc          bc
4360   19   7 Ket          Ket
4361   22  22 Ket          Ket
4362   25     End          End
4363  ------------------------------------------------------------------  ------------------------------------------------------------------
4364  Capturing subpattern count = 0  Capturing subpattern count = 0
4365  Options:  Options: no_auto_capture
4366  First char = 'a'  First char = 'a'
4367  Need char = 'c'  Need char = 'c'
4368    abc    abc
4369   0: abc   0: abc
4370    
4371  /(?P<one>a)(bc)/ND  /(?P<one>a)(bc)/INDZ
4372  ------------------------------------------------------------------  ------------------------------------------------------------------
4373    0  22 Bra 0          Bra
4374    3   6 Bra 1          CBra 1
4375    6   1 a          a
4376    9   6 Ket          Ket
4377   12   7 Bra 0          Bra
4378   15   2 bc          bc
4379   19   7 Ket          Ket
4380   22  22 Ket          Ket
4381   25     End          End
4382  ------------------------------------------------------------------  ------------------------------------------------------------------
4383  Capturing subpattern count = 1  Capturing subpattern count = 1
4384  Named capturing subpatterns:  Named capturing subpatterns:
4385    one   1    one   1
4386  Options:  Options: no_auto_capture
4387  First char = 'a'  First char = 'a'
4388  Need char = 'c'  Need char = 'c'
4389    abc    abc
4390   0: abc   0: abc
4391   1: a   1: a
4392    
4393  /(a)(?P<named>bc)/ND  /(a)(?P<named>bc)/INDZ
4394  ------------------------------------------------------------------  ------------------------------------------------------------------
4395    0  22 Bra 0          Bra
4396    3   6 Bra 0          Bra
4397    6   1 a          a
4398    9   6 Ket          Ket
4399   12   7 Bra 1          CBra 1
4400   15   2 bc          bc
4401   19   7 Ket          Ket
4402   22  22 Ket          Ket
4403   25     End          End
4404  ------------------------------------------------------------------  ------------------------------------------------------------------
4405  Capturing subpattern count = 1  Capturing subpattern count = 1
4406  Named capturing subpatterns:  Named capturing subpatterns:
4407    named   1    named   1
4408  Options:  Options: no_auto_capture
4409  First char = 'a'  First char = 'a'
4410  Need char = 'c'  Need char = 'c'
4411    
4412  /(a+)*zz/  /(a+)*zz/I
4413  Capturing subpattern count = 1  Capturing subpattern count = 1
4414  No options  No options
4415  No first char  No first char
4416  Need char = 'z'  Need char = 'z'
4417    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4418  Minimum match limit = 8  Minimum match() limit = 8
4419    Minimum match() recursion limit = 6
4420   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4421   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4422    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4423  Minimum match limit = 32768  Minimum match() limit = 32768
4424    Minimum match() recursion limit = 42
4425  No match  No match
4426    
4427  /(aaa(?C1)bbb|ab)/  /(aaa(?C1)bbb|ab)/I
4428  Capturing subpattern count = 1  Capturing subpattern count = 1
4429  No options  No options
4430  First char = 'a'  First char = 'a'
4431  Need char = 'b'  Need char = 'b'
4432     aaabbb     aaabbb
4433  --->aaabbb  --->aaabbb
4434    1 ^  ^    1 ^  ^       b
4435   0: aaabbb   0: aaabbb
4436   1: aaabbb   1: aaabbb