/[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 53 by nigel, Sat Feb 24 21:39:42 2007 UTC revision 461 by ph10, Mon Oct 5 10:59:35 2009 UTC
# Line 1  Line 1 
1  PCRE version 3.5 15-Aug-2001  /-- 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 potential Perl
6        bug. --/
7    
8    /-- Originally, the Perl 5.10 things were in here too, but now I have separated
9        many (most?) of them out into test 11. However, there may still be some
10        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
40  Need char = 'c'  No need char
41      abc      abc
42   0: abc   0: abc
43      \Aabc      \Aabc
# 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
80  Need char = 'c'  No need char
81      abc      abc
82   0: abc   0: abc
83      *** Failers      *** Failers
# 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 91  Failed: number too big in {} quantifier Line 100  Failed: number too big in {} quantifier
100  /[abcd/  /[abcd/
101  Failed: missing terminating ] for character class at offset 5  Failed: missing terminating ] for character class at offset 5
102    
103  /[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 2  Failed: invalid escape sequence in character class at offset 6
105    
106  /[z-a]/  /[z-a]/
107  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
# Line 107  Failed: missing ) at offset 4 Line 116  Failed: missing ) at offset 4
116  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
117    
118  /(?z)abc/  /(?z)abc/
119  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
120    
121  /.*b/  /.*b/I
122  Capturing subpattern count = 0  Capturing subpattern count = 0
123  No options  No options
124  First char at start or follows \n  First char at start or follows newline
125  Need char = 'b'  Need char = 'b'
126    
127  /.*?b/  /.*?b/I
128  Capturing subpattern count = 0  Capturing subpattern count = 0
129  No options  No options
130  First char at start or follows \n  First char at start or follows newline
131  Need char = 'b'  Need char = 'b'
132    
133  /cat|dog|elephant/  /cat|dog|elephant/I
134  Capturing subpattern count = 0  Capturing subpattern count = 0
135  No options  No options
136  No first char  No first char
# Line 131  No need char Line 140  No need char
140      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
141   0: elephant   0: elephant
142    
143  /cat|dog|elephant/S  /cat|dog|elephant/IS
144  Capturing subpattern count = 0  Capturing subpattern count = 0
145  No options  No options
146  No first char  No first char
147  No need char  No need char
148  Starting character set: c d e  Subject length lower bound = 3
149    Starting byte set: c d e
150      this sentence eventually mentions a cat      this sentence eventually mentions a cat
151   0: cat   0: cat
152      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
153   0: elephant   0: elephant
154    
155  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
156  Capturing subpattern count = 0  Capturing subpattern count = 0
157  Options: caseless  Options: caseless
158  No first char  No first char
159  No need char  No need char
160  Starting character set: C D E c d e  Subject length lower bound = 3
161    Starting byte set: C D E c d e
162      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
163   0: CAT   0: CAT
164      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
165   0: elephant   0: elephant
166    
167  /a|[bcd]/S  /a|[bcd]/IS
168  Capturing subpattern count = 0  Capturing subpattern count = 0
169  No options  No options
170  No first char  No first char
171  No need char  No need char
172  Starting character set: a b c d  Subject length lower bound = 1
173    Starting byte set: a b c d
174    
175  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
176  Capturing subpattern count = 1  Capturing subpattern count = 1
177  No options  No options
178  No first char  No first char
179  No need char  No need char
180  Starting character set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Subject length lower bound = 1
181    Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
182    \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
183    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
184    ? @ 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 193  Starting character set: \x00 \x01 \x02 \
193    \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
194    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
195    
196  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
197  Capturing subpattern count = 1  Capturing subpattern count = 1
198  No options  No options
199  No first char  No first char
200  No need char  No need char
201  Starting character set: \x09 \x0a \x0b \x0c \x0d \x20 a b  Subject length lower bound = 1
202    Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
203    
204  /(ab\2)/  /(ab\2)/
205  Failed: back reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
206    
207  /{4,5}abc/  /{4,5}abc/
208  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
209    
210  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
211  Capturing subpattern count = 3  Capturing subpattern count = 3
212  Max back reference = 2  Max back reference = 2
213  No options  No options
# Line 218  Matched, but too many substrings Line 232  Matched, but too many substrings
232   0: abcb   0: abcb
233   1: a   1: a
234   2: b   2: b
235      \O12abcb      \O12abcb
236   0: abcb   0: abcb
237   1: a   1: a
238   2: b   2: b
239   3: c   3: c
240    
241  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
242  Capturing subpattern count = 3  Capturing subpattern count = 3
243  Max back reference = 2  Max back reference = 2
244  No options  No options
# Line 266  Matched, but too many substrings Line 280  Matched, but too many substrings
280   2: a   2: a
281   3: b   3: b
282    
283  /abc$/E  /abc$/IE
284  Capturing subpattern count = 0  Capturing subpattern count = 0
285  Options: dollar_endonly  Options: dollar_endonly
286  First char = 'a'  First char = 'a'
# Line 281  No match Line 295  No match
295  No match  No match
296    
297  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
298  Failed: back reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
299    
300  /the quick brown fox/  /the quick brown fox/I
301  Capturing subpattern count = 0  Capturing subpattern count = 0
302  No options  No options
303  First char = 't'  First char = 't'
# Line 293  Need char = 'x' Line 307  Need char = 'x'
307      this is a line with the quick brown fox      this is a line with the quick brown fox
308   0: the quick brown fox   0: the quick brown fox
309    
310  /the quick brown fox/A  /the quick brown fox/IA
311  Capturing subpattern count = 0  Capturing subpattern count = 0
312  Options: anchored  Options: anchored
313  No first char  No first char
314  Need char = 'x'  No need char
315      the quick brown fox      the quick brown fox
316   0: the quick brown fox   0: the quick brown fox
317      *** Failers      *** Failers
# Line 306  No match Line 320  No match
320  No match  No match
321    
322  /ab(?z)cd/  /ab(?z)cd/
323  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
324    
325  /^abc|def/  /^abc|def/I
326  Capturing subpattern count = 0  Capturing subpattern count = 0
327  No options  No options
328  No first char  No first char
# Line 318  No need char Line 332  No need char
332      abcdef\B      abcdef\B
333   0: def   0: def
334    
335  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
336  Capturing subpattern count = 3  Capturing subpattern count = 3
337  No options  No options
338  First char at start or follows \n  First char at start or follows newline
339  No need char  No need char
340      defabc      defabc
341   0: defabc   0: defabc
# Line 338  No need char Line 352  No need char
352   0: abc   0: abc
353      *** Failers      *** Failers
354  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
355    
356  /^abc|def/P  /^abc|def/P
357      abcdef      abcdef
358   0: abc   0: abc
# Line 354  No match: POSIX code 17: match failed Line 368  No match: POSIX code 17: match failed
368   0: def   0: def
369   1: def   1: def
370   3: def   3: def
371    
372  /the quick brown fox/P  /the quick brown fox/P
373      the quick brown fox      the quick brown fox
374   0: the quick brown fox   0: the quick brown fox
375      *** Failers      *** Failers
376  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
377      The Quick Brown Fox      The Quick Brown Fox
378  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
379    
380  /the quick brown fox/Pi  /the quick brown fox/Pi
381      the quick brown fox      the quick brown fox
382   0: the quick brown fox   0: the quick brown fox
383      The Quick Brown Fox      The Quick Brown Fox
384   0: The Quick Brown Fox   0: The Quick Brown Fox
385    
386  /abc.def/P  /abc.def/P
# Line 374  No match: POSIX code 17: match failed Line 388  No match: POSIX code 17: match failed
388  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
389      abc\ndef      abc\ndef
390  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
391    
392  /abc$/P  /abc$/P
393      abc      abc
394   0: abc   0: abc
395      abc\n      abc\n
396   0: abc   0: abc
397    
398  /(abc)\2/P  /(abc)\2/P
# Line 394  Failed: unmatched parentheses at offset Line 408  Failed: unmatched parentheses at offset
408  /a[]b/  /a[]b/
409  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
410    
411  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
412  Capturing subpattern count = 0  Capturing subpattern count = 0
413  No options  No options
414  No first char  No first char
415  No need char  No need char
416      co-processors, and for      co-processors, and for
417   0: -pr   0: -pr
418    
419  /<.*>/  /<.*>/I
420  Capturing subpattern count = 0  Capturing subpattern count = 0
421  No options  No options
422  First char = '<'  First char = '<'
# Line 410  Need char = '>' Line 424  Need char = '>'
424      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
425   0: <def>ghi<klm>   0: <def>ghi<klm>
426    
427  /<.*?>/  /<.*?>/I
428  Capturing subpattern count = 0  Capturing subpattern count = 0
429  No options  No options
430  First char = '<'  First char = '<'
# Line 418  Need char = '>' Line 432  Need char = '>'
432      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
433   0: <def>   0: <def>
434    
435  /<.*>/U  /<.*>/IU
436  Capturing subpattern count = 0  Capturing subpattern count = 0
437  Options: ungreedy  Options: ungreedy
438  First char = '<'  First char = '<'
439  Need char = '>'  Need char = '>'
440      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
441   0: <def>   0: <def>
442    
443  /<.*>(?U)/  /(?U)<.*>/I
444  Capturing subpattern count = 0  Capturing subpattern count = 0
445  Options: ungreedy  Options: ungreedy
446  First char = '<'  First char = '<'
# Line 434  Need char = '>' Line 448  Need char = '>'
448      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
449   0: <def>   0: <def>
450    
451  /<.*?>/U  /<.*?>/IU
452  Capturing subpattern count = 0  Capturing subpattern count = 0
453  Options: ungreedy  Options: ungreedy
454  First char = '<'  First char = '<'
455  Need char = '>'  Need char = '>'
456      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
457   0: <def>ghi<klm>   0: <def>ghi<klm>
458    
459  /={3,}/U  /={3,}/IU
460  Capturing subpattern count = 0  Capturing subpattern count = 0
461  Options: ungreedy  Options: ungreedy
462  First char = '='  First char = '='
463  Need char = '='  Need char = '='
464      abc========def      abc========def
465   0: ===   0: ===
466    
467  /(?U)={3,}?/  /(?U)={3,}?/I
468  Capturing subpattern count = 0  Capturing subpattern count = 0
469  Options: ungreedy  Options: ungreedy
470  First char = '='  First char = '='
471  Need char = '='  Need char = '='
472      abc========def      abc========def
473   0: ========   0: ========
474    
475  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
476  Capturing subpattern count = 0  Capturing subpattern count = 0
477  No options  No options
478  First char = 'f'  First char = 'f'
479  Need char = 'o'  Need char = 'o'
480      foo      foo
481   0: foo   0: foo
482      catfoo      catfoo
483   0: foo   0: foo
484      *** Failers      *** Failers
485  No match  No match
486      the barfoo      the barfoo
487  No match  No match
488      and cattlefoo      and cattlefoo
489  No match  No match
490    
491  /(?<=a+)b/  /(?<=a+)b/
# Line 483  Failed: lookbehind assertion is not fixe Line 497  Failed: lookbehind assertion is not fixe
497  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
498  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
499    
500  /(?i)abc/  /(?i)abc/I
501  Capturing subpattern count = 0  Capturing subpattern count = 0
502  Options: caseless  Options: caseless
503  First char = 'a'  First char = 'a' (caseless)
504  Need char = 'c'  Need char = 'c' (caseless)
505    
506  /(a|(?m)a)/  /(a|(?m)a)/I
507  Capturing subpattern count = 1  Capturing subpattern count = 1
508  No options  No options
509  First char = 'a'  First char = 'a'
510  No need char  No need char
511    
512  /(?i)^1234/  /(?i)^1234/I
513  Capturing subpattern count = 0  Capturing subpattern count = 0
514  Options: anchored caseless  Options: anchored caseless
515  No first char  No first char
516  Need char = '4'  No need char
517    
518  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
519  Capturing subpattern count = 1  Capturing subpattern count = 1
520  Options: anchored  Options: anchored
 Case state changes  
521  No first char  No first char
522  No need char  No need char
523    
524  /(?s).*/  /(?s).*/I
525  Capturing subpattern count = 0  Capturing subpattern count = 0
526  Options: anchored dotall  Options: anchored dotall
527  No first char  No first char
528  No need char  No need char
529    
530  /[abcd]/S  /[abcd]/IS
531  Capturing subpattern count = 0  Capturing subpattern count = 0
532  No options  No options
533  No first char  No first char
534  No need char  No need char
535  Starting character set: a b c d  Subject length lower bound = 1
536    Starting byte set: a b c d
537    
538  /(?i)[abcd]/S  /(?i)[abcd]/IS
539  Capturing subpattern count = 0  Capturing subpattern count = 0
540  Options: caseless  Options: caseless
541  No first char  No first char
542  No need char  No need char
543  Starting character set: A B C D a b c d  Subject length lower bound = 1
544    Starting byte set: A B C D a b c d
545    
546  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
547  Capturing subpattern count = 1  Capturing subpattern count = 1
548  Options: multiline  Options: multiline
549  No first char  No first char
550  No need char  No need char
551  Starting character set: b c x y  Subject length lower bound = 1
552    Starting byte set: b c x y
553    
554  /(^a|^b)/m  /(^a|^b)/Im
555  Capturing subpattern count = 1  Capturing subpattern count = 1
556  Options: multiline  Options: multiline
557  First char at start or follows \n  First char at start or follows newline
558  No need char  No need char
559    
560  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
561  Capturing subpattern count = 1  Capturing subpattern count = 1
562  Options: caseless multiline  Options: caseless multiline
563  First char at start or follows \n  First char at start or follows newline
564  No need char  No need char
565    
566  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 554  Failed: conditional group contains more Line 570  Failed: conditional group contains more
570  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
571    
572  /(?(1a)/  /(?(1a)/
573  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
574    
575    /(?(1a))/
576    Failed: reference to non-existent subpattern at offset 6
577    
578  /(?(?i))/  /(?(?i))/
579  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
580    
581  /(?(abc))/  /(?(abc))/
582  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
583    
584  /(?(?<ab))/  /(?(?<ab))/
585  Failed: unrecognized character after (?< at offset 2  Failed: syntax error in subpattern name (missing terminator) at offset 7
586    
587  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
588  Capturing subpattern count = 1  Capturing subpattern count = 1
589  Max back reference = 1  Max back reference = 1
590  No options  No options
591  First char = 'b'  First char = 'b'
592  Need char = 'h'  Need char = 'h'
593    
594  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
595  Capturing subpattern count = 1  Capturing subpattern count = 1
596  Max back reference = 1  Max back reference = 1
597  No options  No options
598  Case state changes  First char = 'b' (caseless)
599  No first char  Need char = 'h' (caseless)
 Need char = 'h'  
600    
601  /((?i)b)/DS  /((?i)b)/IDZS
602  ------------------------------------------------------------------  ------------------------------------------------------------------
603    0  16 Bra 0          Bra
604    3   8 Bra 1          CBra 1
605    6  01 Opt       01 Opt
606    8   1 b       NC b
607   11   8 Ket          Ket
608   14  00 Opt       00 Opt
609   16  16 Ket          Ket
610   19     End          End
611  ------------------------------------------------------------------  ------------------------------------------------------------------
612  Capturing subpattern count = 1  Capturing subpattern count = 1
613  No options  No options
614  Case state changes  First char = 'b' (caseless)
615  No first char  No need char
616  Need char = 'b'  Subject length lower bound = 1
617  Starting character set: B b  No set of starting bytes
618    
619  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
620  Capturing subpattern count = 1  Capturing subpattern count = 1
621  No options  No options
 Case state changes  
622  No first char  No first char
623  No need char  No need char
624  Starting character set: C a b c d  Subject length lower bound = 1
625    Starting byte set: C a b c d
626    
627  /a$/  /a$/I
628  Capturing subpattern count = 0  Capturing subpattern count = 0
629  No options  No options
630  First char = 'a'  First char = 'a'
# Line 615  No need char Line 633  No need char
633   0: a   0: a
634      a\n      a\n
635   0: a   0: a
636      *** Failers      *** Failers
637  No match  No match
638      \Za      \Za
639  No match  No match
640      \Za\n      \Za\n
641  No match  No match
642    
643  /a$/m  /a$/Im
644  Capturing subpattern count = 0  Capturing subpattern count = 0
645  Options: multiline  Options: multiline
646  First char = 'a'  First char = 'a'
# Line 631  No need char Line 649  No need char
649   0: a   0: a
650      a\n      a\n
651   0: a   0: a
652      \Za\n      \Za\n
653   0: a   0: a
654      *** Failers      *** Failers
655  No match  No match
656      \Za      \Za
657  No match  No match
658    
659  /\Aabc/m  /\Aabc/Im
660  Capturing subpattern count = 0  Capturing subpattern count = 0
661  Options: anchored multiline  Options: anchored multiline
662  No first char  No first char
663  Need char = 'c'  No need char
664    
665  /^abc/m  /^abc/Im
666  Capturing subpattern count = 0  Capturing subpattern count = 0
667  Options: multiline  Options: multiline
668  First char at start or follows \n  First char at start or follows newline
669  Need char = 'c'  Need char = 'c'
670    
671  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
672  Capturing subpattern count = 5  Capturing subpattern count = 5
673  Options: anchored  Options: anchored
674  No first char  No first char
675  Need char = 'a'  No need char
676    aaaaabbbbbcccccdef    aaaaabbbbbcccccdef
677   0: aaaaabbbbbcccccdef   0: aaaaabbbbbcccccdef
678   1: aaaaabbbbbcccccdef   1: aaaaabbbbbcccccdef
# Line 663  Need char = 'a' Line 681  Need char = 'a'
681   4: bbbbccccc   4: bbbbccccc
682   5: def   5: def
683    
684  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
685  Capturing subpattern count = 0  Capturing subpattern count = 0
686  No options  No options
687  No first char  No first char
688  No need char  No need char
689  Starting character set: a b  Subject length lower bound = 1
690    Starting byte set: a b
691    
692  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
693  Capturing subpattern count = 1  Capturing subpattern count = 1
694  No options  No options
695  No first char  No first char
696  Need char = 'a'  Need char = 'a'
697  Starting character set: a o  Subject length lower bound = 5
698    Starting byte set: a o
699    
700  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
701  Capturing subpattern count = 0  Capturing subpattern count = 0
702  No options  No options
703  No first char  No first char
704  No need char  No need char
705  Starting character set: a b  Subject length lower bound = 1
706    Starting byte set: a b
707    
708    /(?<=foo\n)^bar/Im
709    Capturing subpattern count = 0
710    Contains explicit CR or LF match
711    Options: multiline
712    No first char
713    Need char = 'r'
714        foo\nbarbar
715     0: bar
716        ***Failers
717    No match
718        rhubarb
719    No match
720        barbell
721    No match
722        abc\nbarton
723    No match
724    
725  /(?<=foo\n)^bar/m  /^(?<=foo\n)bar/Im
726  Capturing subpattern count = 0  Capturing subpattern count = 0
727    Contains explicit CR or LF match
728  Options: multiline  Options: multiline
729  First char at start or follows \n  First char at start or follows newline
730  Need char = 'r'  Need char = 'r'
731        foo\nbarbar
732     0: bar
733        ***Failers
734    No match
735        rhubarb
736    No match
737        barbell
738    No match
739        abc\nbarton
740    No match
741    
742  /(?>^abc)/m  /(?>^abc)/Im
743  Capturing subpattern count = 0  Capturing subpattern count = 0
744  Options: multiline  Options: multiline
745  First char at start or follows \n  First char at start or follows newline
746  Need char = 'c'  Need char = 'c'
747      abc      abc
748   0: abc   0: abc
# Line 701  Need char = 'c' Line 750  Need char = 'c'
750   0: abc   0: abc
751      *** Failers      *** Failers
752  No match  No match
753      defabc      defabc
754  No match  No match
755    
756  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 714  Failed: lookbehind assertion is not fixe Line 763  Failed: lookbehind assertion is not fixe
763  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
764    
765  /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'  
766    
767  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
768  Capturing subpattern count = 0  Capturing subpattern count = 0
769  No options  No options
770  First char = '-'  First char = '-'
# Line 732  Need char = 't' Line 777  Need char = 't'
777  No match  No match
778      cart      cart
779  No match  No match
780      horse-and-cart      horse-and-cart
781  No match  No match
782    
783  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
784  Capturing subpattern count = 0  Capturing subpattern count = 0
785  No options  No options
 Case state changes  
786  No first char  No first char
787  No need char  No need char
788    
789  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
790  Capturing subpattern count = 2  Capturing subpattern count = 2
791  No options  No options
792  First char at start or follows \n  First char at start or follows newline
793  No need char  No need char
794      alphabetabcd      alphabetabcd
795   0: alphabetabcd   0: alphabetabcd
# Line 755  No need char Line 799  No need char
799   1: <unset>   1: <unset>
800   2: xyz   2: xyz
801    
802  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
803  Capturing subpattern count = 0  Capturing subpattern count = 0
804  No options  No options
 Case state changes  
805  First char = 'Z'  First char = 'Z'
806  Need char = 'Z'  Need char = 'Z'
807      abxyZZ      abxyZZ
# Line 771  Need char = 'Z' Line 814  Need char = 'Z'
814   0: ZZ   0: ZZ
815      bZZ      bZZ
816   0: ZZ   0: ZZ
817      BZZ      BZZ
818   0: ZZ   0: ZZ
819      *** Failers      *** Failers
820  No match  No match
821      ZZ      ZZ
822  No match  No match
823      abXYZZ      abXYZZ
824  No match  No match
825      zzz      zzz
826  No match  No match
827      bzz      bzz
828  No match  No match
829    
830  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
831  Capturing subpattern count = 1  Capturing subpattern count = 1
832  No options  No options
833  First char = 'b'  First char = 'b'
834  Need char = 'r'  Need char = 'r'
835      bar      bar
836   0: bar   0: bar
837      foobbar      foobbar
838   0: bar   0: bar
839      *** Failers      *** Failers
840  No match  No match
841      fooabar      fooabar
842  No match  No match
843    
844  /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
845  Capturing subpattern count = 0  Capturing subpattern count = 0
846  No options  No options
847  First char = 'T'  First char = 'T'
848  Need char = 't'  Need char = 't'
849    
850  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
851  Capturing subpattern count = 1  Capturing subpattern count = 1
852  Options: anchored  Options: anchored
853  No first char  No first char
854  No need char  No need char
855      *** Failers      *** Failers
856  No match  No match
857      a      a
858  No match  No match
859    
860  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I
861  Capturing subpattern count = 0  Capturing subpattern count = 0
862  No options  No options
863  First char = 'T'  First char = 'T'
864  Need char = 'g'  Need char = 'g'
865    
866  /^(a\1?){4}$/  /^(a\1?){4}$/I
867  Capturing subpattern count = 1  Capturing subpattern count = 1
868  Max back reference = 1  Max back reference = 1
869  Options: anchored  Options: anchored
870  No first char  No first char
871  Need char = 'a'  No need char
872      aaaaaa      aaaaaa
873   0: aaaaaa   0: aaaaaa
874   1: aa   1: aa
875    
876  /These are syntax tests from Perl 5.005/  /These are syntax tests from Perl 5.005/I
877  Capturing subpattern count = 0  Capturing subpattern count = 0
878  No options  No options
879  First char = 'T'  First char = 'T'
# Line 864  Failed: nothing to repeat at offset 2 Line 907  Failed: nothing to repeat at offset 2
907  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
908    
909  /\1/  /\1/
910  Failed: back reference to non-existent subpattern at offset 2  Failed: reference to non-existent subpattern at offset 2
911    
912  /\2/  /\2/
913  Failed: back reference to non-existent subpattern at offset 2  Failed: reference to non-existent subpattern at offset 2
914    
915  /(a)|\2/  /(a)|\2/
916  Failed: back reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
917    
918  /a[b-a]/i  /a[b-a]/Ii
919  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
920    
921  /a[]b/i  /a[]b/Ii
922  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
923    
924  /a[/i  /a[/Ii
925  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
926    
927  /*a/i  /*a/Ii
928  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
929    
930  /(*)b/i  /(*)b/Ii
931  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
932    
933  /abc)/i  /abc)/Ii
934  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
935    
936  /(abc/i  /(abc/Ii
937  Failed: missing ) at offset 4  Failed: missing ) at offset 4
938    
939  /a**/i  /a**/Ii
940  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
941    
942  /)(/i  /)(/Ii
943  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
944    
945  /:(?:/  /:(?:/
946  Failed: missing ) at offset 4  Failed: missing ) at offset 4
947    
948  /(?<%)b/  /(?<%)b/
949  Failed: unrecognized character after (?< at offset 0  Failed: unrecognized character after (?< at offset 3
950    
951  /a(?{)b/  /a(?{)b/
952  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
953    
954  /a(?{{})b/  /a(?{{})b/
955  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
956    
957  /a(?{}})b/  /a(?{}})b/
958  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
959    
960  /a(?{"{"})b/  /a(?{"{"})b/
961  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
962    
963  /a(?{"{"}})b/  /a(?{"{"}})b/
964  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
965    
966  /(?(1?)a|b)/  /(?(1?)a|b)/
967  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  
968    
969  /[a[:xyz:/  /[a[:xyz:/
970  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 984  Failed: POSIX code 9: bad escape sequenc
984  /abc/\i  /abc/\i
985  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
986    
987  /(a)bc(d)/  /(a)bc(d)/I
988  Capturing subpattern count = 2  Capturing subpattern count = 2
989  No options  No options
990  First char = 'a'  First char = 'a'
# Line 963  Need char = 'd' Line 1003  Need char = 'd'
1003   1: a   1: a
1004   2: d   2: d
1005  copy substring 5 failed -7  copy substring 5 failed -7
1006    
1007  /(.{20})/  /(.{20})/I
1008  Capturing subpattern count = 1  Capturing subpattern count = 1
1009  No options  No options
1010  No first char  No first char
# Line 975  No need char Line 1015  No need char
1015      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1016   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1017   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1018  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1019      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1020   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1021   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1022   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1023    
1024  /(.{15})/  /(.{15})/I
1025  Capturing subpattern count = 1  Capturing subpattern count = 1
1026  No options  No options
1027  No first char  No first char
# Line 995  No need char Line 1035  No need char
1035   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1036   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1037    
1038  /(.{16})/  /(.{16})/I
1039  Capturing subpattern count = 1  Capturing subpattern count = 1
1040  No options  No options
1041  No first char  No first char
# Line 1006  No need char Line 1046  No need char
1046      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1047   0: abcdefghijklmnop   0: abcdefghijklmnop
1048   1: abcdefghijklmnop   1: abcdefghijklmnop
1049  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1050   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1051   0L abcdefghijklmnop   0L abcdefghijklmnop
1052   1L abcdefghijklmnop   1L abcdefghijklmnop
1053    
1054  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1055  Capturing subpattern count = 3  Capturing subpattern count = 3
1056  Options: anchored  Options: anchored
1057  No first char  No first char
1058  Need char = 'f'  No need char
1059      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1060   0: adef   0: adef
1061   1: a   1: a
1062   2: <unset>   2: <unset>
# Line 1029  get substring 4 failed -7 Line 1069  get substring 4 failed -7
1069   1L a   1L a
1070   2L   2L
1071   3L f   3L f
1072      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1073   0: bcdef   0: bcdef
1074   1: bc   1: bc
1075   2: bc   2: bc
# Line 1042  get substring 4 failed -7 Line 1082  get substring 4 failed -7
1082   1L bc   1L bc
1083   2L bc   2L bc
1084   3L f   3L f
1085      adefghijk\C0      adefghijk\C0
1086   0: adef   0: adef
1087   1: a   1: a
1088   2: <unset>   2: <unset>
1089   3: f   3: f
1090   0C adef (4)   0C adef (4)
1091    
1092  /^abc\00def/  /^abc\00def/I
1093  Capturing subpattern count = 0  Capturing subpattern count = 0
1094  Options: anchored  Options: anchored
1095  No first char  No first char
1096  Need char = 'f'  No need char
1097      abc\00def\L\C0      abc\00def\L\C0
1098   0: abc\x00def   0: abc\x00def
1099   0C abc (7)   0C abc (7)
1100   0L abc   0L abc
1101    
1102  /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]+
1103  )((?:[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]+
1104  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 428  
1105  Capturing subpattern count = 8  Capturing subpattern count = 8
1106    Contains explicit CR or LF match
1107  No options  No options
1108  First char = 'w'  First char = 'w'
1109  Need char = 'd'  Need char = 'd'
1110    
1111  /.*X/D  /.*X/IDZ
1112  ------------------------------------------------------------------  ------------------------------------------------------------------
1113    0   8 Bra 0          Bra
1114    3     Any*          Any*
1115    5   1 X          X
1116    8   8 Ket          Ket
1117   11     End          End
1118  ------------------------------------------------------------------  ------------------------------------------------------------------
1119  Capturing subpattern count = 0  Capturing subpattern count = 0
1120  No options  No options
1121  First char at start or follows \n  First char at start or follows newline
1122  Need char = 'X'  Need char = 'X'
1123    
1124  /.*X/Ds  /.*X/IDZs
1125  ------------------------------------------------------------------  ------------------------------------------------------------------
1126    0   8 Bra 0          Bra
1127    3     Any*          AllAny*
1128    5   1 X          X
1129    8   8 Ket          Ket
1130   11     End          End
1131  ------------------------------------------------------------------  ------------------------------------------------------------------
1132  Capturing subpattern count = 0  Capturing subpattern count = 0
1133  Options: anchored dotall  Options: anchored dotall
1134  No first char  No first char
1135  Need char = 'X'  Need char = 'X'
1136    
1137  /(.*X|^B)/D  /(.*X|^B)/IDZ
1138  ------------------------------------------------------------------  ------------------------------------------------------------------
1139    0  21 Bra 0          Bra
1140    3   8 Bra 1          CBra 1
1141    6     Any*          Any*
1142    8   1 X          X
1143   11   7 Alt          Alt
1144   14     ^          ^
1145   15   1 B          B
1146   18  15 Ket          Ket
1147   21  21 Ket          Ket
1148   24     End          End
1149  ------------------------------------------------------------------  ------------------------------------------------------------------
1150  Capturing subpattern count = 1  Capturing subpattern count = 1
1151  No options  No options
1152  First char at start or follows \n  First char at start or follows newline
1153  No need char  No need char
1154    
1155  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1156  ------------------------------------------------------------------  ------------------------------------------------------------------
1157    0  21 Bra 0          Bra
1158    3   8 Bra 1          CBra 1
1159    6     Any*          AllAny*
1160    8   1 X          X
1161   11   7 Alt          Alt
1162   14     ^          ^
1163   15   1 B          B
1164   18  15 Ket          Ket
1165   21  21 Ket          Ket
1166   24     End          End
1167  ------------------------------------------------------------------  ------------------------------------------------------------------
1168  Capturing subpattern count = 1  Capturing subpattern count = 1
1169  Options: anchored dotall  Options: anchored dotall
1170  No first char  No first char
1171  No need char  No need char
1172    
1173  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1174  ------------------------------------------------------------------  ------------------------------------------------------------------
1175    0  21 Bra 0          Bra
1176    3   8 Bra 1          CBra 1
1177    6     Any*          AllAny*
1178    8   1 X          X
1179   11   7 Alt          Alt
1180   14     ^          ^
1181   15   1 B          B
1182   18  15 Ket          Ket
1183   21  21 Ket          Ket
1184   24     End          End
1185  ------------------------------------------------------------------  ------------------------------------------------------------------
1186  Capturing subpattern count = 1  Capturing subpattern count = 1
1187  Options: anchored dotall  Options: anchored dotall
1188  No first char  No first char
1189  No need char  No need char
1190    
1191  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1192  ------------------------------------------------------------------  ------------------------------------------------------------------
1193    0  27 Bra 0          Bra
1194    3  10 Bra 0          Bra
1195    6  04 Opt       04 Opt
1196    8     Any*          AllAny*
1197   10   1 X          X
1198   13   9 Alt          Alt
1199   16  04 Opt       04 Opt
1200   18     ^          ^
1201   19   1 B          B
1202   22  19 Ket          Ket
1203   25  00 Opt       00 Opt
1204   27  27 Ket          Ket
1205   30     End          End
1206  ------------------------------------------------------------------  ------------------------------------------------------------------
1207  Capturing subpattern count = 0  Capturing subpattern count = 0
1208  No options  Options: anchored
1209  First char at start or follows \n  No first char
1210  No need char  No need char
1211    
1212  /\Biss\B/+  /\Biss\B/I+
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  No options  No options
1215  First char = 'i'  First char = 'i'
# Line 1178  Need char = 's' Line 1218  Need char = 's'
1218   0: iss   0: iss
1219   0+ issippi   0+ issippi
1220    
1221  /\Biss\B/+P  /\Biss\B/I+P
1222      Mississippi      Mississippi
1223   0: iss   0: iss
1224   0+ issippi   0+ issippi
1225    
1226  /iss/G+  /iss/IG+
1227  Capturing subpattern count = 0  Capturing subpattern count = 0
1228  No options  No options
1229  First char = 'i'  First char = 'i'
# Line 1194  Need char = 's' Line 1234  Need char = 's'
1234   0: iss   0: iss
1235   0+ ippi   0+ ippi
1236    
1237  /\Biss\B/G+  /\Biss\B/IG+
1238  Capturing subpattern count = 0  Capturing subpattern count = 0
1239  No options  No options
1240  First char = 'i'  First char = 'i'
# Line 1203  Need char = 's' Line 1243  Need char = 's'
1243   0: iss   0: iss
1244   0+ issippi   0+ issippi
1245    
1246  /\Biss\B/g+  /\Biss\B/Ig+
1247  Capturing subpattern count = 0  Capturing subpattern count = 0
1248  No options  No options
1249  First char = 'i'  First char = 'i'
# Line 1218  No match Line 1258  No match
1258      Mississippi\A      Mississippi\A
1259  No match  No match
1260    
1261  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1262  Capturing subpattern count = 0  Capturing subpattern count = 0
1263  No options  No options
1264  First char = 'i'  First char = 'i'
# Line 1229  Need char = 's' Line 1269  Need char = 's'
1269   0: iss   0: iss
1270   0+ ippi   0+ ippi
1271    
1272  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1273  Capturing subpattern count = 0  Capturing subpattern count = 0
1274  No options  No options
1275  First char = 'i'  First char = 'i'
# Line 1238  Need char = 's' Line 1278  Need char = 's'
1278   0: iss   0: iss
1279   0+ issippi   0+ issippi
1280    
1281  /^iss/g+  /^iss/Ig+
1282  Capturing subpattern count = 0  Capturing subpattern count = 0
1283  Options: anchored  Options: anchored
1284  No first char  No first char
1285  Need char = 's'  No need char
1286      ississippi      ississippi
1287   0: iss   0: iss
1288   0+ issippi   0+ issippi
1289    
1290  /.*iss/g+  /.*iss/Ig+
1291  Capturing subpattern count = 0  Capturing subpattern count = 0
1292  No options  No options
1293  First char at start or follows \n  First char at start or follows newline
1294  Need char = 's'  Need char = 's'
1295      abciss\nxyzisspqr      abciss\nxyzisspqr
1296   0: abciss   0: abciss
1297   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1298   0: xyziss   0: xyziss
1299   0+ pqr   0+ pqr
1300    
1301  /.i./+g  /.i./I+g
1302  Capturing subpattern count = 0  Capturing subpattern count = 0
1303  No options  No options
1304  No first char  No first char
# Line 1284  Need char = 'i' Line 1324  Need char = 'i'
1324   0+ river   0+ river
1325   0: riv   0: riv
1326   0+ er   0+ er
1327      Missouri river\A      Missouri river\A
1328   0: Mis   0: Mis
1329   0+ souri river   0+ souri river
1330    
1331  /^.is/+g  /^.is/I+g
1332  Capturing subpattern count = 0  Capturing subpattern count = 0
1333  Options: anchored  Options: anchored
1334  No first char  No first char
1335  Need char = 's'  No need char
1336      Mississippi      Mississippi
1337   0: Mis   0: Mis
1338   0+ sissippi   0+ sissippi
1339    
1340  /^ab\n/g+  /^ab\n/Ig+
1341  Capturing subpattern count = 0  Capturing subpattern count = 0
1342    Contains explicit CR or LF match
1343  Options: anchored  Options: anchored
1344  No first char  No first char
1345  Need char = 10  No need char
1346      ab\nab\ncd      ab\nab\ncd
1347   0: ab\x0a   0: ab\x0a
1348   0+ ab\x0acd   0+ ab\x0acd
1349    
1350  /^ab\n/mg+  /^ab\n/Img+
1351  Capturing subpattern count = 0  Capturing subpattern count = 0
1352    Contains explicit CR or LF match
1353  Options: multiline  Options: multiline
1354  First char at start or follows \n  First char at start or follows newline
1355  Need char = 10  Need char = 10
1356      ab\nab\ncd      ab\nab\ncd
1357   0: ab\x0a   0: ab\x0a
# Line 1317  Need char = 10 Line 1359  Need char = 10
1359   0: ab\x0a   0: ab\x0a
1360   0+ cd   0+ cd
1361    
1362  /abc/  /abc/I
1363  Capturing subpattern count = 0  Capturing subpattern count = 0
1364  No options  No options
1365  First char = 'a'  First char = 'a'
1366  Need char = 'c'  Need char = 'c'
1367    
1368  /abc|bac/  /abc|bac/I
1369  Capturing subpattern count = 0  Capturing subpattern count = 0
1370  No options  No options
1371  No first char  No first char
1372  Need char = 'c'  Need char = 'c'
1373    
1374  /(abc|bac)/  /(abc|bac)/I
1375  Capturing subpattern count = 1  Capturing subpattern count = 1
1376  No options  No options
1377  No first char  No first char
1378  Need char = 'c'  Need char = 'c'
1379    
1380  /(abc|(c|dc))/  /(abc|(c|dc))/I
1381  Capturing subpattern count = 2  Capturing subpattern count = 2
1382  No options  No options
1383  No first char  No first char
1384  Need char = 'c'  Need char = 'c'
1385    
1386  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1387  Capturing subpattern count = 2  Capturing subpattern count = 2
1388  No options  No options
1389  No first char  No first char
1390  Need char = 'c'  Need char = 'c'
1391    
1392  /a*/  /a*/I
1393  Capturing subpattern count = 0  Capturing subpattern count = 0
1394  No options  No options
1395  No first char  No first char
1396  No need char  No need char
1397    
1398  /a+/  /a+/I
1399  Capturing subpattern count = 0  Capturing subpattern count = 0
1400  No options  No options
1401  First char = 'a'  First char = 'a'
1402  No need char  No need char
1403    
1404  /(baa|a+)/  /(baa|a+)/I
1405  Capturing subpattern count = 1  Capturing subpattern count = 1
1406  No options  No options
1407  No first char  No first char
1408  Need char = 'a'  Need char = 'a'
1409    
1410  /a{0,3}/  /a{0,3}/I
1411  Capturing subpattern count = 0  Capturing subpattern count = 0
1412  No options  No options
1413  No first char  No first char
1414  No need char  No need char
1415    
1416  /baa{3,}/  /baa{3,}/I
1417  Capturing subpattern count = 0  Capturing subpattern count = 0
1418  No options  No options
1419  First char = 'b'  First char = 'b'
1420  Need char = 'a'  Need char = 'a'
1421    
1422  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1423  Capturing subpattern count = 1  Capturing subpattern count = 1
1424  No options  No options
1425  First char = '"'  First char = '"'
1426  Need char = '"'  Need char = '"'
1427    
1428  /(abc|ab[cd])/  /(abc|ab[cd])/I
1429  Capturing subpattern count = 1  Capturing subpattern count = 1
1430  No options  No options
1431  First char = 'a'  First char = 'a'
1432  No need char  No need char
1433    
1434  /(a|.)/  /(a|.)/I
1435  Capturing subpattern count = 1  Capturing subpattern count = 1
1436  No options  No options
1437  No first char  No first char
1438  No need char  No need char
1439    
1440  /a|ba|\w/  /a|ba|\w/I
1441  Capturing subpattern count = 0  Capturing subpattern count = 0
1442  No options  No options
1443  No first char  No first char
1444  No need char  No need char
1445    
1446  /abc(?=pqr)/  /abc(?=pqr)/I
1447  Capturing subpattern count = 0  Capturing subpattern count = 0
1448  No options  No options
1449  First char = 'a'  First char = 'a'
1450  Need char = 'r'  Need char = 'r'
1451    
1452  /...(?<=abc)/  /...(?<=abc)/I
1453  Capturing subpattern count = 0  Capturing subpattern count = 0
1454  No options  No options
1455  No first char  No first char
1456  No need char  No need char
1457    
1458  /abc(?!pqr)/  /abc(?!pqr)/I
1459  Capturing subpattern count = 0  Capturing subpattern count = 0
1460  No options  No options
1461  First char = 'a'  First char = 'a'
1462  Need char = 'c'  Need char = 'c'
1463    
1464  /ab./  /ab./I
1465  Capturing subpattern count = 0  Capturing subpattern count = 0
1466  No options  No options
1467  First char = 'a'  First char = 'a'
1468  Need char = 'b'  Need char = 'b'
1469    
1470  /ab[xyz]/  /ab[xyz]/I
1471  Capturing subpattern count = 0  Capturing subpattern count = 0
1472  No options  No options
1473  First char = 'a'  First char = 'a'
1474  Need char = 'b'  Need char = 'b'
1475    
1476  /abc*/  /abc*/I
1477  Capturing subpattern count = 0  Capturing subpattern count = 0
1478  No options  No options
1479  First char = 'a'  First char = 'a'
1480  Need char = 'b'  Need char = 'b'
1481    
1482  /ab.c*/  /ab.c*/I
1483  Capturing subpattern count = 0  Capturing subpattern count = 0
1484  No options  No options
1485  First char = 'a'  First char = 'a'
1486  Need char = 'b'  Need char = 'b'
1487    
1488  /a.c*/  /a.c*/I
1489  Capturing subpattern count = 0  Capturing subpattern count = 0
1490  No options  No options
1491  First char = 'a'  First char = 'a'
1492  No need char  No need char
1493    
1494  /.c*/  /.c*/I
1495  Capturing subpattern count = 0  Capturing subpattern count = 0
1496  No options  No options
1497  No first char  No first char
1498  No need char  No need char
1499    
1500  /ac*/  /ac*/I
1501  Capturing subpattern count = 0  Capturing subpattern count = 0
1502  No options  No options
1503  First char = 'a'  First char = 'a'
1504  No need char  No need char
1505    
1506  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1507  Capturing subpattern count = 1  Capturing subpattern count = 1
1508  No options  No options
1509  No first char  No first char
1510  No need char  No need char
1511    
1512  /a.c*|aba/  /a.c*|aba/I
1513  Capturing subpattern count = 0  Capturing subpattern count = 0
1514  No options  No options
1515  First char = 'a'  First char = 'a'
1516  No need char  No need char
1517    
1518  /.+a/  /.+a/I
1519  Capturing subpattern count = 0  Capturing subpattern count = 0
1520  No options  No options
1521  No first char  No first char
1522  Need char = 'a'  Need char = 'a'
1523    
1524  /(?=abcda)a.*/  /(?=abcda)a.*/I
1525  Capturing subpattern count = 0  Capturing subpattern count = 0
1526  No options  No options
1527  First char = 'a'  First char = 'a'
1528  No need char  Need char = 'a'
1529    
1530  /(?=a)a.*/  /(?=a)a.*/I
1531  Capturing subpattern count = 0  Capturing subpattern count = 0
1532  No options  No options
1533  First char = 'a'  First char = 'a'
1534  No need char  No need char
1535    
1536  /a(b)*/  /a(b)*/I
1537  Capturing subpattern count = 1  Capturing subpattern count = 1
1538  No options  No options
1539  First char = 'a'  First char = 'a'
1540  No need char  No need char
1541    
1542  /a\d*/  /a\d*/I
1543  Capturing subpattern count = 0  Capturing subpattern count = 0
1544  No options  No options
1545  First char = 'a'  First char = 'a'
1546  No need char  No need char
1547    
1548  /ab\d*/  /ab\d*/I
1549  Capturing subpattern count = 0  Capturing subpattern count = 0
1550  No options  No options
1551  First char = 'a'  First char = 'a'
1552  Need char = 'b'  Need char = 'b'
1553    
1554  /a(\d)*/  /a(\d)*/I
1555  Capturing subpattern count = 1  Capturing subpattern count = 1
1556  No options  No options
1557  First char = 'a'  First char = 'a'
1558  No need char  No need char
1559    
1560  /abcde{0,0}/  /abcde{0,0}/I
1561  Capturing subpattern count = 0  Capturing subpattern count = 0
1562  No options  No options
1563  First char = 'a'  First char = 'a'
1564  Need char = 'd'  Need char = 'd'
1565    
1566  /ab\d+/  /ab\d+/I
1567  Capturing subpattern count = 0  Capturing subpattern count = 0
1568  No options  No options
1569  First char = 'a'  First char = 'a'
1570  Need char = 'b'  Need char = 'b'
1571    
1572  /a(?(1)b)/  /a(?(1)b)(.)/I
1573  Capturing subpattern count = 0  Capturing subpattern count = 1
1574  No options  No options
1575  First char = 'a'  First char = 'a'
1576  No need char  No need char
1577    
1578  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1579  Capturing subpattern count = 0  Capturing subpattern count = 1
1580  No options  No options
1581  First char = 'a'  First char = 'a'
1582  Need char = 'g'  Need char = 'g'
1583    
1584  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1585  Capturing subpattern count = 0  Capturing subpattern count = 1
1586  No options  No options
1587  First char = 'a'  First char = 'a'
1588  No need char  No need char
1589    
1590  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1591  Capturing subpattern count = 0  Capturing subpattern count = 1
1592  No options  No options
1593  First char = 'a'  First char = 'a'
1594  Need char = 'g'  Need char = 'g'
1595    
1596  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1597  Capturing subpattern count = 0  Capturing subpattern count = 1
1598  No options  No options
1599  First char = 'a'  First char = 'a'
1600  Need char = 'b'  Need char = 'b'
1601    
1602  /ab\d{0}e/  /ab\d{0}e/I
1603  Capturing subpattern count = 0  Capturing subpattern count = 0
1604  No options  No options
1605  First char = 'a'  First char = 'a'
1606  Need char = 'e'  Need char = 'e'
1607    
1608  /a?b?/  /a?b?/I
1609  Capturing subpattern count = 0  Capturing subpattern count = 0
1610  No options  No options
1611  No first char  No first char
# Line 1578  No need char Line 1620  No need char
1620   0:   0:
1621      *** Failers      *** Failers
1622   0:   0:
1623      \N      \N
1624  No match  No match
1625    
1626  /|-/  /|-/I
1627  Capturing subpattern count = 0  Capturing subpattern count = 0
1628  No options  No options
1629  No first char  No first char
# Line 1594  No need char Line 1636  No need char
1636   0: -   0: -
1637      *** Failers      *** Failers
1638   0:   0:
1639      \Nabc      \Nabc
1640  No match  No match
1641    
1642  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/P
# Line 1623  No match Line 1665  No match
1665   1: bbbb   1: bbbb
1666   2: z   2: z
1667   3: z   3: z
1668    
1669  /^.?abcd/S  /^.?abcd/IS
1670  Capturing subpattern count = 0  Capturing subpattern count = 0
1671  Options: anchored  Options: anchored
1672  No first char  No first char
1673  Need char = 'd'  Need char = 'd'
1674  Study returned NULL  Subject length lower bound = 4
1675    No set of starting bytes
1676    
1677  /\(             # ( at start  /\(             # ( at start
1678    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1638  Study returned NULL Line 1681  Study returned NULL
1681    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1682    )*            # Zero or more contents    )*            # Zero or more contents
1683    \)            # Closing )    \)            # Closing )
1684    /x    /Ix
1685  Capturing subpattern count = 0  Capturing subpattern count = 0
1686  Options: extended  Options: extended
1687  First char = '('  First char = '('
# Line 1649  Need char = ')' Line 1692  Need char = ')'
1692   0: (abcd)   0: (abcd)
1693      xyz(abcd)      xyz(abcd)
1694   0: (abcd)   0: (abcd)
1695      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1696   0: (ab(xy)cd)   0: (ab(xy)cd)
1697      (ab(xycd)pqr      (ab(xycd)pqr
1698   0: (xycd)   0: (xycd)
1699      () abc ()      () abc ()
1700   0: ()   0: ()
1701      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1702   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1703      *** Failers      *** Failers
1704  No match  No match
1705      abcd      abcd
1706  No match  No match
1707      abcd)      abcd)
1708  No match  No match
1709      (abcd      (abcd
1710  No match  No match
1711    
1712  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1713  Capturing subpattern count = 1  Capturing subpattern count = 1
1714  Options: extended  Options: extended
1715  First char = '('  First char = '('
1716  Need char = ')'  Need char = ')'
1717      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1718   0: (ab(xy)cd)   0: (ab(xy)cd)
1719   1: cd   1: cd
1720      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1680  Need char = ')' Line 1723  Need char = ')'
1723   0: (x(y)z)   0: (x(y)z)
1724   1: z   1: z
1725    
1726  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1727  Capturing subpattern count = 0  Capturing subpattern count = 0
1728  Options: extended  Options: extended
1729  First char = '('  First char = '('
# Line 1689  Need char = ')' Line 1732  Need char = ')'
1732   0: (abcd)   0: (abcd)
1733      (ab(xy)cd)      (ab(xy)cd)
1734   0: (xy)   0: (xy)
1735      (a(b(c)d)e)      (a(b(c)d)e)
1736   0: (c)   0: (c)
1737      ((ab))      ((ab))
1738   0: ((ab))   0: ((ab))
1739      *** Failers      *** Failers
1740  No match  No match
1741      ()      ()
1742  No match  No match
1743    
1744  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1745  Capturing subpattern count = 0  Capturing subpattern count = 0
1746  Options: extended  Options: extended
1747  First char = '('  First char = '('
# Line 1708  Need char = ')' Line 1751  Need char = ')'
1751      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1752   0: (fsh)   0: (fsh)
1753    
1754  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1755  Capturing subpattern count = 1  Capturing subpattern count = 1
1756  Options: extended  Options: extended
1757  First char = '('  First char = '('
# Line 1717  Need char = ')' Line 1760  Need char = ')'
1760   0: (ab(xy)cd)   0: (ab(xy)cd)
1761   1: cd   1: cd
1762    
1763  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1764  Capturing subpattern count = 2  Capturing subpattern count = 2
1765  Options: extended  Options: extended
1766  First char = '('  First char = '('
# Line 1727  Need char = ')' Line 1770  Need char = ')'
1770   1: ab(xy)cd   1: ab(xy)cd
1771   2: cd   2: cd
1772    
1773  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1774  Capturing subpattern count = 3  Capturing subpattern count = 3
1775  Options: extended  Options: extended
1776  First char = '('  First char = '('
# Line 1743  Need char = ')' Line 1786  Need char = ')'
1786   2: ab(xy)cd   2: ab(xy)cd
1787   3: cd   3: cd
1788    
1789  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1790  Capturing subpattern count = 3  Capturing subpattern count = 3
1791  Options: extended  Options: extended
1792  First char = '('  First char = '('
# Line 1759  Need char = ')' Line 1802  Need char = ')'
1802   2: 123   2: 123
1803   3: cd   3: cd
1804    
1805  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1806  Capturing subpattern count = 11  Capturing subpattern count = 11
1807  Options: extended  Options: extended
1808  First char = '('  First char = '('
# Line 1778  Need char = ')' Line 1821  Need char = ')'
1821  10: ab(xy)cd  10: ab(xy)cd
1822  11: cd  11: cd
1823    
1824  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1825  Capturing subpattern count = 3  Capturing subpattern count = 3
1826  Options: extended  Options: extended
1827  First char = '('  First char = '('
# Line 1787  Need char = ')' Line 1830  Need char = ')'
1830   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1831   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1832   2: 123   2: 123
  3: <p>qrs  
1833    
1834  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1835  Capturing subpattern count = 3  Capturing subpattern count = 3
1836  Options: extended  Options: extended
1837  First char = '('  First char = '('
# Line 1805  Need char = ')' Line 1847  Need char = ')'
1847   2: ij   2: ij
1848   3: (cd(ef)gh)   3: (cd(ef)gh)
1849    
1850  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1851    ------------------------------------------------------------------
1852            Bra
1853            ^
1854            [0-9A-Za-z]
1855            Ket
1856            End
1857    ------------------------------------------------------------------
1858    Capturing subpattern count = 0
1859    Options: anchored
1860    No first char
1861    No need char
1862    
1863    /^[[:^alnum:]]/DZ
1864    ------------------------------------------------------------------
1865            Bra
1866            ^
1867            [\x00-/:-@[-`{-\xff] (neg)
1868            Ket
1869            End
1870    ------------------------------------------------------------------
1871    Capturing subpattern count = 0
1872    Options: anchored
1873    No first char
1874    No need char
1875    
1876    /^[[:alpha:]]/DZ
1877    ------------------------------------------------------------------
1878            Bra
1879            ^
1880            [A-Za-z]
1881            Ket
1882            End
1883    ------------------------------------------------------------------
1884    Capturing subpattern count = 0
1885    Options: anchored
1886    No first char
1887    No need char
1888    
1889    /^[[:^alpha:]]/DZ
1890    ------------------------------------------------------------------
1891            Bra
1892            ^
1893            [\x00-@[-`{-\xff] (neg)
1894            Ket
1895            End
1896    ------------------------------------------------------------------
1897    Capturing subpattern count = 0
1898    Options: anchored
1899    No first char
1900    No need char
1901    
1902    /[_[:alpha:]]/IS
1903    Capturing subpattern count = 0
1904    No options
1905    No first char
1906    No need char
1907    Subject length lower bound = 1
1908    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
1909      _ 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
1910    
1911    /^[[:ascii:]]/DZ
1912    ------------------------------------------------------------------
1913            Bra
1914            ^
1915            [\x00-\x7f]
1916            Ket
1917            End
1918    ------------------------------------------------------------------
1919    Capturing subpattern count = 0
1920    Options: anchored
1921    No first char
1922    No need char
1923    
1924    /^[[:^ascii:]]/DZ
1925    ------------------------------------------------------------------
1926            Bra
1927            ^
1928            [\x80-\xff] (neg)
1929            Ket
1930            End
1931    ------------------------------------------------------------------
1932    Capturing subpattern count = 0
1933    Options: anchored
1934    No first char
1935    No need char
1936    
1937    /^[[:blank:]]/DZ
1938  ------------------------------------------------------------------  ------------------------------------------------------------------
1939    0  37 Bra 0          Bra
1940    3     ^          ^
1941    4     [0-9A-Za-z]          [\x09 ]
1942   37  37 Ket          Ket
1943   40     End          End
1944  ------------------------------------------------------------------  ------------------------------------------------------------------
1945  Capturing subpattern count = 0  Capturing subpattern count = 0
1946  Options: anchored  Options: anchored
1947  No first char  No first char
1948  No need char  No need char
1949    
1950  /^[[:alpha:]]/D  /^[[:^blank:]]/DZ
1951  ------------------------------------------------------------------  ------------------------------------------------------------------
1952    0  37 Bra 0          Bra
1953    3     ^          ^
1954    4     [A-Za-z]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1955   37  37 Ket          Ket
1956   40     End          End
1957  ------------------------------------------------------------------  ------------------------------------------------------------------
1958  Capturing subpattern count = 0  Capturing subpattern count = 0
1959  Options: anchored  Options: anchored
1960  No first char  No first char
1961  No need char  No need char
1962    
1963  /^[[:ascii:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
1964    Capturing subpattern count = 0
1965    Contains explicit CR or LF match
1966    No options
1967    No first char
1968    No need char
1969    Subject length lower bound = 1
1970    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1971    
1972    /^[[:cntrl:]]/DZ
1973  ------------------------------------------------------------------  ------------------------------------------------------------------
1974    0  37 Bra 0          Bra
1975    3     ^          ^
1976    4     [\x00-\x7f]          [\x00-\x1f\x7f]
1977   37  37 Ket          Ket
1978   40     End          End
1979  ------------------------------------------------------------------  ------------------------------------------------------------------
1980  Capturing subpattern count = 0  Capturing subpattern count = 0
1981  Options: anchored  Options: anchored
1982  No first char  No first char
1983  No need char  No need char
1984    
1985  /^[[:cntrl:]]/D  /^[[:digit:]]/DZ
1986  ------------------------------------------------------------------  ------------------------------------------------------------------
1987    0  37 Bra 0          Bra
1988    3     ^          ^
1989    4     [\x00-\x1f\x7f]          [0-9]
1990   37  37 Ket          Ket
1991   40     End          End
1992  ------------------------------------------------------------------  ------------------------------------------------------------------
1993  Capturing subpattern count = 0  Capturing subpattern count = 0
1994  Options: anchored  Options: anchored
1995  No first char  No first char
1996  No need char  No need char
1997    
1998  /^[[:digit:]]/D  /^[[:graph:]]/DZ
1999  ------------------------------------------------------------------  ------------------------------------------------------------------
2000    0  37 Bra 0          Bra
2001    3     ^          ^
2002    4     [0-9]          [!-~]
2003   37  37 Ket          Ket
2004   40     End          End
2005  ------------------------------------------------------------------  ------------------------------------------------------------------
2006  Capturing subpattern count = 0  Capturing subpattern count = 0
2007  Options: anchored  Options: anchored
2008  No first char  No first char
2009  No need char  No need char
2010    
2011  /^[[:graph:]]/D  /^[[:lower:]]/DZ
2012  ------------------------------------------------------------------  ------------------------------------------------------------------
2013    0  37 Bra 0          Bra
2014    3     ^          ^
2015    4     [!-~]          [a-z]
2016   37  37 Ket          Ket
2017   40     End          End
2018  ------------------------------------------------------------------  ------------------------------------------------------------------
2019  Capturing subpattern count = 0  Capturing subpattern count = 0
2020  Options: anchored  Options: anchored
2021  No first char  No first char
2022  No need char  No need char
2023    
2024  /^[[:lower:]]/D  /^[[:print:]]/DZ
2025  ------------------------------------------------------------------  ------------------------------------------------------------------
2026    0  37 Bra 0          Bra
2027    3     ^          ^
2028    4     [a-z]          [ -~]
2029   37  37 Ket          Ket
2030   40     End          End
2031  ------------------------------------------------------------------  ------------------------------------------------------------------
2032  Capturing subpattern count = 0  Capturing subpattern count = 0
2033  Options: anchored  Options: anchored
2034  No first char  No first char
2035  No need char  No need char
2036    
2037  /^[[:print:]]/D  /^[[:punct:]]/DZ
2038  ------------------------------------------------------------------  ------------------------------------------------------------------
2039    0  37 Bra 0          Bra
2040    3     ^          ^
2041    4     [ -~]          [!-/:-@[-`{-~]
2042   37  37 Ket          Ket
2043   40     End          End
2044  ------------------------------------------------------------------  ------------------------------------------------------------------
2045  Capturing subpattern count = 0  Capturing subpattern count = 0
2046  Options: anchored  Options: anchored
2047  No first char  No first char
2048  No need char  No need char
2049    
2050  /^[[:punct:]]/D  /^[[:space:]]/DZ
2051  ------------------------------------------------------------------  ------------------------------------------------------------------
2052    0  37 Bra 0          Bra
2053    3     ^          ^
2054    4     [!-/:-@[-`{-~]          [\x09-\x0d ]
2055   37  37 Ket          Ket
2056   40     End          End
2057  ------------------------------------------------------------------  ------------------------------------------------------------------
2058  Capturing subpattern count = 0  Capturing subpattern count = 0
2059  Options: anchored  Options: anchored
2060  No first char  No first char
2061  No need char  No need char
2062    
2063  /^[[:space:]]/D  /^[[:upper:]]/DZ
2064  ------------------------------------------------------------------  ------------------------------------------------------------------
2065    0  37 Bra 0          Bra
2066    3     ^          ^
2067    4     [\x09-\x0d ]          [A-Z]
2068   37  37 Ket          Ket
2069   40     End          End
2070  ------------------------------------------------------------------  ------------------------------------------------------------------
2071  Capturing subpattern count = 0  Capturing subpattern count = 0
2072  Options: anchored  Options: anchored
2073  No first char  No first char
2074  No need char  No need char
2075    
2076  /^[[:upper:]]/D  /^[[:xdigit:]]/DZ
2077  ------------------------------------------------------------------  ------------------------------------------------------------------
2078    0  37 Bra 0          Bra
2079    3     ^          ^
2080    4     [A-Z]          [0-9A-Fa-f]
2081   37  37 Ket          Ket
2082   40     End          End
2083  ------------------------------------------------------------------  ------------------------------------------------------------------
2084  Capturing subpattern count = 0  Capturing subpattern count = 0
2085  Options: anchored  Options: anchored
2086  No first char  No first char
2087  No need char  No need char
2088    
2089  /^[[:xdigit:]]/D  /^[[:word:]]/DZ
2090  ------------------------------------------------------------------  ------------------------------------------------------------------
2091    0  37 Bra 0          Bra
2092    3     ^          ^
2093    4     [0-9A-Fa-f]          [0-9A-Z_a-z]
2094   37  37 Ket          Ket
2095   40     End          End
2096  ------------------------------------------------------------------  ------------------------------------------------------------------
2097  Capturing subpattern count = 0  Capturing subpattern count = 0
2098  Options: anchored  Options: anchored
2099  No first char  No first char
2100  No need char  No need char
2101    
2102  /^[[:word:]]/D  /^[[:^cntrl:]]/DZ
2103  ------------------------------------------------------------------  ------------------------------------------------------------------
2104    0  37 Bra 0          Bra
2105    3     ^          ^
2106    4     [0-9A-Z_a-z]          [ -~\x80-\xff] (neg)
2107   37  37 Ket          Ket
2108   40     End          End
2109  ------------------------------------------------------------------  ------------------------------------------------------------------
2110  Capturing subpattern count = 0  Capturing subpattern count = 0
2111  Options: anchored  Options: anchored
2112  No first char  No first char
2113  No need char  No need char
2114    
2115  /^[[:^cntrl:]]/D  /^[12[:^digit:]]/DZ
2116  ------------------------------------------------------------------  ------------------------------------------------------------------
2117    0  37 Bra 0          Bra
2118    3     ^          ^
2119    4     [ -~\x80-\xff]          [\x00-/12:-\xff] (neg)
2120   37  37 Ket          Ket
2121   40     End          End
2122  ------------------------------------------------------------------  ------------------------------------------------------------------
2123  Capturing subpattern count = 0  Capturing subpattern count = 0
2124  Options: anchored  Options: anchored
2125  No first char  No first char
2126  No need char  No need char
2127    
2128  /^[12[:^digit:]]/D  /^[[:^blank:]]/DZ
2129  ------------------------------------------------------------------  ------------------------------------------------------------------
2130    0  37 Bra 0          Bra
2131    3     ^          ^
2132    4     [\x00-/1-2:-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2133   37  37 Ket          Ket
2134   40     End          End
2135  ------------------------------------------------------------------  ------------------------------------------------------------------
2136  Capturing subpattern count = 0  Capturing subpattern count = 0
2137  Options: anchored  Options: anchored
2138  No first char  No first char
2139  No need char  No need char
2140    
2141  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2142  ------------------------------------------------------------------  ------------------------------------------------------------------
2143    0  36 Bra 0          Bra
2144    3     [%0-1A-Za-z]          [%01A-Za-z]
2145   36  36 Ket          Ket
2146   39     End          End
2147  ------------------------------------------------------------------  ------------------------------------------------------------------
2148  Capturing subpattern count = 0  Capturing subpattern count = 0
2149  No options  No options
2150  No first char  No first char
2151  No need char  No need char
2152    
2153  /[[.ch.]]/  /[[.ch.]]/I
2154  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2155    
2156  /[[=ch=]]/  /[[=ch=]]/I
2157  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2158    
2159  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2160  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2161    
2162  /[[:upper:]]/i  /[[:upper:]]/Ii
2163  Capturing subpattern count = 0  Capturing subpattern count = 0
2164  Options: caseless  Options: caseless
2165  No first char  No first char
2166  No need char  No need char
2167      A      A
2168   0: A   0: A
2169      a      a
2170   0: a   0: a
2171    
2172  /[[:lower:]]/i  /[[:lower:]]/Ii
2173  Capturing subpattern count = 0  Capturing subpattern count = 0
2174  Options: caseless  Options: caseless
2175  No first char  No first char
2176  No need char  No need char
2177      A      A
2178   0: A   0: A
2179      a      a
2180   0: a   0: a
2181    
2182  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2183  Capturing subpattern count = 1  Capturing subpattern count = 1
2184  Options: caseless  Options: caseless
 Case state changes  
2185  No first char  No first char
2186  No need char  No need char
2187      ab      ab
# Line 2058  No need char Line 2195  No need char
2195   1: a   1: a
2196      Ab      Ab
2197  No match  No match
2198      AB      AB
2199  No match  No match
2200    
2201  /[\200-\410]/  /[\200-\110]/I
2202  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2203    
2204  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2205  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2206    
2207  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2208  Capturing subpattern count = 0  Capturing subpattern count = 0
2209  No options  No options
2210  First char = 'T'  First char = 'T'
2211  Need char = 'd'  Need char = 'd'
2212    
2213  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2214  Capturing subpattern count = 271  Capturing subpattern count = 271
2215  Max back reference = 270  Max back reference = 270
2216  No options  No options
# Line 2353  No need char Line 2490  No need char
2490  270: ABC  270: ABC
2491  271: ABC  271: ABC
2492    
2493  /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
2494  Capturing subpattern count = 0  Capturing subpattern count = 0
2495  No options  No options
2496  First char = 'T'  First char = 'T'
2497  Need char = 't'  Need char = 't'
2498    
2499  /(main(O)?)+/  /(main(O)?)+/I
2500  Capturing subpattern count = 2  Capturing subpattern count = 2
2501  No options  No options
2502  First char = 'm'  First char = 'm'
# Line 2371  Need char = 'n' Line 2508  Need char = 'n'
2508   0: mainOmain   0: mainOmain
2509   1: main   1: main
2510   2: O   2: O
2511    
2512  / End of testinput2 /  /These are all cases where Perl does it differently (nested captures)/I
2513  Capturing subpattern count = 0  Capturing subpattern count = 1
2514  No options  No options
2515  First char = ' '  First char = 'T'
2516  Need char = ' '  Need char = 's'
2517    
2518    /^(a(b)?)+$/I
2519    Capturing subpattern count = 2
2520    Options: anchored
2521    No first char
2522    No need char
2523        aba
2524     0: aba
2525     1: a
2526     2: b
2527    
2528    /^(aa(bb)?)+$/I
2529    Capturing subpattern count = 2
2530    Options: anchored
2531    No first char
2532    No need char
2533        aabbaa
2534     0: aabbaa
2535     1: aa
2536     2: bb
2537    
2538    /^(aa|aa(bb))+$/I
2539    Capturing subpattern count = 2
2540    Options: anchored
2541    No first char
2542    No need char
2543        aabbaa
2544     0: aabbaa
2545     1: aa
2546     2: bb
2547    
2548    /^(aa(bb)??)+$/I
2549    Capturing subpattern count = 2
2550    Options: anchored
2551    No first char
2552    No need char
2553        aabbaa
2554     0: aabbaa
2555     1: aa
2556     2: bb
2557    
2558    /^(?:aa(bb)?)+$/I
2559    Capturing subpattern count = 1
2560    Options: anchored
2561    No first char
2562    No need char
2563        aabbaa
2564     0: aabbaa
2565     1: bb
2566    
2567    /^(aa(b(b))?)+$/I
2568    Capturing subpattern count = 3
2569    Options: anchored
2570    No first char
2571    No need char
2572        aabbaa
2573     0: aabbaa
2574     1: aa
2575     2: bb
2576     3: b
2577    
2578    /^(?:aa(b(b))?)+$/I
2579    Capturing subpattern count = 2
2580    Options: anchored
2581    No first char
2582    No need char
2583        aabbaa
2584     0: aabbaa
2585     1: bb
2586     2: b
2587    
2588    /^(?:aa(b(?:b))?)+$/I
2589    Capturing subpattern count = 1
2590    Options: anchored
2591    No first char
2592    No need char
2593        aabbaa
2594     0: aabbaa
2595     1: bb
2596    
2597    /^(?:aa(bb(?:b))?)+$/I
2598    Capturing subpattern count = 1
2599    Options: anchored
2600    No first char
2601    No need char
2602        aabbbaa
2603     0: aabbbaa
2604     1: bbb
2605    
2606    /^(?:aa(b(?:bb))?)+$/I
2607    Capturing subpattern count = 1
2608    Options: anchored
2609    No first char
2610    No need char
2611        aabbbaa
2612     0: aabbbaa
2613     1: bbb
2614    
2615    /^(?:aa(?:b(b))?)+$/I
2616    Capturing subpattern count = 1
2617    Options: anchored
2618    No first char
2619    No need char
2620        aabbaa
2621     0: aabbaa
2622     1: b
2623    
2624    /^(?:aa(?:b(bb))?)+$/I
2625    Capturing subpattern count = 1
2626    Options: anchored
2627    No first char
2628    No need char
2629        aabbbaa
2630     0: aabbbaa
2631     1: bb
2632    
2633    /^(aa(b(bb))?)+$/I
2634    Capturing subpattern count = 3
2635    Options: anchored
2636    No first char
2637    No need char
2638        aabbbaa
2639     0: aabbbaa
2640     1: aa
2641     2: bbb
2642     3: bb
2643    
2644    /^(aa(bb(bb))?)+$/I
2645    Capturing subpattern count = 3
2646    Options: anchored
2647    No first char
2648    No need char
2649        aabbbbaa
2650     0: aabbbbaa
2651     1: aa
2652     2: bbbb
2653     3: bb
2654    
2655    /--------------------------------------------------------------------/I
2656    Capturing subpattern count = 0
2657    No options
2658    First char = '-'
2659    Need char = '-'
2660    
2661    /#/IxDZ
2662    ------------------------------------------------------------------
2663            Bra
2664            Ket
2665            End
2666    ------------------------------------------------------------------
2667    Capturing subpattern count = 0
2668    Options: extended
2669    No first char
2670    No need char
2671    
2672    /a#/IxDZ
2673    ------------------------------------------------------------------
2674            Bra
2675            a
2676            Ket
2677            End
2678    ------------------------------------------------------------------
2679    Capturing subpattern count = 0
2680    Options: extended
2681    First char = 'a'
2682    No need char
2683    
2684    /[\s]/DZ
2685    ------------------------------------------------------------------
2686            Bra
2687            [\x09\x0a\x0c\x0d ]
2688            Ket
2689            End
2690    ------------------------------------------------------------------
2691    Capturing subpattern count = 0
2692    No options
2693    No first char
2694    No need char
2695    
2696    /[\S]/DZ
2697    ------------------------------------------------------------------
2698            Bra
2699            [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2700            Ket
2701            End
2702    ------------------------------------------------------------------
2703    Capturing subpattern count = 0
2704    No options
2705    No first char
2706    No need char
2707    
2708    /a(?i)b/DZ
2709    ------------------------------------------------------------------
2710            Bra
2711            a
2712         01 Opt
2713         NC b
2714            Ket
2715            End
2716    ------------------------------------------------------------------
2717    Capturing subpattern count = 0
2718    No options
2719    First char = 'a'
2720    Need char = 'b' (caseless)
2721        ab
2722     0: ab
2723        aB
2724     0: aB
2725        *** Failers
2726    No match
2727        AB
2728    No match
2729    
2730    /(a(?i)b)/DZ
2731    ------------------------------------------------------------------
2732            Bra
2733            CBra 1
2734            a
2735         01 Opt
2736         NC b
2737            Ket
2738         00 Opt
2739            Ket
2740            End
2741    ------------------------------------------------------------------
2742    Capturing subpattern count = 1
2743    No options
2744    First char = 'a'
2745    Need char = 'b' (caseless)
2746        ab
2747     0: ab
2748     1: ab
2749        aB
2750     0: aB
2751     1: aB
2752        *** Failers
2753    No match
2754        AB
2755    No match
2756    
2757    /   (?i)abc/IxDZ
2758    ------------------------------------------------------------------
2759            Bra
2760         NC abc
2761            Ket
2762            End
2763    ------------------------------------------------------------------
2764    Capturing subpattern count = 0
2765    Options: caseless extended
2766    First char = 'a' (caseless)
2767    Need char = 'c' (caseless)
2768    
2769    /#this is a comment
2770      (?i)abc/IxDZ
2771    ------------------------------------------------------------------
2772            Bra
2773         NC abc
2774            Ket
2775            End
2776    ------------------------------------------------------------------
2777    Capturing subpattern count = 0
2778    Options: caseless extended
2779    First char = 'a' (caseless)
2780    Need char = 'c' (caseless)
2781    
2782    /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2783    ------------------------------------------------------------------
2784            Bra
2785            123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2786            Ket
2787            End
2788    ------------------------------------------------------------------
2789    Capturing subpattern count = 0
2790    No options
2791    First char = '1'
2792    Need char = '0'
2793    
2794    /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2795    ------------------------------------------------------------------
2796            Bra
2797            123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2798            Ket
2799            End
2800    ------------------------------------------------------------------
2801    Capturing subpattern count = 0
2802    No options
2803    First char = '1'
2804    Need char = '0'
2805    
2806    /\Q\E/DZ
2807    ------------------------------------------------------------------
2808            Bra
2809            Ket
2810            End
2811    ------------------------------------------------------------------
2812    Capturing subpattern count = 0
2813    No options
2814    No first char
2815    No need char
2816        \
2817     0:
2818    
2819    /\Q\Ex/DZ
2820    ------------------------------------------------------------------
2821            Bra
2822            x
2823            Ket
2824            End
2825    ------------------------------------------------------------------
2826    Capturing subpattern count = 0
2827    No options
2828    First char = 'x'
2829    No need char
2830    
2831    / \Q\E/DZ
2832    ------------------------------------------------------------------
2833            Bra
2834    
2835            Ket
2836            End
2837    ------------------------------------------------------------------
2838    Capturing subpattern count = 0
2839    No options
2840    First char = ' '
2841    No need char
2842    
2843    /a\Q\E/DZ
2844    ------------------------------------------------------------------
2845            Bra
2846            a
2847            Ket
2848            End
2849    ------------------------------------------------------------------
2850    Capturing subpattern count = 0
2851    No options
2852    First char = 'a'
2853    No need char
2854      abc
2855     0: a
2856      bca
2857     0: a
2858      bac
2859     0: a
2860    
2861    /a\Q\Eb/DZ
2862    ------------------------------------------------------------------
2863            Bra
2864            ab
2865            Ket
2866            End
2867    ------------------------------------------------------------------
2868    Capturing subpattern count = 0
2869    No options
2870    First char = 'a'
2871    Need char = 'b'
2872      abc
2873     0: ab
2874    
2875    /\Q\Eabc/DZ
2876    ------------------------------------------------------------------
2877            Bra
2878            abc
2879            Ket
2880            End
2881    ------------------------------------------------------------------
2882    Capturing subpattern count = 0
2883    No options
2884    First char = 'a'
2885    Need char = 'c'
2886    
2887    /x*+\w/DZ
2888    ------------------------------------------------------------------
2889            Bra
2890            x*+
2891            \w
2892            Ket
2893            End
2894    ------------------------------------------------------------------
2895    Capturing subpattern count = 0
2896    No options
2897    No first char
2898    No need char
2899        *** Failers
2900     0: F
2901        xxxxx
2902    No match
2903    
2904    /x?+/DZ
2905    ------------------------------------------------------------------
2906            Bra
2907            x?+
2908            Ket
2909            End
2910    ------------------------------------------------------------------
2911    Capturing subpattern count = 0
2912    No options
2913    No first char
2914    No need char
2915    
2916    /x++/DZ
2917    ------------------------------------------------------------------
2918            Bra
2919            x++
2920            Ket
2921            End
2922    ------------------------------------------------------------------
2923    Capturing subpattern count = 0
2924    No options
2925    First char = 'x'
2926    No need char
2927    
2928    /x{1,3}+/DZ
2929    ------------------------------------------------------------------
2930            Bra
2931            Once
2932            x
2933            x{0,2}
2934            Ket
2935            Ket
2936            End
2937    ------------------------------------------------------------------
2938    Capturing subpattern count = 0
2939    No options
2940    First char = 'x'
2941    No need char
2942    
2943    /(x)*+/DZ
2944    ------------------------------------------------------------------
2945            Bra
2946            Once
2947            Brazero
2948            CBra 1
2949            x
2950            KetRmax
2951            Ket
2952            Ket
2953            End
2954    ------------------------------------------------------------------
2955    Capturing subpattern count = 1
2956    No options
2957    No first char
2958    No need char
2959    
2960    /^(\w++|\s++)*$/I
2961    Capturing subpattern count = 1
2962    Options: anchored
2963    No first char
2964    No need char
2965        now is the time for all good men to come to the aid of the party
2966     0: now is the time for all good men to come to the aid of the party
2967     1: party
2968        *** Failers
2969    No match
2970        this is not a line with only words and spaces!
2971    No match
2972    
2973    /(\d++)(\w)/I
2974    Capturing subpattern count = 2
2975    No options
2976    No first char
2977    No need char
2978        12345a
2979     0: 12345a
2980     1: 12345
2981     2: a
2982        *** Failers
2983    No match
2984        12345+
2985    No match
2986    
2987    /a++b/I
2988    Capturing subpattern count = 0
2989    No options
2990    First char = 'a'
2991    Need char = 'b'
2992        aaab
2993     0: aaab
2994    
2995    /(a++b)/I
2996    Capturing subpattern count = 1
2997    No options
2998    First char = 'a'
2999    Need char = 'b'
3000        aaab
3001     0: aaab
3002     1: aaab
3003    
3004    /(a++)b/I
3005    Capturing subpattern count = 1
3006    No options
3007    First char = 'a'
3008    Need char = 'b'
3009        aaab
3010     0: aaab
3011     1: aaa
3012    
3013    /([^()]++|\([^()]*\))+/I
3014    Capturing subpattern count = 1
3015    No options
3016    No first char
3017    No need char
3018        ((abc(ade)ufh()()x
3019     0: abc(ade)ufh()()x
3020     1: x
3021    
3022    /\(([^()]++|\([^()]+\))+\)/I
3023    Capturing subpattern count = 1
3024    No options
3025    First char = '('
3026    Need char = ')'
3027        (abc)
3028     0: (abc)
3029     1: abc
3030        (abc(def)xyz)
3031     0: (abc(def)xyz)
3032     1: xyz
3033        *** Failers
3034    No match
3035        ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3036    No match
3037    
3038    /(abc){1,3}+/DZ
3039    ------------------------------------------------------------------
3040            Bra
3041            Once
3042            CBra 1
3043            abc
3044            Ket
3045            Brazero
3046            Bra
3047            CBra 1
3048            abc
3049            Ket
3050            Brazero
3051            CBra 1
3052            abc
3053            Ket
3054            Ket
3055            Ket
3056            Ket
3057            End
3058    ------------------------------------------------------------------
3059    Capturing subpattern count = 1
3060    No options
3061    First char = 'a'
3062    Need char = 'c'
3063    
3064    /a+?+/I
3065    Failed: nothing to repeat at offset 3
3066    
3067    /a{2,3}?+b/I
3068    Failed: nothing to repeat at offset 7
3069    
3070    /(?U)a+?+/I
3071    Failed: nothing to repeat at offset 7
3072    
3073    /a{2,3}?+b/IU
3074    Failed: nothing to repeat at offset 7
3075    
3076    /x(?U)a++b/DZ
3077    ------------------------------------------------------------------
3078            Bra
3079            x
3080            a++
3081            b
3082            Ket
3083            End
3084    ------------------------------------------------------------------
3085    Capturing subpattern count = 0
3086    No options
3087    First char = 'x'
3088    Need char = 'b'
3089        xaaaab
3090     0: xaaaab
3091    
3092    /(?U)xa++b/DZ
3093    ------------------------------------------------------------------
3094            Bra
3095            x
3096            a++
3097            b
3098            Ket
3099            End
3100    ------------------------------------------------------------------
3101    Capturing subpattern count = 0
3102    Options: ungreedy
3103    First char = 'x'
3104    Need char = 'b'
3105        xaaaab
3106     0: xaaaab
3107    
3108    /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3109    ------------------------------------------------------------------
3110            Bra
3111            ^
3112            CBra 1
3113            CBra 2
3114            a+
3115            Ket
3116            CBra 3
3117            [ab]+?
3118            Ket
3119            CBra 4
3120            [bc]+
3121            Ket
3122            CBra 5
3123            \w*
3124            Ket
3125            Ket
3126            Ket
3127            End
3128    ------------------------------------------------------------------
3129    Capturing subpattern count = 5
3130    Options: anchored
3131    No first char
3132    No need char
3133    
3134    /^x(?U)a+b/DZ
3135    ------------------------------------------------------------------
3136            Bra
3137            ^
3138            x
3139            a++
3140            b
3141            Ket
3142            End
3143    ------------------------------------------------------------------
3144    Capturing subpattern count = 0
3145    Options: anchored
3146    No first char
3147    Need char = 'b'
3148    
3149    /^x(?U)(a+)b/DZ
3150    ------------------------------------------------------------------
3151            Bra
3152            ^
3153            x
3154            CBra 1
3155            a+?
3156            Ket
3157            b
3158            Ket
3159            End
3160    ------------------------------------------------------------------
3161    Capturing subpattern count = 1
3162    Options: anchored
3163    No first char
3164    Need char = 'b'
3165    
3166    /[.x.]/I
3167    Failed: POSIX collating elements are not supported at offset 0
3168    
3169    /[=x=]/I
3170    Failed: POSIX collating elements are not supported at offset 0
3171    
3172    /[:x:]/I
3173    Failed: POSIX named classes are supported only within a class at offset 0
3174    
3175    /\l/I
3176    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3177    
3178    /\L/I
3179    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3180    
3181    /\N{name}/I
3182    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3183    
3184    /\u/I
3185    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3186    
3187    /\U/I
3188    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3189    
3190    /[/I
3191    Failed: missing terminating ] for character class at offset 1
3192    
3193    /[a-/I
3194    Failed: missing terminating ] for character class at offset 3
3195    
3196    /[[:space:]/I
3197    Failed: missing terminating ] for character class at offset 10
3198    
3199    /[\s]/IDZ
3200    ------------------------------------------------------------------
3201            Bra
3202            [\x09\x0a\x0c\x0d ]
3203            Ket
3204            End
3205    ------------------------------------------------------------------
3206    Capturing subpattern count = 0
3207    No options
3208    No first char
3209    No need char
3210    
3211    /[[:space:]]/IDZ
3212    ------------------------------------------------------------------
3213            Bra
3214            [\x09-\x0d ]
3215            Ket
3216            End
3217    ------------------------------------------------------------------
3218    Capturing subpattern count = 0
3219    No options
3220    No first char
3221    No need char
3222    
3223    /[[:space:]abcde]/IDZ
3224    ------------------------------------------------------------------
3225            Bra
3226            [\x09-\x0d a-e]
3227            Ket
3228            End
3229    ------------------------------------------------------------------
3230    Capturing subpattern count = 0
3231    No options
3232    No first char
3233    No need char
3234    
3235    /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3236    Capturing subpattern count = 0
3237    Options: extended
3238    First char = '<'
3239    Need char = '>'
3240        <>
3241     0: <>
3242        <abcd>
3243     0: <abcd>
3244        <abc <123> hij>
3245     0: <abc <123> hij>
3246        <abc <def> hij>
3247     0: <def>
3248        <abc<>def>
3249     0: <abc<>def>
3250        <abc<>
3251     0: <>
3252        *** Failers
3253    No match
3254        <abc
3255    No match
3256    
3257    |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
3258    ------------------------------------------------------------------
3259            Bra
3260            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
3261            \b
3262            Ket
3263            End
3264    ------------------------------------------------------------------
3265    Capturing subpattern count = 0
3266    No options
3267    First char = '8'
3268    Need char = 'X'
3269    
3270    |\$\<\.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
3271    ------------------------------------------------------------------
3272            Bra
3273            $<.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
3274            \b
3275            Ket
3276            End
3277    ------------------------------------------------------------------
3278    Capturing subpattern count = 0
3279    No options
3280    First char = '$'
3281    Need char = 'X'
3282    
3283    /(.*)\d+\1/I
3284    Capturing subpattern count = 1
3285    Max back reference = 1
3286    No options
3287    No first char
3288    No need char
3289    
3290    /(.*)\d+/I
3291    Capturing subpattern count = 1
3292    No options
3293    First char at start or follows newline
3294    No need char
3295    
3296    /(.*)\d+\1/Is
3297    Capturing subpattern count = 1
3298    Max back reference = 1
3299    Options: dotall
3300    No first char
3301    No need char
3302    
3303    /(.*)\d+/Is
3304    Capturing subpattern count = 1
3305    Options: anchored dotall
3306    No first char
3307    No need char
3308    
3309    /(.*(xyz))\d+\2/I
3310    Capturing subpattern count = 2
3311    Max back reference = 2
3312    No options
3313    First char at start or follows newline
3314    Need char = 'z'
3315    
3316    /((.*))\d+\1/I
3317    Capturing subpattern count = 2
3318    Max back reference = 1
3319    No options
3320    No first char
3321    No need char
3322        abc123bc
3323     0: bc123bc
3324     1: bc
3325     2: bc
3326    
3327    /a[b]/I
3328    Capturing subpattern count = 0
3329    No options
3330    First char = 'a'
3331    Need char = 'b'
3332    
3333    /(?=a).*/I
3334    Capturing subpattern count = 0
3335    No options
3336    First char = 'a'
3337    No need char
3338    
3339    /(?=abc).xyz/IiI
3340    Capturing subpattern count = 0
3341    Options: caseless
3342    First char = 'a' (caseless)
3343    Need char = 'z' (caseless)
3344    
3345    /(?=abc)(?i).xyz/I
3346    Capturing subpattern count = 0
3347    No options
3348    First char = 'a'
3349    Need char = 'z' (caseless)
3350    
3351    /(?=a)(?=b)/I
3352    Capturing subpattern count = 0
3353    No options
3354    First char = 'a'
3355    No need char
3356    
3357    /(?=.)a/I
3358    Capturing subpattern count = 0
3359    No options
3360    First char = 'a'
3361    No need char
3362    
3363    /((?=abcda)a)/I
3364    Capturing subpattern count = 1
3365    No options
3366    First char = 'a'
3367    Need char = 'a'
3368    
3369    /((?=abcda)ab)/I
3370    Capturing subpattern count = 1
3371    No options
3372    First char = 'a'
3373    Need char = 'b'
3374    
3375    /()a/I
3376    Capturing subpattern count = 1
3377    No options
3378    No first char
3379    Need char = 'a'
3380    
3381    /(?(1)ab|ac)(.)/I
3382    Capturing subpattern count = 1
3383    No options
3384    First char = 'a'
3385    No need char
3386    
3387    /(?(1)abz|acz)(.)/I
3388    Capturing subpattern count = 1
3389    No options
3390    First char = 'a'
3391    Need char = 'z'
3392    
3393    /(?(1)abz)(.)/I
3394    Capturing subpattern count = 1
3395    No options
3396    No first char
3397    No need char
3398    
3399    /(?(1)abz)(1)23/I
3400    Capturing subpattern count = 1
3401    No options
3402    No first char
3403    Need char = '3'
3404    
3405    /(a)+/I
3406    Capturing subpattern count = 1
3407    No options
3408    First char = 'a'
3409    No need char
3410    
3411    /(a){2,3}/I
3412    Capturing subpattern count = 1
3413    No options
3414    First char = 'a'
3415    Need char = 'a'
3416    
3417    /(a)*/I
3418    Capturing subpattern count = 1
3419    No options
3420    No first char
3421    No need char
3422    
3423    /[a]/I
3424    Capturing subpattern count = 0
3425    No options
3426    First char = 'a'
3427    No need char
3428    
3429    /[ab]/I
3430    Capturing subpattern count = 0
3431    No options
3432    No first char
3433    No need char
3434    
3435    /[ab]/IS
3436    Capturing subpattern count = 0
3437    No options
3438    No first char
3439    No need char
3440    Subject length lower bound = 1
3441    Starting byte set: a b
3442    
3443    /[^a]/I
3444    Capturing subpattern count = 0
3445    No options
3446    No first char
3447    No need char
3448    
3449    /\d456/I
3450    Capturing subpattern count = 0
3451    No options
3452    No first char
3453    Need char = '6'
3454    
3455    /\d456/IS
3456    Capturing subpattern count = 0
3457    No options
3458    No first char
3459    Need char = '6'
3460    Subject length lower bound = 4
3461    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3462    
3463    /a^b/I
3464    Capturing subpattern count = 0
3465    No options
3466    First char = 'a'
3467    Need char = 'b'
3468    
3469    /^a/Im
3470    Capturing subpattern count = 0
3471    Options: multiline
3472    First char at start or follows newline
3473    Need char = 'a'
3474      abcde
3475     0: a
3476      xy\nabc
3477     0: a
3478      *** Failers
3479    No match
3480      xyabc
3481    No match
3482    
3483    /c|abc/I
3484    Capturing subpattern count = 0
3485    No options
3486    No first char
3487    Need char = 'c'
3488    
3489    /(?i)[ab]/IS
3490    Capturing subpattern count = 0
3491    Options: caseless
3492    No first char
3493    No need char
3494    Subject length lower bound = 1
3495    Starting byte set: A B a b
3496    
3497    /[ab](?i)cd/IS
3498    Capturing subpattern count = 0
3499    No options
3500    No first char
3501    Need char = 'd' (caseless)
3502    Subject length lower bound = 3
3503    Starting byte set: a b
3504    
3505    /abc(?C)def/I
3506    Capturing subpattern count = 0
3507    No options
3508    First char = 'a'
3509    Need char = 'f'
3510        abcdef
3511    --->abcdef
3512      0 ^  ^       d
3513     0: abcdef
3514        1234abcdef
3515    --->1234abcdef
3516      0     ^  ^       d
3517     0: abcdef
3518        *** Failers
3519    No match
3520        abcxyz
3521    No match
3522        abcxyzf
3523    --->abcxyzf
3524      0 ^  ^        d
3525    No match
3526    
3527    /abc(?C)de(?C1)f/I
3528    Capturing subpattern count = 0
3529    No options
3530    First char = 'a'
3531    Need char = 'f'
3532        123abcdef
3533    --->123abcdef
3534      0    ^  ^       d
3535      1    ^    ^     f
3536     0: abcdef
3537    
3538    /(?C1)\dabc(?C2)def/I
3539    Capturing subpattern count = 0
3540    No options
3541    No first char
3542    Need char = 'f'
3543        1234abcdef
3544    --->1234abcdef
3545      1 ^              \d
3546      1  ^             \d
3547      1   ^            \d
3548      1    ^           \d
3549      2    ^   ^       d
3550     0: 4abcdef
3551        *** Failers
3552    No match
3553        abcdef
3554    --->abcdef
3555      1 ^          \d
3556      1  ^         \d
3557      1   ^        \d
3558      1    ^       \d
3559      1     ^      \d
3560      1      ^     \d
3561    No match
3562    
3563    /(?C255)ab/I
3564    Capturing subpattern count = 0
3565    No options
3566    First char = 'a'
3567    Need char = 'b'
3568    
3569    /(?C256)ab/I
3570    Failed: number after (?C is > 255 at offset 6
3571    
3572    /(?Cab)xx/I
3573    Failed: closing ) for (?C expected at offset 3
3574    
3575    /(?C12vr)x/I
3576    Failed: closing ) for (?C expected at offset 5
3577    
3578    /abc(?C)def/I
3579    Capturing subpattern count = 0
3580    No options
3581    First char = 'a'
3582    Need char = 'f'
3583        *** Failers
3584    No match
3585        \x83\x0\x61bcdef
3586    --->\x83\x00abcdef
3587      0         ^  ^       d
3588     0: abcdef
3589    
3590    /(abc)(?C)de(?C1)f/I
3591    Capturing subpattern count = 1
3592    No options
3593    First char = 'a'
3594    Need char = 'f'
3595        123abcdef
3596    --->123abcdef
3597      0    ^  ^       d
3598      1    ^    ^     f
3599     0: abcdef
3600     1: abc
3601        123abcdef\C+
3602    Callout 0: last capture = 1
3603     0: <unset>
3604     1: abc
3605    --->123abcdef
3606           ^  ^       d
3607    Callout 1: last capture = 1
3608     0: <unset>
3609     1: abc
3610    --->123abcdef
3611           ^    ^     f
3612     0: abcdef
3613     1: abc
3614        123abcdef\C-
3615     0: abcdef
3616     1: abc
3617        *** Failers
3618    No match
3619        123abcdef\C!1
3620    --->123abcdef
3621      0    ^  ^       d
3622      1    ^    ^     f
3623    No match
3624    
3625    /(?C0)(abc(?C1))*/I
3626    Capturing subpattern count = 1
3627    No options
3628    No first char
3629    No need char
3630        abcabcabc
3631    --->abcabcabc
3632      0 ^             (abc(?C1))*
3633      1 ^  ^          )
3634      1 ^     ^       )
3635      1 ^        ^    )
3636     0: abcabcabc
3637     1: abc
3638        abcabc\C!1!3
3639    --->abcabc
3640      0 ^          (abc(?C1))*
3641      1 ^  ^       )
3642      1 ^     ^    )
3643     0: abcabc
3644     1: abc
3645        *** Failers
3646    --->*** Failers
3647      0 ^               (abc(?C1))*
3648     0:
3649        abcabcabc\C!1!3
3650    --->abcabcabc
3651      0 ^             (abc(?C1))*
3652      1 ^  ^          )
3653      1 ^     ^       )
3654      1 ^        ^    )
3655     0: abcabc
3656     1: abc
3657    
3658    /(\d{3}(?C))*/I
3659    Capturing subpattern count = 1
3660    No options
3661    No first char
3662    No need char
3663        123\C+
3664    Callout 0: last capture = -1
3665     0: <unset>
3666    --->123
3667        ^  ^    )
3668     0: 123
3669     1: 123
3670        123456\C+
3671    Callout 0: last capture = -1
3672     0: <unset>
3673    --->123456
3674        ^  ^       )
3675    Callout 0: last capture = 1
3676     0: <unset>
3677     1: 123
3678    --->123456
3679        ^     ^    )
3680     0: 123456
3681     1: 456
3682        123456789\C+
3683    Callout 0: last capture = -1
3684     0: <unset>
3685    --->123456789
3686        ^  ^          )
3687    Callout 0: last capture = 1
3688     0: <unset>
3689     1: 123
3690    --->123456789
3691        ^     ^       )
3692    Callout 0: last capture = 1
3693     0: <unset>
3694     1: 456
3695    --->123456789
3696        ^        ^    )
3697     0: 123456789
3698     1: 789
3699    
3700    /((xyz)(?C)p|(?C1)xyzabc)/I
3701    Capturing subpattern count = 2
3702    No options
3703    First char = 'x'
3704    No need char
3705        xyzabc\C+
3706    Callout 0: last capture = 2
3707     0: <unset>
3708     1: <unset>
3709     2: xyz
3710    --->xyzabc
3711        ^  ^       p
3712    Callout 1: last capture = -1
3713     0: <unset>
3714    --->xyzabc
3715        ^          x
3716     0: xyzabc
3717     1: xyzabc
3718    
3719    /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3720    Capturing subpattern count = 3
3721    No options
3722    First char = 'X'
3723    Need char = 'x'
3724        Xxyzabc\C+
3725    Callout 0: last capture = 3
3726     0: <unset>
3727     1: X
3728     2: <unset>
3729     3: xyz
3730    --->Xxyzabc
3731        ^   ^       p
3732    Callout 1: last capture = 1
3733     0: <unset>
3734     1: X
3735    --->Xxyzabc
3736        ^^          x
3737     0: Xxyzabc
3738     1: X
3739     2: xyzabc
3740    
3741    /(?=(abc))(?C)abcdef/I
3742    Capturing subpattern count = 1
3743    No options
3744    First char = 'a'
3745    Need char = 'f'
3746        abcdef\C+
3747    Callout 0: last capture = 1
3748     0: <unset>
3749     1: abc
3750    --->abcdef
3751        ^          a
3752     0: abcdef
3753     1: abc
3754    
3755    /(?!(abc)(?C1)d)(?C2)abcxyz/I
3756    Capturing subpattern count = 1
3757    No options
3758    First char = 'a'
3759    Need char = 'z'
3760        abcxyz\C+
3761    Callout 1: last capture = 1
3762     0: <unset>
3763     1: abc
3764    --->abcxyz
3765        ^  ^       d
3766    Callout 2: last capture = -1
3767     0: <unset>
3768    --->abcxyz
3769        ^          a
3770     0: abcxyz
3771    
3772    /(?<=(abc)(?C))xyz/I
3773    Capturing subpattern count = 1
3774    No options
3775    First char = 'x'
3776    Need char = 'z'
3777       abcxyz\C+
3778    Callout 0: last capture = 1
3779     0: <unset>
3780     1: abc
3781    --->abcxyz
3782           ^       )
3783     0: xyz
3784     1: abc
3785    
3786    /a(b+)(c*)(?C1)/I
3787    Capturing subpattern count = 2
3788    No options
3789    First char = 'a'
3790    Need char = 'b'
3791        abbbbbccc\C*1
3792    --->abbbbbccc
3793      1 ^        ^
3794    Callout data = 1
3795      1 ^       ^
3796    Callout data = 1
3797      1 ^      ^
3798    Callout data = 1
3799      1 ^     ^
3800    Callout data = 1
3801      1 ^    ^
3802    Callout data = 1
3803      1 ^   ^
3804    Callout data = 1
3805      1 ^  ^
3806    Callout data = 1
3807      1 ^ ^
3808    Callout data = 1
3809    No match
3810    
3811    /a(b+?)(c*?)(?C1)/I
3812    Capturing subpattern count = 2
3813    No options
3814    First char = 'a'
3815    Need char = 'b'
3816        abbbbbccc\C*1
3817    --->abbbbbccc
3818      1 ^ ^
3819    Callout data = 1
3820      1 ^  ^
3821    Callout data = 1
3822      1 ^   ^
3823    Callout data = 1
3824      1 ^    ^
3825    Callout data = 1
3826      1 ^     ^
3827    Callout data = 1
3828      1 ^      ^
3829    Callout data = 1
3830      1 ^       ^
3831    Callout data = 1
3832      1 ^        ^
3833    Callout data = 1
3834    No match
3835    
3836    /(?C)abc/I
3837    Capturing subpattern count = 0
3838    No options
3839    First char = 'a'
3840    Need char = 'c'
3841    
3842    /(?C)^abc/I
3843    Capturing subpattern count = 0
3844    Options: anchored
3845    No first char
3846    No need char
3847    
3848    /(?C)a|b/IS
3849    Capturing subpattern count = 0
3850    No options
3851    No first char
3852    No need char
3853    Subject length lower bound = 1
3854    Starting byte set: a b
3855    
3856    /(?R)/I
3857    Failed: recursive call could loop indefinitely at offset 3
3858    
3859    /(a|(?R))/I
3860    Failed: recursive call could loop indefinitely at offset 6
3861    
3862    /(ab|(bc|(de|(?R))))/I
3863    Failed: recursive call could loop indefinitely at offset 15
3864    
3865    /x(ab|(bc|(de|(?R))))/I
3866    Capturing subpattern count = 3
3867    No options
3868    First char = 'x'
3869    No need char
3870        xab
3871     0: xab
3872     1: ab
3873        xbc
3874     0: xbc
3875     1: bc
3876     2: bc
3877        xde
3878     0: xde
3879     1: de
3880     2: de
3881     3: de
3882        xxab
3883     0: xxab
3884     1: xab
3885     2: xab
3886     3: xab
3887        xxxab
3888     0: xxxab
3889     1: xxab
3890     2: xxab
3891     3: xxab
3892        *** Failers
3893    No match
3894        xyab
3895    No match
3896    
3897    /(ab|(bc|(de|(?1))))/I
3898    Failed: recursive call could loop indefinitely at offset 15
3899    
3900    /x(ab|(bc|(de|(?1)x)x)x)/I
3901    Failed: recursive call could loop indefinitely at offset 16
3902    
3903    /^([^()]|\((?1)*\))*$/I
3904    Capturing subpattern count = 1
3905    Options: anchored
3906    No first char
3907    No need char
3908        abc
3909     0: abc
3910     1: c
3911        a(b)c
3912     0: a(b)c
3913     1: c
3914        a(b(c))d
3915     0: a(b(c))d
3916     1: d
3917        *** Failers)
3918    No match
3919        a(b(c)d
3920    No match
3921    
3922    /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3923    Capturing subpattern count = 1
3924    Options: anchored
3925    No first char
3926    Need char = '<'
3927       >abc>123<xyz<
3928     0: >abc>123<xyz<
3929     1: 3
3930       >abc>1(2)3<xyz<
3931     0: >abc>1(2)3<xyz<
3932     1: 3
3933       >abc>(1(2)3)<xyz<
3934     0: >abc>(1(2)3)<xyz<
3935     1: (1(2)3)
3936    
3937    /(a(?1)b)/DZ
3938    ------------------------------------------------------------------
3939            Bra
3940            CBra 1
3941            a
3942            Once
3943            Recurse
3944            Ket
3945            b
3946            Ket
3947            Ket
3948            End
3949    ------------------------------------------------------------------
3950    Capturing subpattern count = 1
3951    No options
3952    First char = 'a'
3953    Need char = 'b'
3954    
3955    /(a(?1)+b)/DZ
3956    ------------------------------------------------------------------
3957            Bra
3958            CBra 1
3959            a
3960            Once
3961            Recurse
3962            KetRmax
3963            b
3964            Ket
3965            Ket
3966            End
3967    ------------------------------------------------------------------
3968    Capturing subpattern count = 1
3969    No options
3970    First char = 'a'
3971    Need char = 'b'
3972    
3973    /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3974    Capturing subpattern count = 2
3975    Options: anchored
3976    No first char
3977    No need char
3978        12
3979     0: 12
3980     1: 12
3981        (((2+2)*-3)-7)
3982     0: (((2+2)*-3)-7)
3983     1: (((2+2)*-3)-7)
3984     2: -
3985        -12
3986     0: -12
3987     1: -12
3988        *** Failers
3989    No match
3990        ((2+2)*-3)-7)
3991    No match
3992    
3993    /^(x(y|(?1){2})z)/I
3994    Capturing subpattern count = 2
3995    Options: anchored
3996    No first char
3997    No need char
3998        xyz
3999     0: xyz
4000     1: xyz
4001     2: y
4002        xxyzxyzz
4003     0: xxyzxyzz
4004     1: xxyzxyzz
4005     2: xyzxyz
4006        *** Failers
4007    No match
4008        xxyzz
4009    No match
4010        xxyzxyzxyzz
4011    No match
4012    
4013    /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4014    Capturing subpattern count = 2
4015    Options: extended
4016    First char = '<'
4017    Need char = '>'
4018        <>
4019     0: <>
4020     1: <>
4021     2: <>
4022        <abcd>
4023     0: <abcd>
4024     1: <abcd>
4025     2: <abcd>
4026        <abc <123> hij>
4027     0: <abc <123> hij>
4028     1: <abc <123> hij>
4029     2: <abc <123> hij>
4030        <abc <def> hij>
4031     0: <def>
4032     1: <def>
4033     2: <def>
4034        <abc<>def>
4035     0: <abc<>def>
4036     1: <abc<>def>
4037     2: <abc<>def>
4038        <abc<>
4039     0: <>
4040     1: <>
4041     2: <>
4042        *** Failers
4043    No match
4044        <abc
4045    No match
4046    
4047    /(?1)/I
4048    Failed: reference to non-existent subpattern at offset 3
4049    
4050    /((?2)(abc)/I
4051    Failed: missing ) at offset 10
4052    
4053    /^(abc)def(?1)/I
4054    Capturing subpattern count = 1
4055    Options: anchored
4056    No first char
4057    No need char
4058        abcdefabc
4059     0: abcdefabc
4060     1: abc
4061    
4062    /^(a|b|c)=(?1)+/I
4063    Capturing subpattern count = 1
4064    Options: anchored
4065    No first char
4066    No need char
4067        a=a
4068     0: a=a
4069     1: a
4070        a=b
4071     0: a=b
4072     1: a
4073        a=bc
4074     0: a=bc
4075     1: a
4076    
4077    /^(a|b|c)=((?1))+/I
4078    Capturing subpattern count = 2
4079    Options: anchored
4080    No first char
4081    No need char
4082        a=a
4083     0: a=a
4084     1: a
4085     2: a
4086        a=b
4087     0: a=b
4088     1: a
4089     2: b
4090        a=bc
4091     0: a=bc
4092     1: a
4093     2: c
4094    
4095    /a(?P<name1>b|c)d(?P<longername2>e)/DZ