/[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 43 by nigel, Sat Feb 24 21:39:21 2007 UTC revision 426 by ph10, Wed Aug 26 15:38:32 2009 UTC
# Line 1  Line 1 
1  PCRE version 3.0 01-Feb-2000  /(a)b|/I
   
 /(a)b|/  
2  Capturing subpattern count = 1  Capturing subpattern count = 1
3  No options  No options
4  No first char  No first char
5  No need char  No need char
6    
7  /abc/  /abc/I
8  Capturing subpattern count = 0  Capturing subpattern count = 0
9  No options  No options
10  First char = 'a'  First char = 'a'
# Line 24  No match Line 22  No match
22      ABC      ABC
23  No match  No match
24    
25  /^abc/  /^abc/I
26  Capturing subpattern count = 0  Capturing subpattern count = 0
27  Options: anchored  Options: anchored
28  No first char  No first char
29  Need char = 'c'  No need char
30      abc      abc
31   0: abc   0: abc
32      \Aabc      \Aabc
# Line 40  No match Line 38  No match
38      \Adefabc      \Adefabc
39  No match  No match
40    
41  /a+bc/  /a+bc/I
42  Capturing subpattern count = 0  Capturing subpattern count = 0
43  No options  No options
44  First char = 'a'  First char = 'a'
45  Need char = 'c'  Need char = 'c'
46    
47  /a*bc/  /a*bc/I
48  Capturing subpattern count = 0  Capturing subpattern count = 0
49  No options  No options
50  No first char  No first char
51  Need char = 'c'  Need char = 'c'
52    
53  /a{3}bc/  /a{3}bc/I
54  Capturing subpattern count = 0  Capturing subpattern count = 0
55  No options  No options
56  First char = 'a'  First char = 'a'
57  Need char = 'c'  Need char = 'c'
58    
59  /(abc|a+z)/  /(abc|a+z)/I
60  Capturing subpattern count = 1  Capturing subpattern count = 1
61  No options  No options
62  First char = 'a'  First char = 'a'
63  No need char  No need char
64    
65  /^abc$/  /^abc$/I
66  Capturing subpattern count = 0  Capturing subpattern count = 0
67  Options: anchored  Options: anchored
68  No first char  No first char
69  Need char = 'c'  No need char
70      abc      abc
71   0: abc   0: abc
72      *** Failers      *** Failers
# Line 76  No match Line 74  No match
74      def\nabc      def\nabc
75  No match  No match
76    
77  /ab\gdef/X  /ab\idef/X
78  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
79    
80  /(?X)ab\gdef/X  /(?X)ab\idef/X
81  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
82    
83  /x{5,4}/  /x{5,4}/
# Line 91  Failed: number too big in {} quantifier Line 89  Failed: number too big in {} quantifier
89  /[abcd/  /[abcd/
90  Failed: missing terminating ] for character class at offset 5  Failed: missing terminating ] for character class at offset 5
91    
92  /[\B]/  /(?X)[\B]/
93  Failed: invalid escape sequence in character class at offset 2  Failed: invalid escape sequence in character class at offset 6
   
 /[a-\w]/  
 Failed: invalid escape sequence in character class at offset 4  
94    
95  /[z-a]/  /[z-a]/
96  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
# Line 110  Failed: missing ) at offset 4 Line 105  Failed: missing ) at offset 4
105  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
106    
107  /(?z)abc/  /(?z)abc/
108  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
109    
110  /.*b/  /.*b/I
111  Capturing subpattern count = 0  Capturing subpattern count = 0
112  No options  No options
113  First char at start or follows \n  First char at start or follows newline
114  Need char = 'b'  Need char = 'b'
115    
116  /.*?b/  /.*?b/I
117  Capturing subpattern count = 0  Capturing subpattern count = 0
118  No options  No options
119  First char at start or follows \n  First char at start or follows newline
120  Need char = 'b'  Need char = 'b'
121    
122  /cat|dog|elephant/  /cat|dog|elephant/I
123  Capturing subpattern count = 0  Capturing subpattern count = 0
124  No options  No options
125  No first char  No first char
# Line 134  No need char Line 129  No need char
129      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
130   0: elephant   0: elephant
131    
132  /cat|dog|elephant/S  /cat|dog|elephant/IS
133  Capturing subpattern count = 0  Capturing subpattern count = 0
134  No options  No options
135  No first char  No first char
136  No need char  No need char
137  Starting character set: c d e  Starting byte set: c d e
138      this sentence eventually mentions a cat      this sentence eventually mentions a cat
139   0: cat   0: cat
140      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
141   0: elephant   0: elephant
142    
143  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
144  Capturing subpattern count = 0  Capturing subpattern count = 0
145  Options: caseless  Options: caseless
146  No first char  No first char
147  No need char  No need char
148  Starting character set: C D E c d e  Starting byte set: C D E c d e
149      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
150   0: CAT   0: CAT
151      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
152   0: elephant   0: elephant
153    
154  /a|[bcd]/S  /a|[bcd]/IS
155  Capturing subpattern count = 0  Capturing subpattern count = 0
156  No options  No options
157  No first char  No first char
158  No need char  No need char
159  Starting character set: a b c d  Starting byte set: a b c d
160    
161  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
162  Capturing subpattern count = 1  Capturing subpattern count = 1
163  No options  No options
164  No first char  No first char
165  No need char  No need char
166  Starting character set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
167    \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
168    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
169    ? @ 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 183  Starting character set: \x00 \x01 \x02 \ Line 178  Starting character set: \x00 \x01 \x02 \
178    \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb    \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
179    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
180    
181  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
182  Capturing subpattern count = 1  Capturing subpattern count = 1
183  No options  No options
184  No first char  No first char
185  No need char  No need char
186  Starting character set: \x09 \x0a \x0b \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
187    
188  /(ab\2)/  /(ab\2)/
189  Failed: back reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
190    
191  /{4,5}abc/  /{4,5}abc/
192  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
193    
194  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
195  Capturing subpattern count = 3  Capturing subpattern count = 3
196  Max back reference = 2  Max back reference = 2
197  No options  No options
# Line 221  Matched, but too many substrings Line 216  Matched, but too many substrings
216   0: abcb   0: abcb
217   1: a   1: a
218   2: b   2: b
219      \O12abcb      \O12abcb
220   0: abcb   0: abcb
221   1: a   1: a
222   2: b   2: b
223   3: c   3: c
224    
225  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
226  Capturing subpattern count = 3  Capturing subpattern count = 3
227  Max back reference = 2  Max back reference = 2
228  No options  No options
# Line 269  Matched, but too many substrings Line 264  Matched, but too many substrings
264   2: a   2: a
265   3: b   3: b
266    
267  /abc$/E  /abc$/IE
268  Capturing subpattern count = 0  Capturing subpattern count = 0
269  Options: dollar_endonly  Options: dollar_endonly
270  First char = 'a'  First char = 'a'
# Line 284  No match Line 279  No match
279  No match  No match
280    
281  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
282  Failed: back reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
283    
284  /the quick brown fox/  /the quick brown fox/I
285  Capturing subpattern count = 0  Capturing subpattern count = 0
286  No options  No options
287  First char = 't'  First char = 't'
# Line 296  Need char = 'x' Line 291  Need char = 'x'
291      this is a line with the quick brown fox      this is a line with the quick brown fox
292   0: the quick brown fox   0: the quick brown fox
293    
294  /the quick brown fox/A  /the quick brown fox/IA
295  Capturing subpattern count = 0  Capturing subpattern count = 0
296  Options: anchored  Options: anchored
297  No first char  No first char
298  Need char = 'x'  No need char
299      the quick brown fox      the quick brown fox
300   0: the quick brown fox   0: the quick brown fox
301      *** Failers      *** Failers
# Line 309  No match Line 304  No match
304  No match  No match
305    
306  /ab(?z)cd/  /ab(?z)cd/
307  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
308    
309  /^abc|def/  /^abc|def/I
310  Capturing subpattern count = 0  Capturing subpattern count = 0
311  No options  No options
312  No first char  No first char
# Line 321  No need char Line 316  No need char
316      abcdef\B      abcdef\B
317   0: def   0: def
318    
319  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
320  Capturing subpattern count = 3  Capturing subpattern count = 3
321  No options  No options
322  First char at start or follows \n  First char at start or follows newline
323  No need char  No need char
324      defabc      defabc
325   0: defabc   0: defabc
# Line 336  No need char Line 331  No need char
331   2: <unset>   2: <unset>
332   3: def   3: def
333    
334  /abc/P  /abc/IP
335      abc      abc
336   0: abc   0: abc
337      *** Failers      *** Failers
338  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
339    
340  /^abc|def/P  /^abc|def/IP
341      abcdef      abcdef
342   0: abc   0: abc
343      abcdef\B      abcdef\B
344   0: def   0: def
345    
346  /.*((abc)$|(def))/P  /.*((abc)$|(def))/IP
347      defabc      defabc
348   0: defabc   0: defabc
349   1: abc   1: abc
# Line 357  No match: POSIX code 17: match failed Line 352  No match: POSIX code 17: match failed
352   0: def   0: def
353   1: def   1: def
354   3: def   3: def
355    
356  /the quick brown fox/P  /the quick brown fox/IP
357      the quick brown fox      the quick brown fox
358   0: the quick brown fox   0: the quick brown fox
359      *** Failers      *** Failers
360  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
361      The Quick Brown Fox      The Quick Brown Fox
362  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
363    
364  /the quick brown fox/Pi  /the quick brown fox/IPi
365      the quick brown fox      the quick brown fox
366   0: the quick brown fox   0: the quick brown fox
367      The Quick Brown Fox      The Quick Brown Fox
368   0: The Quick Brown Fox   0: The Quick Brown Fox
369    
370  /abc.def/P  /abc.def/IP
371      *** Failers      *** Failers
372  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
373      abc\ndef      abc\ndef
374  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
375    
376  /abc$/P  /abc$/IP
377      abc      abc
378   0: abc   0: abc
379      abc\n      abc\n
380   0: abc   0: abc
381    
382  /(abc)\2/P  /(abc)\2/IP
383  Failed: POSIX code 15: bad back reference at offset 7  Failed: POSIX code 15: bad back reference at offset 7
384    
385  /(abc\1)/P  /(abc\1)/IP
386      abc      abc
387  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
388    
# Line 397  Failed: unmatched parentheses at offset Line 392  Failed: unmatched parentheses at offset
392  /a[]b/  /a[]b/
393  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
394    
395  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
396  Capturing subpattern count = 0  Capturing subpattern count = 0
397  No options  No options
398  No first char  No first char
399  No need char  No need char
400      co-processors, and for      co-processors, and for
401   0: -pr   0: -pr
402    
403  /<.*>/  /<.*>/I
404  Capturing subpattern count = 0  Capturing subpattern count = 0
405  No options  No options
406  First char = '<'  First char = '<'
# Line 413  Need char = '>' Line 408  Need char = '>'
408      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
409   0: <def>ghi<klm>   0: <def>ghi<klm>
410    
411  /<.*?>/  /<.*?>/I
412  Capturing subpattern count = 0  Capturing subpattern count = 0
413  No options  No options
414  First char = '<'  First char = '<'
# Line 421  Need char = '>' Line 416  Need char = '>'
416      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
417   0: <def>   0: <def>
418    
419  /<.*>/U  /<.*>/IU
420  Capturing subpattern count = 0  Capturing subpattern count = 0
421  Options: ungreedy  Options: ungreedy
422  First char = '<'  First char = '<'
423  Need char = '>'  Need char = '>'
424      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
425   0: <def>   0: <def>
426    
427  /<.*>(?U)/  /(?U)<.*>/I
428  Capturing subpattern count = 0  Capturing subpattern count = 0
429  Options: ungreedy  Options: ungreedy
430  First char = '<'  First char = '<'
# Line 437  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>ghi<klm>   0: <def>ghi<klm>
442    
443  /={3,}/U  /={3,}/IU
444  Capturing subpattern count = 0  Capturing subpattern count = 0
445  Options: ungreedy  Options: ungreedy
446  First char = '='  First char = '='
447  Need char = '='  Need char = '='
448      abc========def      abc========def
449   0: ===   0: ===
450    
451  /(?U)={3,}?/  /(?U)={3,}?/I
452  Capturing subpattern count = 0  Capturing subpattern count = 0
453  Options: ungreedy  Options: ungreedy
454  First char = '='  First char = '='
455  Need char = '='  Need char = '='
456      abc========def      abc========def
457   0: ========   0: ========
458    
459  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
460  Capturing subpattern count = 0  Capturing subpattern count = 0
461  No options  No options
462  First char = 'f'  First char = 'f'
463  Need char = 'o'  Need char = 'o'
464      foo      foo
465   0: foo   0: foo
466      catfoo      catfoo
467   0: foo   0: foo
468      *** Failers      *** Failers
469  No match  No match
470      the barfoo      the barfoo
471  No match  No match
472      and cattlefoo      and cattlefoo
473  No match  No match
474    
475  /(?<=a+)b/  /(?<=a+)b/
# Line 486  Failed: lookbehind assertion is not fixe Line 481  Failed: lookbehind assertion is not fixe
481  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
482  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
483    
484  /(?i)abc/  /(?i)abc/I
485  Capturing subpattern count = 0  Capturing subpattern count = 0
486  Options: caseless  Options: caseless
487  First char = 'a'  First char = 'a' (caseless)
488  Need char = 'c'  Need char = 'c' (caseless)
489    
490  /(a|(?m)a)/  /(a|(?m)a)/I
491  Capturing subpattern count = 1  Capturing subpattern count = 1
492  No options  No options
493  First char = 'a'  First char = 'a'
494  No need char  No need char
495    
496  /(?i)^1234/  /(?i)^1234/I
497  Capturing subpattern count = 0  Capturing subpattern count = 0
498  Options: anchored caseless  Options: anchored caseless
499  No first char  No first char
500  Need char = '4'  No need char
501    
502  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
503  Capturing subpattern count = 1  Capturing subpattern count = 1
504  Options: anchored  Options: anchored
 Case state changes  
505  No first char  No first char
506  No need char  No need char
507    
508  /(?s).*/  /(?s).*/I
509  Capturing subpattern count = 0  Capturing subpattern count = 0
510  Options: anchored dotall  Options: anchored dotall
511  No first char  No first char
512  No need char  No need char
513    
514  /[abcd]/S  /[abcd]/IS
515  Capturing subpattern count = 0  Capturing subpattern count = 0
516  No options  No options
517  No first char  No first char
518  No need char  No need char
519  Starting character set: a b c d  Starting byte set: a b c d
520    
521  /(?i)[abcd]/S  /(?i)[abcd]/IS
522  Capturing subpattern count = 0  Capturing subpattern count = 0
523  Options: caseless  Options: caseless
524  No first char  No first char
525  No need char  No need char
526  Starting character set: A B C D a b c d  Starting byte set: A B C D a b c d
527    
528  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
529  Capturing subpattern count = 1  Capturing subpattern count = 1
530  Options: multiline  Options: multiline
531  No first char  No first char
532  No need char  No need char
533  Starting character set: b c x y  Starting byte set: b c x y
534    
535  /(^a|^b)/m  /(^a|^b)/Im
536  Capturing subpattern count = 1  Capturing subpattern count = 1
537  Options: multiline  Options: multiline
538  First char at start or follows \n  First char at start or follows newline
539  No need char  No need char
540    
541  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
542  Capturing subpattern count = 1  Capturing subpattern count = 1
543  Options: caseless multiline  Options: caseless multiline
544  First char at start or follows \n  First char at start or follows newline
545  No need char  No need char
546    
547  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 557  Failed: conditional group contains more Line 551  Failed: conditional group contains more
551  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
552    
553  /(?(1a)/  /(?(1a)/
554  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
555    
556    /(?(1a))/
557    Failed: reference to non-existent subpattern at offset 6
558    
559  /(?(?i))/  /(?(?i))/
560  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
561    
562  /(?(abc))/  /(?(abc))/
563  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
564    
565  /(?(?<ab))/  /(?(?<ab))/
566  Failed: unrecognized character after (?< at offset 2  Failed: syntax error in subpattern name (missing terminator) at offset 7
567    
568  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
569  Capturing subpattern count = 1  Capturing subpattern count = 1
570  Max back reference = 1  Max back reference = 1
571  No options  No options
572  First char = 'b'  First char = 'b'
573  Need char = 'h'  Need char = 'h'
574    
575  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
576  Capturing subpattern count = 1  Capturing subpattern count = 1
577  Max back reference = 1  Max back reference = 1
578  No options  No options
579  Case state changes  First char = 'b' (caseless)
580  No first char  Need char = 'h' (caseless)
 Need char = 'h'  
581    
582  /((?i)b)/DS  /((?i)b)/IDZS
583  ------------------------------------------------------------------  ------------------------------------------------------------------
584    0  16 Bra 0          Bra
585    3   8 Bra 1          CBra 1
586    6  01 Opt       01 Opt
587    8   1 b       NC b
588   11   8 Ket          Ket
589   14  00 Opt       00 Opt
590   16  16 Ket          Ket
591   19     End          End
592  ------------------------------------------------------------------  ------------------------------------------------------------------
593  Capturing subpattern count = 1  Capturing subpattern count = 1
594  No options  No options
595  Case state changes  First char = 'b' (caseless)
596  No first char  No need char
597  Need char = 'b'  Study returned NULL
 Starting character set: B b  
598    
599  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
600  Capturing subpattern count = 1  Capturing subpattern count = 1
601  No options  No options
 Case state changes  
602  No first char  No first char
603  No need char  No need char
604  Starting character set: C a b c d  Starting byte set: C a b c d
605    
606  /a$/  /a$/I
607  Capturing subpattern count = 0  Capturing subpattern count = 0
608  No options  No options
609  First char = 'a'  First char = 'a'
# Line 618  No need char Line 612  No need char
612   0: a   0: a
613      a\n      a\n
614   0: a   0: a
615      *** Failers      *** Failers
616  No match  No match
617      \Za      \Za
618  No match  No match
619      \Za\n      \Za\n
620  No match  No match
621    
622  /a$/m  /a$/Im
623  Capturing subpattern count = 0  Capturing subpattern count = 0
624  Options: multiline  Options: multiline
625  First char = 'a'  First char = 'a'
# Line 634  No need char Line 628  No need char
628   0: a   0: a
629      a\n      a\n
630   0: a   0: a
631      \Za\n      \Za\n
632   0: a   0: a
633      *** Failers      *** Failers
634  No match  No match
635      \Za      \Za
636  No match  No match
637    
638  /\Aabc/m  /\Aabc/Im
639  Capturing subpattern count = 0  Capturing subpattern count = 0
640  Options: anchored multiline  Options: anchored multiline
641  No first char  No first char
642  Need char = 'c'  No need char
643    
644  /^abc/m  /^abc/Im
645  Capturing subpattern count = 0  Capturing subpattern count = 0
646  Options: multiline  Options: multiline
647  First char at start or follows \n  First char at start or follows newline
648  Need char = 'c'  Need char = 'c'
649    
650  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
651  Capturing subpattern count = 5  Capturing subpattern count = 5
652  Options: anchored  Options: anchored
653  No first char  No first char
654  Need char = 'a'  No need char
655    aaaaabbbbbcccccdef    aaaaabbbbbcccccdef
656   0: aaaaabbbbbcccccdef   0: aaaaabbbbbcccccdef
657   1: aaaaabbbbbcccccdef   1: aaaaabbbbbcccccdef
# Line 666  Need char = 'a' Line 660  Need char = 'a'
660   4: bbbbccccc   4: bbbbccccc
661   5: def   5: def
662    
663  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
664  Capturing subpattern count = 0  Capturing subpattern count = 0
665  No options  No options
666  No first char  No first char
667  No need char  No need char
668  Starting character set: a b  Starting byte set: a b
669    
670  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
671  Capturing subpattern count = 1  Capturing subpattern count = 1
672  No options  No options
673  No first char  No first char
674  Need char = 'a'  Need char = 'a'
675  Starting character set: a o  Starting byte set: a o
676    
677  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
678  Capturing subpattern count = 0  Capturing subpattern count = 0
679  No options  No options
680  No first char  No first char
681  No need char  No need char
682  Starting character set: a b  Starting byte set: a b
683    
684    /(?<=foo\n)^bar/Im
685    Capturing subpattern count = 0
686    Contains explicit CR or LF match
687    Options: multiline
688    No first char
689    Need char = 'r'
690        foo\nbarbar
691     0: bar
692        ***Failers
693    No match
694        rhubarb
695    No match
696        barbell
697    No match
698        abc\nbarton
699    No match
700    
701  /(?<=foo\n)^bar/m  /^(?<=foo\n)bar/Im
702  Capturing subpattern count = 0  Capturing subpattern count = 0
703    Contains explicit CR or LF match
704  Options: multiline  Options: multiline
705  First char at start or follows \n  First char at start or follows newline
706  Need char = 'r'  Need char = 'r'
707        foo\nbarbar
708     0: bar
709        ***Failers
710    No match
711        rhubarb
712    No match
713        barbell
714    No match
715        abc\nbarton
716    No match
717    
718  /(?>^abc)/m  /(?>^abc)/Im
719  Capturing subpattern count = 0  Capturing subpattern count = 0
720  Options: multiline  Options: multiline
721  First char at start or follows \n  First char at start or follows newline
722  Need char = 'c'  Need char = 'c'
723      abc      abc
724   0: abc   0: abc
# Line 704  Need char = 'c' Line 726  Need char = 'c'
726   0: abc   0: abc
727      *** Failers      *** Failers
728  No match  No match
729      defabc      defabc
730  No match  No match
731    
732  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 717  Failed: lookbehind assertion is not fixe Line 739  Failed: lookbehind assertion is not fixe
739  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
740    
741  /The next three are in testinput2 because they have variable length branches/  /The next three are in testinput2 because they have variable length branches/
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 's'  
742    
743  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
744  Capturing subpattern count = 0  Capturing subpattern count = 0
745  No options  No options
746  First char = '-'  First char = '-'
# Line 735  Need char = 't' Line 753  Need char = 't'
753  No match  No match
754      cart      cart
755  No match  No match
756      horse-and-cart      horse-and-cart
757  No match  No match
758    
759  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
760  Capturing subpattern count = 0  Capturing subpattern count = 0
761  No options  No options
 Case state changes  
762  No first char  No first char
763  No need char  No need char
764    
765  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
766  Capturing subpattern count = 2  Capturing subpattern count = 2
767  No options  No options
768  First char at start or follows \n  First char at start or follows newline
769  No need char  No need char
770      alphabetabcd      alphabetabcd
771   0: alphabetabcd   0: alphabetabcd
# Line 758  No need char Line 775  No need char
775   1: <unset>   1: <unset>
776   2: xyz   2: xyz
777    
778  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
779  Capturing subpattern count = 0  Capturing subpattern count = 0
780  No options  No options
 Case state changes  
781  First char = 'Z'  First char = 'Z'
782  Need char = 'Z'  Need char = 'Z'
783      abxyZZ      abxyZZ
# Line 774  Need char = 'Z' Line 790  Need char = 'Z'
790   0: ZZ   0: ZZ
791      bZZ      bZZ
792   0: ZZ   0: ZZ
793      BZZ      BZZ
794   0: ZZ   0: ZZ
795      *** Failers      *** Failers
796  No match  No match
797      ZZ      ZZ
798  No match  No match
799      abXYZZ      abXYZZ
800  No match  No match
801      zzz      zzz
802  No match  No match
803      bzz      bzz
804  No match  No match
805    
806  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
807  Capturing subpattern count = 1  Capturing subpattern count = 1
808  No options  No options
809  First char = 'b'  First char = 'b'
810  Need char = 'r'  Need char = 'r'
811      bar      bar
812   0: bar   0: bar
813      foobbar      foobbar
814   0: bar   0: bar
815      *** Failers      *** Failers
816  No match  No match
817      fooabar      fooabar
818  No match  No match
819    
820  /This one is here because Perl 5.005_02 doesn't fail it/  /This one is here because Perl 5.005_02 doesn't fail it/I
821  Capturing subpattern count = 0  Capturing subpattern count = 0
822  No options  No options
823  First char = 'T'  First char = 'T'
824  Need char = 't'  Need char = 't'
825    
826  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
827  Capturing subpattern count = 1  Capturing subpattern count = 1
828  Options: anchored  Options: anchored
829  No first char  No first char
830  No need char  No need char
831      *** Failers      *** Failers
832  No match  No match
833      a      a
834  No match  No match
835    
836  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I
837  Capturing subpattern count = 0  Capturing subpattern count = 0
838  No options  No options
839  First char = 'T'  First char = 'T'
840  Need char = 'g'  Need char = 'g'
841    
842  /^(a\1?){4}$/  /^(a\1?){4}$/I
843  Capturing subpattern count = 1  Capturing subpattern count = 1
844  Max back reference = 1  Max back reference = 1
845  Options: anchored  Options: anchored
846  No first char  No first char
847  Need char = 'a'  No need char
848      aaaaaa      aaaaaa
849   0: aaaaaa   0: aaaaaa
850   1: aa   1: aa
851    
852  /These are syntax tests from Perl 5.005/  /These are syntax tests from Perl 5.005/I
853  Capturing subpattern count = 0  Capturing subpattern count = 0
854  No options  No options
855  First char = 'T'  First char = 'T'
# Line 867  Failed: nothing to repeat at offset 2 Line 883  Failed: nothing to repeat at offset 2
883  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
884    
885  /\1/  /\1/
886  Failed: back reference to non-existent subpattern at offset 2  Failed: reference to non-existent subpattern at offset 2
887    
888  /\2/  /\2/
889  Failed: back reference to non-existent subpattern at offset 2  Failed: reference to non-existent subpattern at offset 2
890    
891  /(a)|\2/  /(a)|\2/
892  Failed: back reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
893    
894  /a[b-a]/i  /a[b-a]/Ii
895  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
896    
897  /a[]b/i  /a[]b/Ii
898  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
899    
900  /a[/i  /a[/Ii
901  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
902    
903  /*a/i  /*a/Ii
904  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
905    
906  /(*)b/i  /(*)b/Ii
907  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
908    
909  /abc)/i  /abc)/Ii
910  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
911    
912  /(abc/i  /(abc/Ii
913  Failed: missing ) at offset 4  Failed: missing ) at offset 4
914    
915  /a**/i  /a**/Ii
916  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
917    
918  /)(/i  /)(/Ii
919  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
920    
921  /:(?:/  /:(?:/
922  Failed: missing ) at offset 4  Failed: missing ) at offset 4
923    
924  /(?<%)b/  /(?<%)b/
925  Failed: unrecognized character after (?< at offset 0  Failed: unrecognized character after (?< at offset 3
926    
927  /a(?{)b/  /a(?{)b/
928  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
929    
930  /a(?{{})b/  /a(?{{})b/
931  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
932    
933  /a(?{}})b/  /a(?{}})b/
934  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
935    
936  /a(?{"{"})b/  /a(?{"{"})b/
937  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
938    
939  /a(?{"{"}})b/  /a(?{"{"}})b/
940  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
941    
942  /(?(1?)a|b)/  /(?(1?)a|b)/
943  Failed: malformed number 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  
944    
945  /[a[:xyz:/  /[a[:xyz:/
946  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
# Line 947  Failed: POSIX code 9: bad escape sequenc Line 960  Failed: POSIX code 9: bad escape sequenc
960  /abc/\i  /abc/\i
961  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
962    
963  /(a)bc(d)/  /(a)bc(d)/I
964  Capturing subpattern count = 2  Capturing subpattern count = 2
965  No options  No options
966  First char = 'a'  First char = 'a'
# Line 966  Need char = 'd' Line 979  Need char = 'd'
979   1: a   1: a
980   2: d   2: d
981  copy substring 5 failed -7  copy substring 5 failed -7
982    
983  /(.{20})/  /(.{20})/I
984  Capturing subpattern count = 1  Capturing subpattern count = 1
985  No options  No options
986  No first char  No first char
# Line 978  No need char Line 991  No need char
991      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
992   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
993   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
994  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
995      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
996   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
997   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
998   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
999    
1000  /(.{15})/  /(.{15})/I
1001  Capturing subpattern count = 1  Capturing subpattern count = 1
1002  No options  No options
1003  No first char  No first char
# Line 998  No need char Line 1011  No need char
1011   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1012   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1013    
1014  /(.{16})/  /(.{16})/I
1015  Capturing subpattern count = 1  Capturing subpattern count = 1
1016  No options  No options
1017  No first char  No first char
# Line 1009  No need char Line 1022  No need char
1022      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1023   0: abcdefghijklmnop   0: abcdefghijklmnop
1024   1: abcdefghijklmnop   1: abcdefghijklmnop
1025  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1026   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1027   0L abcdefghijklmnop   0L abcdefghijklmnop
1028   1L abcdefghijklmnop   1L abcdefghijklmnop
1029    
1030  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1031  Capturing subpattern count = 3  Capturing subpattern count = 3
1032  Options: anchored  Options: anchored
1033  No first char  No first char
1034  Need char = 'f'  No need char
1035      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1036   0: adef   0: adef
1037   1: a   1: a
1038   2: <unset>   2: <unset>
# Line 1032  get substring 4 failed -7 Line 1045  get substring 4 failed -7
1045   1L a   1L a
1046   2L   2L
1047   3L f   3L f
1048      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1049   0: bcdef   0: bcdef
1050   1: bc   1: bc
1051   2: bc   2: bc
# Line 1045  get substring 4 failed -7 Line 1058  get substring 4 failed -7
1058   1L bc   1L bc
1059   2L bc   2L bc
1060   3L f   3L f
1061      adefghijk\C0      adefghijk\C0
1062   0: adef   0: adef
1063   1: a   1: a
1064   2: <unset>   2: <unset>
1065   3: f   3: f
1066   0C adef (4)   0C adef (4)
1067    
1068  /^abc\00def/  /^abc\00def/I
1069  Capturing subpattern count = 0  Capturing subpattern count = 0
1070  Options: anchored  Options: anchored
1071  No first char  No first char
1072  Need char = 'f'  No need char
1073      abc\00def\L\C0      abc\00def\L\C0
1074   0: abc\x00def   0: abc\x00def
1075   0C abc (7)   0C abc (7)
1076   0L abc   0L abc
1077    
1078  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1079  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1080  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 428  
1081  Capturing subpattern count = 8  Capturing subpattern count = 8
1082    Contains explicit CR or LF match
1083  No options  No options
1084  First char = 'w'  First char = 'w'
1085  Need char = 'd'  Need char = 'd'
1086    
1087  /.*X/D  /.*X/IDZ
1088  ------------------------------------------------------------------  ------------------------------------------------------------------
1089    0   8 Bra 0          Bra
1090    3     Any*          Any*
1091    5   1 X          X
1092    8   8 Ket          Ket
1093   11     End          End
1094  ------------------------------------------------------------------  ------------------------------------------------------------------
1095  Capturing subpattern count = 0  Capturing subpattern count = 0
1096  No options  No options
1097  First char at start or follows \n  First char at start or follows newline
1098  Need char = 'X'  Need char = 'X'
1099    
1100  /.*X/Ds  /.*X/IDZs
1101  ------------------------------------------------------------------  ------------------------------------------------------------------
1102    0   8 Bra 0          Bra
1103    3     Any*          AllAny*
1104    5   1 X          X
1105    8   8 Ket          Ket
1106   11     End          End
1107  ------------------------------------------------------------------  ------------------------------------------------------------------
1108  Capturing subpattern count = 0  Capturing subpattern count = 0
1109  Options: anchored dotall  Options: anchored dotall
1110  No first char  No first char
1111  Need char = 'X'  Need char = 'X'
1112    
1113  /(.*X|^B)/D  /(.*X|^B)/IDZ
1114  ------------------------------------------------------------------  ------------------------------------------------------------------
1115    0  21 Bra 0          Bra
1116    3   8 Bra 1          CBra 1
1117    6     Any*          Any*
1118    8   1 X          X
1119   11   7 Alt          Alt
1120   14     ^          ^
1121   15   1 B          B
1122   18  15 Ket          Ket
1123   21  21 Ket          Ket
1124   24     End          End
1125  ------------------------------------------------------------------  ------------------------------------------------------------------
1126  Capturing subpattern count = 1  Capturing subpattern count = 1
1127  No options  No options
1128  First char at start or follows \n  First char at start or follows newline
1129  No need char  No need char
1130    
1131  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1132  ------------------------------------------------------------------  ------------------------------------------------------------------
1133    0  21 Bra 0          Bra
1134    3   8 Bra 1          CBra 1
1135    6     Any*          AllAny*
1136    8   1 X          X
1137   11   7 Alt          Alt
1138   14     ^          ^
1139   15   1 B          B
1140   18  15 Ket          Ket
1141   21  21 Ket          Ket
1142   24     End          End
1143  ------------------------------------------------------------------  ------------------------------------------------------------------
1144  Capturing subpattern count = 1  Capturing subpattern count = 1
1145  Options: anchored dotall  Options: anchored dotall
1146  No first char  No first char
1147  No need char  No need char
1148    
1149  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1150  ------------------------------------------------------------------  ------------------------------------------------------------------
1151    0  21 Bra 0          Bra
1152    3   8 Bra 1          CBra 1
1153    6     Any*          AllAny*
1154    8   1 X          X
1155   11   7 Alt          Alt
1156   14     ^          ^
1157   15   1 B          B
1158   18  15 Ket          Ket
1159   21  21 Ket          Ket
1160   24     End          End
1161  ------------------------------------------------------------------  ------------------------------------------------------------------
1162  Capturing subpattern count = 1  Capturing subpattern count = 1
1163  Options: anchored dotall  Options: anchored dotall
1164  No first char  No first char
1165  No need char  No need char
1166    
1167  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1168  ------------------------------------------------------------------  ------------------------------------------------------------------
1169    0  27 Bra 0          Bra
1170    3  10 Bra 0          Bra
1171    6  04 Opt       04 Opt
1172    8     Any*          AllAny*
1173   10   1 X          X
1174   13   9 Alt          Alt
1175   16  04 Opt       04 Opt
1176   18     ^          ^
1177   19   1 B          B
1178   22  19 Ket          Ket
1179   25  00 Opt       00 Opt
1180   27  27 Ket          Ket
1181   30     End          End
1182  ------------------------------------------------------------------  ------------------------------------------------------------------
1183  Capturing subpattern count = 0  Capturing subpattern count = 0
1184  No options  Options: anchored
1185  First char at start or follows \n  No first char
1186  No need char  No need char
1187    
1188  /\Biss\B/+  /\Biss\B/I+
1189  Capturing subpattern count = 0  Capturing subpattern count = 0
1190  No options  No options
1191  First char = 'i'  First char = 'i'
# Line 1181  Need char = 's' Line 1194  Need char = 's'
1194   0: iss   0: iss
1195   0+ issippi   0+ issippi
1196    
1197  /\Biss\B/+P  /\Biss\B/I+P
1198      Mississippi      Mississippi
1199   0: iss   0: iss
1200   0+ issippi   0+ issippi
1201    
1202  /iss/G+  /iss/IG+
1203  Capturing subpattern count = 0  Capturing subpattern count = 0
1204  No options  No options
1205  First char = 'i'  First char = 'i'
# Line 1197  Need char = 's' Line 1210  Need char = 's'
1210   0: iss   0: iss
1211   0+ ippi   0+ ippi
1212    
1213  /\Biss\B/G+  /\Biss\B/IG+
1214  Capturing subpattern count = 0  Capturing subpattern count = 0
1215  No options  No options
1216  First char = 'i'  First char = 'i'
# Line 1206  Need char = 's' Line 1219  Need char = 's'
1219   0: iss   0: iss
1220   0+ issippi   0+ issippi
1221    
1222  /\Biss\B/g+  /\Biss\B/Ig+
1223  Capturing subpattern count = 0  Capturing subpattern count = 0
1224  No options  No options
1225  First char = 'i'  First char = 'i'
# Line 1221  No match Line 1234  No match
1234      Mississippi\A      Mississippi\A
1235  No match  No match
1236    
1237  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1238  Capturing subpattern count = 0  Capturing subpattern count = 0
1239  No options  No options
1240  First char = 'i'  First char = 'i'
# Line 1232  Need char = 's' Line 1245  Need char = 's'
1245   0: iss   0: iss
1246   0+ ippi   0+ ippi
1247    
1248  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1249  Capturing subpattern count = 0  Capturing subpattern count = 0
1250  No options  No options
1251  First char = 'i'  First char = 'i'
# Line 1241  Need char = 's' Line 1254  Need char = 's'
1254   0: iss   0: iss
1255   0+ issippi   0+ issippi
1256    
1257  /^iss/g+  /^iss/Ig+
1258  Capturing subpattern count = 0  Capturing subpattern count = 0
1259  Options: anchored  Options: anchored
1260  No first char  No first char
1261  Need char = 's'  No need char
1262      ississippi      ississippi
1263   0: iss   0: iss
1264   0+ issippi   0+ issippi
1265    
1266  /.*iss/g+  /.*iss/Ig+
1267  Capturing subpattern count = 0  Capturing subpattern count = 0
1268  No options  No options
1269  First char at start or follows \n  First char at start or follows newline
1270  Need char = 's'  Need char = 's'
1271      abciss\nxyzisspqr      abciss\nxyzisspqr
1272   0: abciss   0: abciss
1273   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1274   0: xyziss   0: xyziss
1275   0+ pqr   0+ pqr
1276    
1277  /.i./+g  /.i./I+g
1278  Capturing subpattern count = 0  Capturing subpattern count = 0
1279  No options  No options
1280  No first char  No first char
# Line 1287  Need char = 'i' Line 1300  Need char = 'i'
1300   0+ river   0+ river
1301   0: riv   0: riv
1302   0+ er   0+ er
1303      Missouri river\A      Missouri river\A
1304   0: Mis   0: Mis
1305   0+ souri river   0+ souri river
1306    
1307  /^.is/+g  /^.is/I+g
1308  Capturing subpattern count = 0  Capturing subpattern count = 0
1309  Options: anchored  Options: anchored
1310  No first char  No first char
1311  Need char = 's'  No need char
1312      Mississippi      Mississippi
1313   0: Mis   0: Mis
1314   0+ sissippi   0+ sissippi
1315    
1316  /^ab\n/g+  /^ab\n/Ig+
1317  Capturing subpattern count = 0  Capturing subpattern count = 0
1318    Contains explicit CR or LF match
1319  Options: anchored  Options: anchored
1320  No first char  No first char
1321  Need char = 10  No need char
1322      ab\nab\ncd      ab\nab\ncd
1323   0: ab\x0a   0: ab\x0a
1324   0+ ab\x0acd   0+ ab\x0acd
1325    
1326  /^ab\n/mg+  /^ab\n/Img+
1327  Capturing subpattern count = 0  Capturing subpattern count = 0
1328    Contains explicit CR or LF match
1329  Options: multiline  Options: multiline
1330  First char at start or follows \n  First char at start or follows newline
1331  Need char = 10  Need char = 10
1332      ab\nab\ncd      ab\nab\ncd
1333   0: ab\x0a   0: ab\x0a
# Line 1320  Need char = 10 Line 1335  Need char = 10
1335   0: ab\x0a   0: ab\x0a
1336   0+ cd   0+ cd
1337    
1338  /abc/  /abc/I
1339  Capturing subpattern count = 0  Capturing subpattern count = 0
1340  No options  No options
1341  First char = 'a'  First char = 'a'
1342  Need char = 'c'  Need char = 'c'
1343    
1344  /abc|bac/  /abc|bac/I
1345  Capturing subpattern count = 0  Capturing subpattern count = 0
1346  No options  No options
1347  No first char  No first char
1348  Need char = 'c'  Need char = 'c'
1349    
1350  /(abc|bac)/  /(abc|bac)/I
1351  Capturing subpattern count = 1  Capturing subpattern count = 1
1352  No options  No options
1353  No first char  No first char
1354  Need char = 'c'  Need char = 'c'
1355    
1356  /(abc|(c|dc))/  /(abc|(c|dc))/I
1357  Capturing subpattern count = 2  Capturing subpattern count = 2
1358  No options  No options
1359  No first char  No first char
1360  Need char = 'c'  Need char = 'c'
1361    
1362  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1363  Capturing subpattern count = 2  Capturing subpattern count = 2
1364  No options  No options
1365  No first char  No first char
1366  Need char = 'c'  Need char = 'c'
1367    
1368  /a*/  /a*/I
1369  Capturing subpattern count = 0  Capturing subpattern count = 0
1370  No options  No options
1371  No first char  No first char
1372  No need char  No need char
1373    
1374  /a+/  /a+/I
1375  Capturing subpattern count = 0  Capturing subpattern count = 0
1376  No options  No options
1377  First char = 'a'  First char = 'a'
1378  No need char  No need char
1379    
1380  /(baa|a+)/  /(baa|a+)/I
1381  Capturing subpattern count = 1  Capturing subpattern count = 1
1382  No options  No options
1383  No first char  No first char
1384  Need char = 'a'  Need char = 'a'
1385    
1386  /a{0,3}/  /a{0,3}/I
1387  Capturing subpattern count = 0  Capturing subpattern count = 0
1388  No options  No options
1389  No first char  No first char
1390  No need char  No need char
1391    
1392  /baa{3,}/  /baa{3,}/I
1393  Capturing subpattern count = 0  Capturing subpattern count = 0
1394  No options  No options
1395  First char = 'b'  First char = 'b'
1396  Need char = 'a'  Need char = 'a'
1397    
1398  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1399  Capturing subpattern count = 1  Capturing subpattern count = 1
1400  No options  No options
1401  First char = '"'  First char = '"'
1402  Need char = '"'  Need char = '"'
1403    
1404  /(abc|ab[cd])/  /(abc|ab[cd])/I
1405  Capturing subpattern count = 1  Capturing subpattern count = 1
1406  No options  No options
1407  First char = 'a'  First char = 'a'
1408  No need char  No need char
1409    
1410  /(a|.)/  /(a|.)/I
1411  Capturing subpattern count = 1  Capturing subpattern count = 1
1412  No options  No options
1413  No first char  No first char
1414  No need char  No need char
1415    
1416  /a|ba|\w/  /a|ba|\w/I
1417  Capturing subpattern count = 0  Capturing subpattern count = 0
1418  No options  No options
1419  No first char  No first char
1420  No need char  No need char
1421    
1422  /abc(?=pqr)/  /abc(?=pqr)/I
1423  Capturing subpattern count = 0  Capturing subpattern count = 0
1424  No options  No options
1425  First char = 'a'  First char = 'a'
1426  Need char = 'r'  Need char = 'r'
1427    
1428  /...(?<=abc)/  /...(?<=abc)/I
1429  Capturing subpattern count = 0  Capturing subpattern count = 0
1430  No options  No options
1431  No first char  No first char
1432  No need char  No need char
1433    
1434  /abc(?!pqr)/  /abc(?!pqr)/I
1435  Capturing subpattern count = 0  Capturing subpattern count = 0
1436  No options  No options
1437  First char = 'a'  First char = 'a'
1438  Need char = 'c'  Need char = 'c'
1439    
1440  /ab./  /ab./I
1441  Capturing subpattern count = 0  Capturing subpattern count = 0
1442  No options  No options
1443  First char = 'a'  First char = 'a'
1444  Need char = 'b'  Need char = 'b'
1445    
1446  /ab[xyz]/  /ab[xyz]/I
1447  Capturing subpattern count = 0  Capturing subpattern count = 0
1448  No options  No options
1449  First char = 'a'  First char = 'a'
1450  Need char = 'b'  Need char = 'b'
1451    
1452  /abc*/  /abc*/I
1453  Capturing subpattern count = 0  Capturing subpattern count = 0
1454  No options  No options
1455  First char = 'a'  First char = 'a'
1456  Need char = 'b'  Need char = 'b'
1457    
1458  /ab.c*/  /ab.c*/I
1459  Capturing subpattern count = 0  Capturing subpattern count = 0
1460  No options  No options
1461  First char = 'a'  First char = 'a'
1462  Need char = 'b'  Need char = 'b'
1463    
1464  /a.c*/  /a.c*/I
1465  Capturing subpattern count = 0  Capturing subpattern count = 0
1466  No options  No options
1467  First char = 'a'  First char = 'a'
1468  No need char  No need char
1469    
1470  /.c*/  /.c*/I
1471  Capturing subpattern count = 0  Capturing subpattern count = 0
1472  No options  No options
1473  No first char  No first char
1474  No need char  No need char
1475    
1476  /ac*/  /ac*/I
1477  Capturing subpattern count = 0  Capturing subpattern count = 0
1478  No options  No options
1479  First char = 'a'  First char = 'a'
1480  No need char  No need char
1481    
1482  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1483  Capturing subpattern count = 1  Capturing subpattern count = 1
1484  No options  No options
1485  No first char  No first char
1486  No need char  No need char
1487    
1488  /a.c*|aba/  /a.c*|aba/I
1489  Capturing subpattern count = 0  Capturing subpattern count = 0
1490  No options  No options
1491  First char = 'a'  First char = 'a'
1492  No need char  No need char
1493    
1494  /.+a/  /.+a/I
1495  Capturing subpattern count = 0  Capturing subpattern count = 0
1496  No options  No options
1497  No first char  No first char
1498  Need char = 'a'  Need char = 'a'
1499    
1500  /(?=abcda)a.*/  /(?=abcda)a.*/I
1501  Capturing subpattern count = 0  Capturing subpattern count = 0
1502  No options  No options
1503  First char = 'a'  First char = 'a'
1504  No need char  Need char = 'a'
1505    
1506  /(?=a)a.*/  /(?=a)a.*/I
1507  Capturing subpattern count = 0  Capturing subpattern count = 0
1508  No options  No options
1509  First char = 'a'  First char = 'a'
1510  No need char  No need char
1511    
1512  /a(b)*/  /a(b)*/I
1513  Capturing subpattern count = 1  Capturing subpattern count = 1
1514  No options  No options
1515  First char = 'a'  First char = 'a'
1516  No need char  No need char
1517    
1518  /a\d*/  /a\d*/I
1519  Capturing subpattern count = 0  Capturing subpattern count = 0
1520  No options  No options
1521  First char = 'a'  First char = 'a'
1522  No need char  No need char
1523    
1524  /ab\d*/  /ab\d*/I
1525  Capturing subpattern count = 0  Capturing subpattern count = 0
1526  No options  No options
1527  First char = 'a'  First char = 'a'
1528  Need char = 'b'  Need char = 'b'
1529    
1530  /a(\d)*/  /a(\d)*/I
1531  Capturing subpattern count = 1  Capturing subpattern count = 1
1532  No options  No options
1533  First char = 'a'  First char = 'a'
1534  No need char  No need char
1535    
1536  /abcde{0,0}/  /abcde{0,0}/I
1537  Capturing subpattern count = 0  Capturing subpattern count = 0
1538  No options  No options
1539  First char = 'a'  First char = 'a'
1540  Need char = 'd'  Need char = 'd'
1541    
1542  /ab\d+/  /ab\d+/I
1543  Capturing subpattern count = 0  Capturing subpattern count = 0
1544  No options  No options
1545  First char = 'a'  First char = 'a'
1546  Need char = 'b'  Need char = 'b'
1547    
1548  /a(?(1)b)/  /a(?(1)b)(.)/I
1549  Capturing subpattern count = 0  Capturing subpattern count = 1
1550  No options  No options
1551  First char = 'a'  First char = 'a'
1552  No need char  No need char
1553    
1554  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1555  Capturing subpattern count = 0  Capturing subpattern count = 1
1556  No options  No options
1557  First char = 'a'  First char = 'a'
1558  Need char = 'g'  Need char = 'g'
1559    
1560  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1561  Capturing subpattern count = 0  Capturing subpattern count = 1
1562  No options  No options
1563  First char = 'a'  First char = 'a'
1564  No need char  No need char
1565    
1566  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1567  Capturing subpattern count = 0  Capturing subpattern count = 1
1568  No options  No options
1569  First char = 'a'  First char = 'a'
1570  Need char = 'g'  Need char = 'g'
1571    
1572  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1573  Capturing subpattern count = 0  Capturing subpattern count = 1
1574  No options  No options
1575  First char = 'a'  First char = 'a'
1576  Need char = 'b'  Need char = 'b'
1577    
1578  /ab\d{0}e/  /ab\d{0}e/I
1579  Capturing subpattern count = 0  Capturing subpattern count = 0
1580  No options  No options
1581  First char = 'a'  First char = 'a'
1582  Need char = 'e'  Need char = 'e'
1583    
1584  /a?b?/  /a?b?/I
1585  Capturing subpattern count = 0  Capturing subpattern count = 0
1586  No options  No options
1587  No first char  No first char
# Line 1581  No need char Line 1596  No need char
1596   0:   0:
1597      *** Failers      *** Failers
1598   0:   0:
1599      \N      \N
1600  No match  No match
1601    
1602  /|-/  /|-/I
1603  Capturing subpattern count = 0  Capturing subpattern count = 0
1604  No options  No options
1605  No first char  No first char
# Line 1597  No need char Line 1612  No need char
1612   0: -   0: -
1613      *** Failers      *** Failers
1614   0:   0:
1615      \Nabc      \Nabc
1616  No match  No match
1617    
1618  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/IP
1619      aaaabbbbzzzz      aaaabbbbzzzz
1620   0: aaaabbbbzz   0: aaaabbbbzz
1621   1: bbbb   1: bbbb
# Line 1626  No match Line 1641  No match
1641   1: bbbb   1: bbbb
1642   2: z   2: z
1643   3: z   3: z
1644    
1645  /^.?abcd/S  /^.?abcd/IS
1646  Capturing subpattern count = 0  Capturing subpattern count = 0
1647  Options: anchored  Options: anchored
1648  No first char  No first char
# Line 1641  Study returned NULL Line 1656  Study returned NULL
1656    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1657    )*            # Zero or more contents    )*            # Zero or more contents
1658    \)            # Closing )    \)            # Closing )
1659    /x    /Ix
1660  Capturing subpattern count = 0  Capturing subpattern count = 0
1661  Options: extended  Options: extended
1662  First char = '('  First char = '('
# Line 1652  Need char = ')' Line 1667  Need char = ')'
1667   0: (abcd)   0: (abcd)
1668      xyz(abcd)      xyz(abcd)
1669   0: (abcd)   0: (abcd)
1670      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1671   0: (ab(xy)cd)   0: (ab(xy)cd)
1672      (ab(xycd)pqr      (ab(xycd)pqr
1673   0: (xycd)   0: (xycd)
1674      () abc ()      () abc ()
1675   0: ()   0: ()
1676      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1677   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1678      *** Failers      *** Failers
1679  No match  No match
1680      abcd      abcd
1681  No match  No match
1682      abcd)      abcd)
1683  No match  No match
1684      (abcd      (abcd
1685  No match  No match
1686    
1687  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1688  Capturing subpattern count = 1  Capturing subpattern count = 1
1689  Options: extended  Options: extended
1690  First char = '('  First char = '('
1691  Need char = ')'  Need char = ')'
1692      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1693   0: (ab(xy)cd)   0: (ab(xy)cd)
1694   1: cd   1: cd
1695      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1683  Need char = ')' Line 1698  Need char = ')'
1698   0: (x(y)z)   0: (x(y)z)
1699   1: z   1: z
1700    
1701  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1702  Capturing subpattern count = 0  Capturing subpattern count = 0
1703  Options: extended  Options: extended
1704  First char = '('  First char = '('
# Line 1692  Need char = ')' Line 1707  Need char = ')'
1707   0: (abcd)   0: (abcd)
1708      (ab(xy)cd)      (ab(xy)cd)
1709   0: (xy)   0: (xy)
1710      (a(b(c)d)e)      (a(b(c)d)e)
1711   0: (c)   0: (c)
1712      ((ab))      ((ab))
1713   0: ((ab))   0: ((ab))
1714      *** Failers      *** Failers
1715  No match  No match
1716      ()      ()
1717  No match  No match
1718    
1719  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1720  Capturing subpattern count = 0  Capturing subpattern count = 0
1721  Options: extended  Options: extended
1722  First char = '('  First char = '('
# Line 1711  Need char = ')' Line 1726  Need char = ')'
1726      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1727   0: (fsh)   0: (fsh)
1728    
1729  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1730  Capturing subpattern count = 1  Capturing subpattern count = 1
1731  Options: extended  Options: extended
1732  First char = '('  First char = '('
# Line 1720  Need char = ')' Line 1735  Need char = ')'
1735   0: (ab(xy)cd)   0: (ab(xy)cd)
1736   1: cd   1: cd
1737    
1738  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1739  Capturing subpattern count = 2  Capturing subpattern count = 2
1740  Options: extended  Options: extended
1741  First char = '('  First char = '('
# Line 1730  Need char = ')' Line 1745  Need char = ')'
1745   1: ab(xy)cd   1: ab(xy)cd
1746   2: cd   2: cd
1747    
1748  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1749  Capturing subpattern count = 3  Capturing subpattern count = 3
1750  Options: extended  Options: extended
1751  First char = '('  First char = '('
# Line 1746  Need char = ')' Line 1761  Need char = ')'
1761   2: ab(xy)cd   2: ab(xy)cd
1762   3: cd   3: cd
1763    
1764  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1765  Capturing subpattern count = 3  Capturing subpattern count = 3
1766  Options: extended  Options: extended
1767  First char = '('  First char = '('
# Line 1762  Need char = ')' Line 1777  Need char = ')'
1777   2: 123   2: 123
1778   3: cd   3: cd
1779    
1780  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1781  Capturing subpattern count = 11  Capturing subpattern count = 11
1782  Options: extended  Options: extended
1783  First char = '('  First char = '('
# Line 1781  Need char = ')' Line 1796  Need char = ')'
1796  10: ab(xy)cd  10: ab(xy)cd
1797  11: cd  11: cd
1798    
1799  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1800  Capturing subpattern count = 3  Capturing subpattern count = 3
1801  Options: extended  Options: extended
1802  First char = '('  First char = '('
# Line 1790  Need char = ')' Line 1805  Need char = ')'
1805   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1806   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1807   2: 123   2: 123
1808   3: <p>qrs   3: <unset>
1809    
1810  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1811  Capturing subpattern count = 3  Capturing subpattern count = 3
1812  Options: extended  Options: extended
1813  First char = '('  First char = '('
# Line 1808  Need char = ')' Line 1823  Need char = ')'
1823   2: ij   2: ij
1824   3: (cd(ef)gh)   3: (cd(ef)gh)
1825    
1826  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1827    ------------------------------------------------------------------
1828            Bra
1829            ^
1830            [0-9A-Za-z]
1831            Ket
1832            End
1833    ------------------------------------------------------------------
1834    Capturing subpattern count = 0
1835    Options: anchored
1836    No first char
1837    No need char
1838    
1839    /^[[:^alnum:]]/DZ
1840    ------------------------------------------------------------------
1841            Bra
1842            ^
1843            [\x00-/:-@[-`{-\xff] (neg)
1844            Ket
1845            End
1846    ------------------------------------------------------------------
1847    Capturing subpattern count = 0
1848    Options: anchored
1849    No first char
1850    No need char
1851    
1852    /^[[:alpha:]]/DZ
1853    ------------------------------------------------------------------
1854            Bra
1855            ^
1856            [A-Za-z]
1857            Ket
1858            End
1859    ------------------------------------------------------------------
1860    Capturing subpattern count = 0
1861    Options: anchored
1862    No first char
1863    No need char
1864    
1865    /^[[:^alpha:]]/DZ
1866    ------------------------------------------------------------------
1867            Bra
1868            ^
1869            [\x00-@[-`{-\xff] (neg)
1870            Ket
1871            End
1872    ------------------------------------------------------------------
1873    Capturing subpattern count = 0
1874    Options: anchored
1875    No first char
1876    No need char
1877    
1878    /[_[:alpha:]]/IS
1879    Capturing subpattern count = 0
1880    No options
1881    No first char
1882    No need char
1883    Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1884      _ a b c d e f g h i j k l m n o p q r s t u v w x y z
1885    
1886    /^[[:ascii:]]/DZ
1887    ------------------------------------------------------------------
1888            Bra
1889            ^
1890            [\x00-\x7f]
1891            Ket
1892            End
1893    ------------------------------------------------------------------
1894    Capturing subpattern count = 0
1895    Options: anchored
1896    No first char
1897    No need char
1898    
1899    /^[[:^ascii:]]/DZ
1900    ------------------------------------------------------------------
1901            Bra
1902            ^
1903            [\x80-\xff] (neg)
1904            Ket
1905            End
1906    ------------------------------------------------------------------
1907    Capturing subpattern count = 0
1908    Options: anchored
1909    No first char
1910    No need char
1911    
1912    /^[[:blank:]]/DZ
1913  ------------------------------------------------------------------  ------------------------------------------------------------------
1914    0  37 Bra 0          Bra
1915    3     ^          ^
1916    4     [0-9A-Za-z]          [\x09 ]
1917   37  37 Ket          Ket
1918   40     End          End
1919  ------------------------------------------------------------------  ------------------------------------------------------------------
1920  Capturing subpattern count = 0  Capturing subpattern count = 0
1921  Options: anchored  Options: anchored
1922  No first char  No first char
1923  No need char  No need char
1924    
1925  /^[[:alpha:]]/D  /^[[:^blank:]]/DZ
1926  ------------------------------------------------------------------  ------------------------------------------------------------------
1927    0  37 Bra 0          Bra
1928    3     ^          ^
1929    4     [A-Za-z]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1930   37  37 Ket          Ket
1931   40     End          End
1932  ------------------------------------------------------------------  ------------------------------------------------------------------
1933  Capturing subpattern count = 0  Capturing subpattern count = 0
1934  Options: anchored  Options: anchored
1935  No first char  No first char
1936  No need char  No need char
1937    
1938  /^[[:ascii:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
1939    Capturing subpattern count = 0
1940    Contains explicit CR or LF match
1941    No options
1942    No first char
1943    No need char
1944    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1945    
1946    /^[[:cntrl:]]/DZ
1947  ------------------------------------------------------------------  ------------------------------------------------------------------
1948    0  37 Bra 0          Bra
1949    3     ^          ^
1950    4     [\x00-\x7f]          [\x00-\x1f\x7f]
1951   37  37 Ket          Ket
1952   40     End          End
1953  ------------------------------------------------------------------  ------------------------------------------------------------------
1954  Capturing subpattern count = 0  Capturing subpattern count = 0
1955  Options: anchored  Options: anchored
1956  No first char  No first char
1957  No need char  No need char
1958    
1959  /^[[:cntrl:]]/D  /^[[:digit:]]/DZ
1960  ------------------------------------------------------------------  ------------------------------------------------------------------
1961    0  37 Bra 0          Bra
1962    3     ^          ^
1963    4     [\x00-\x1f\x7f]          [0-9]
1964   37  37 Ket          Ket
1965   40     End          End
1966  ------------------------------------------------------------------  ------------------------------------------------------------------
1967  Capturing subpattern count = 0  Capturing subpattern count = 0
1968  Options: anchored  Options: anchored
1969  No first char  No first char
1970  No need char  No need char
1971    
1972  /^[[:digit:]]/D  /^[[:graph:]]/DZ
1973  ------------------------------------------------------------------  ------------------------------------------------------------------
1974    0  37 Bra 0          Bra
1975    3     ^          ^
1976    4     [0-9]          [!-~]
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  /^[[:graph:]]/D  /^[[:lower:]]/DZ
1986  ------------------------------------------------------------------  ------------------------------------------------------------------
1987    0  37 Bra 0          Bra
1988    3     ^          ^
1989    4     [!-~]          [a-z]
1990   37  37 Ket          Ket
1991   40     End          End
1992  ------------------------------------------------------------------  ------------------------------------------------------------------
1993  Capturing subpattern count = 0  Capturing subpattern count = 0
1994  Options: anchored  Options: anchored
1995  No first char  No first char
1996  No need char  No need char
1997    
1998  /^[[:lower:]]/D  /^[[:print:]]/DZ
1999  ------------------------------------------------------------------  ------------------------------------------------------------------
2000    0  37 Bra 0          Bra
2001    3     ^          ^
2002    4     [a-z]          [ -~]
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  /^[[:print:]]/D  /^[[:punct:]]/DZ
2012  ------------------------------------------------------------------  ------------------------------------------------------------------
2013    0  37 Bra 0          Bra
2014    3     ^          ^
2015    4     [ -~]          [!-/:-@[-`{-~]
2016   37  37 Ket          Ket
2017   40     End          End
2018  ------------------------------------------------------------------  ------------------------------------------------------------------
2019  Capturing subpattern count = 0  Capturing subpattern count = 0
2020  Options: anchored  Options: anchored
2021  No first char  No first char
2022  No need char  No need char
2023    
2024  /^[[:punct:]]/D  /^[[:space:]]/DZ
2025  ------------------------------------------------------------------  ------------------------------------------------------------------
2026    0  37 Bra 0          Bra
2027    3     ^          ^
2028    4     [!-/:-@[-`{-~]          [\x09-\x0d ]
2029   37  37 Ket          Ket
2030   40     End          End
2031  ------------------------------------------------------------------  ------------------------------------------------------------------
2032  Capturing subpattern count = 0  Capturing subpattern count = 0
2033  Options: anchored  Options: anchored
2034  No first char  No first char
2035  No need char  No need char
2036    
2037  /^[[:space:]]/D  /^[[:upper:]]/DZ
2038  ------------------------------------------------------------------  ------------------------------------------------------------------
2039    0  37 Bra 0          Bra
2040    3     ^          ^
2041    4     [\x09-\x0d ]          [A-Z]
2042   37  37 Ket          Ket
2043   40     End          End
2044  ------------------------------------------------------------------  ------------------------------------------------------------------
2045  Capturing subpattern count = 0  Capturing subpattern count = 0
2046  Options: anchored  Options: anchored
2047  No first char  No first char
2048  No need char  No need char
2049    
2050  /^[[:upper:]]/D  /^[[:xdigit:]]/DZ
2051  ------------------------------------------------------------------  ------------------------------------------------------------------
2052    0  37 Bra 0          Bra
2053    3     ^          ^
2054    4     [A-Z]          [0-9A-Fa-f]
2055   37  37 Ket          Ket
2056   40     End          End
2057  ------------------------------------------------------------------  ------------------------------------------------------------------
2058  Capturing subpattern count = 0  Capturing subpattern count = 0
2059  Options: anchored  Options: anchored
2060  No first char  No first char
2061  No need char  No need char
2062    
2063  /^[[:xdigit:]]/D  /^[[:word:]]/DZ
2064  ------------------------------------------------------------------  ------------------------------------------------------------------
2065    0  37 Bra 0          Bra
2066    3     ^          ^
2067    4     [0-9A-Fa-f]          [0-9A-Z_a-z]
2068   37  37 Ket          Ket
2069   40     End          End
2070  ------------------------------------------------------------------  ------------------------------------------------------------------
2071  Capturing subpattern count = 0  Capturing subpattern count = 0
2072  Options: anchored  Options: anchored
2073  No first char  No first char
2074  No need char  No need char
2075    
2076  /^[[:word:]]/D  /^[[:^cntrl:]]/DZ
2077  ------------------------------------------------------------------  ------------------------------------------------------------------
2078    0  37 Bra 0          Bra
2079    3     ^          ^
2080    4     [0-9A-Z_a-z]          [ -~\x80-\xff] (neg)
2081   37  37 Ket          Ket
2082   40     End          End
2083  ------------------------------------------------------------------  ------------------------------------------------------------------
2084  Capturing subpattern count = 0  Capturing subpattern count = 0
2085  Options: anchored  Options: anchored
2086  No first char  No first char
2087  No need char  No need char
2088    
2089  /^[[:^cntrl:]]/D  /^[12[:^digit:]]/DZ
2090  ------------------------------------------------------------------  ------------------------------------------------------------------
2091    0  37 Bra 0          Bra
2092    3     ^          ^
2093    4     [ -~\x80-\xff]          [\x00-/12:-\xff] (neg)
2094   37  37 Ket          Ket
2095   40     End          End
2096  ------------------------------------------------------------------  ------------------------------------------------------------------
2097  Capturing subpattern count = 0  Capturing subpattern count = 0
2098  Options: anchored  Options: anchored
2099  No first char  No first char
2100  No need char  No need char
2101    
2102  /^[12[:^digit:]]/D  /^[[:^blank:]]/DZ
2103  ------------------------------------------------------------------  ------------------------------------------------------------------
2104    0  37 Bra 0          Bra
2105    3     ^          ^
2106    4     [\x00-/1-2:-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2107   37  37 Ket          Ket
2108   40     End          End
2109  ------------------------------------------------------------------  ------------------------------------------------------------------
2110  Capturing subpattern count = 0  Capturing subpattern count = 0
2111  Options: anchored  Options: anchored
2112  No first char  No first char
2113  No need char  No need char
2114    
2115  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2116  ------------------------------------------------------------------  ------------------------------------------------------------------
2117    0  36 Bra 0          Bra
2118    3     [%0-1A-Za-z]          [%01A-Za-z]
2119   36  36 Ket          Ket
2120   39     End          End
2121  ------------------------------------------------------------------  ------------------------------------------------------------------
2122  Capturing subpattern count = 0  Capturing subpattern count = 0
2123  No options  No options
2124  No first char  No first char
2125  No need char  No need char
2126    
2127  /[[.ch.]]/  /[[.ch.]]/I
2128  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2129    
2130  /[[=ch=]]/  /[[=ch=]]/I
2131  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2132    
2133  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2134  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2135    
2136  /[[:upper:]]/i  /[[:upper:]]/Ii
2137  Capturing subpattern count = 0  Capturing subpattern count = 0
2138  Options: caseless  Options: caseless
2139  No first char  No first char
2140  No need char  No need char
2141      A      A
2142   0: A   0: A
2143      a      a
2144   0: a   0: a
2145    
2146  /[[:lower:]]/i  /[[:lower:]]/Ii
2147  Capturing subpattern count = 0  Capturing subpattern count = 0
2148  Options: caseless  Options: caseless
2149  No first char  No first char
2150  No need char  No need char
2151      A      A
2152   0: A   0: A
2153      a      a
2154   0: a   0: a
2155    
2156  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2157  Capturing subpattern count = 1  Capturing subpattern count = 1
2158  Options: caseless  Options: caseless
 Case state changes  
2159  No first char  No first char
2160  No need char  No need char
2161      ab      ab
# Line 2061  No need char Line 2169  No need char
2169   1: a   1: a
2170      Ab      Ab
2171  No match  No match
2172      AB      AB
2173  No match  No match
2174    
2175  / End of test input /  /[\200-\110]/I
2176    Failed: range out of order in character class at offset 9
2177    
2178    /^(?(0)f|b)oo/I
2179    Failed: invalid condition (?(0) at offset 6
2180    
2181    /This one's here because of the large output vector needed/I
2182  Capturing subpattern count = 0  Capturing subpattern count = 0
2183  No options  No options
2184  First char = ' '  First char = 'T'
2185  Need char = ' '  Need char = 'd'
2186    
2187    /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
2188    Capturing subpattern count = 271
2189    Max back reference = 270
2190    No options
2191    No first char
2192    No need char
2193        \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
2194     0: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
2195     1: 1
2196     2: 2
2197     3: 3
2198     4: 4
2199     5: 5
2200     6: 6
2201     7: 7
2202     8: 8
2203     9: 9
2204    10: 10
2205    11: 11
2206    12: 12
2207    13: 13
2208    14: 14
2209    15: 15
2210    16: 16
2211    17: 17
2212    18: 18
2213    19: 19
2214    20: 20
2215    21: 21
2216    22: 22
2217    23: 23
2218    24: 24
2219    25: 25
2220    26: 26
2221    27: 27
2222    28: 28
2223    29: 29
2224    30: 30
2225    31: 31
2226    32: 32
2227    33: 33
2228    34: 34
2229    35: 35
2230    36: 36
2231    37: 37
2232    38: 38
2233    39: 39
2234    40: 40
2235    41: 41
2236    42: 42
2237    43: 43
2238    44: 44
2239    45: 45
2240    46: 46
2241    47: 47
2242    48: 48
2243    49: 49
2244    50: 50
2245    51: 51
2246    52: 52
2247    53: 53
2248    54: 54
2249    55: 55
2250    56: 56
2251    57: 57
2252    58: 58
2253    59: 59
2254    60: 60
2255    61: 61
2256    62: 62
2257    63: 63
2258    64: 64
2259    65: 65
2260    66: 66
2261    67: 67
2262    68: 68
2263    69: 69
2264    70: 70
2265    71: 71
2266    72: 72
2267    73: 73
2268    74: 74
2269    75: 75
2270    76: 76
2271    77: 77
2272    78: 78
2273    79: 79
2274    80: 80
2275    81: 81
2276    82: 82
2277    83: 83
2278    84: 84
2279    85: 85
2280    86: 86
2281    87: 87
2282    88: 88
2283    89: 89
2284    90: 90
2285    91: 91
2286    92: 92
2287    93: 93
2288    94: 94
2289    95: 95
2290    96: 96
2291    97: 97
2292    98: 98
2293    99: 99
2294    100: 100
2295    101: 101
2296    102: 102
2297    103: 103
2298    104: 104
2299    105: 105
2300    106: 106
2301    107: 107
2302    108: 108
2303    109: 109
2304    110: 110
2305    111: 111
2306    112: 112
2307    113: 113
2308    114: 114
2309    115: 115
2310    116: 116
2311    117: 117
2312    118: 118
2313    119: 119
2314    120: 120
2315    121: 121
2316    122: 122
2317    123: 123
2318    124: 124
2319    125: 125
2320    126: 126
2321    127: 127
2322    128: 128
2323    129: 129
2324    130: 130
2325    131: 131
2326    132: 132
2327    133: 133
2328    134: 134
2329    135: 135
2330    136: 136
2331    137: 137
2332    138: 138
2333    139: 139
2334    140: 140
2335    141: 141
2336    142: 142
2337    143: 143
2338    144: 144
2339    145: 145
2340    146: 146
2341    147: 147
2342    148: 148
2343    149: 149
2344    150: 150
2345    151: 151
2346    152: 152
2347    153: 153
2348    154: 154
2349    155: 155
2350    156: 156
2351    157: 157
2352    158: 158
2353    159: 159
2354    160: 160
2355    161: 161
2356    162: 162
2357    163: 163
2358    164: 164
2359    165: 165
2360    166: 166
2361    167: 167
2362    168: 168
2363    169: 169
2364    170: 170
2365    171: 171
2366    172: 172
2367    173: 173
2368    174: 174
2369    175: 175
2370    176: 176
2371    177: 177
2372    178: 178
2373    179: 179
2374    180: 180
2375    181: 181
2376    182: 182
2377    183: 183
2378    184: 184
2379    185: 185
2380    186: 186
2381    187: 187
2382    188: 188
2383    189: 189
2384    190: 190
2385    191: 191
2386    192: 192
2387    193: 193
2388    194: 194
2389    195: 195
2390    196: 196
2391    197: 197
2392    198: 198
2393    199: 199
2394    200: 200
2395    201: 201
2396    202: 202
2397    203: 203
2398    204: 204
2399    205: 205
2400    206: 206
2401    207: 207
2402    208: 208
2403    209: 209
2404    210: 210
2405    211: 211
2406    212: 212
2407    213: 213
2408    214: 214
2409    215: 215
2410    216: 216
2411    217: 217
2412    218: 218
2413    219: 219
2414    220: 220
2415    221: 221
2416    222: 222
2417    223: 223
2418    224: 224
2419    225: 225
2420    226: 226
2421    227: 227
2422    228: 228
2423    229: 229
2424    230: 230
2425    231: 231
2426    232: 232
2427    233: 233
2428    234: 234
2429    235: 235
2430    236: 236
2431    237: 237
2432    238: 238
2433    239: 239
2434    240: 240
2435    241: 241
2436    242: 242
2437    243: 243
2438    244: 244
2439    245: 245
2440    246: 246
2441    247: 247
2442    248: 248
2443    249: 249
2444    250: 250
2445    251: 251
2446    252: 252
2447    253: 253
2448    254: 254
2449    255: 255
2450    256: 256
2451    257: 257
2452    258: 258
2453    259: 259
2454    260: 260
2455    261: 261
2456    262: 262
2457    263: 263
2458    264: 264
2459    265: 265
2460    266: 266
2461    267: 267
2462    268: 268
2463    269: 269
2464    270: ABC
2465    271: ABC
2466    
2467    /This one's here because Perl does this differently and PCRE can't at present/I
2468    Capturing subpattern count = 0
2469    No options
2470    First char = 'T'
2471    Need char = 't'
2472    
2473    /(main(O)?)+/I
2474    Capturing subpattern count = 2
2475    No options
2476    First char = 'm'
2477    Need char = 'n'
2478        mainmain
2479     0: mainmain
2480     1: main
2481        mainOmain
2482     0: mainOmain
2483     1: main
2484     2: O
2485    
2486    /These are all cases where Perl does it differently (nested captures)/I
2487    Capturing subpattern count = 1
2488    No options
2489    First char = 'T'
2490    Need char = 's'
2491    
2492    /^(a(b)?)+$/I
2493    Capturing subpattern count = 2
2494    Options: anchored
2495    No first char
2496    No need char
2497        aba
2498     0: aba
2499     1: a
2500     2: b
2501    
2502    /^(aa(bb)?)+$/I
2503    Capturing subpattern count = 2
2504    Options: anchored
2505    No first char
2506    No need char
2507        aabbaa
2508     0: aabbaa
2509     1: aa
2510     2: bb
2511    
2512    /^(aa|aa(bb))+$/I
2513    Capturing subpattern count = 2
2514    Options: anchored
2515    No first char
2516    No need char
2517        aabbaa
2518     0: aabbaa
2519     1: aa
2520     2: bb
2521    
2522    /^(aa(bb)??)+$/I
2523    Capturing subpattern count = 2
2524    Options: anchored
2525    No first char
2526    No need char
2527        aabbaa
2528     0: aabbaa
2529     1: aa
2530     2: bb
2531    
2532    /^(?:aa(bb)?)+$/I
2533    Capturing subpattern count = 1
2534    Options: anchored
2535    No first char
2536    No need char
2537        aabbaa
2538     0: aabbaa
2539     1: bb
2540    
2541    /^(aa(b(b))?)+$/I
2542    Capturing subpattern count = 3
2543    Options: anchored
2544    No first char
2545    No need char
2546        aabbaa
2547     0: aabbaa
2548     1: aa
2549     2: bb
2550     3: b
2551    
2552    /^(?:aa(b(b))?)+$/I
2553    Capturing subpattern count = 2
2554    Options: anchored
2555    No first char
2556    No need char
2557        aabbaa
2558     0: aabbaa
2559     1: bb
2560     2: b
2561    
2562    /^(?:aa(b(?:b))?)+$/I
2563    Capturing subpattern count = 1
2564    Options: anchored
2565    No first char
2566    No need char
2567        aabbaa
2568     0: aabbaa
2569     1: bb
2570    
2571    /^(?:aa(bb(?:b))?)+$/I
2572    Capturing subpattern count = 1
2573    Options: anchored
2574    No first char
2575    No need char
2576        aabbbaa
2577     0: aabbbaa
2578     1: bbb
2579    
2580    /^(?:aa(b(?:bb))?)+$/I
2581    Capturing subpattern count = 1
2582    Options: anchored
2583    No first char
2584    No need char
2585        aabbbaa
2586     0: aabbbaa
2587     1: bbb
2588    
2589    /^(?:aa(?:b(b))?)+$/I
2590    Capturing subpattern count = 1
2591    Options: anchored
2592    No first char
2593    No need char
2594        aabbaa
2595     0: aabbaa
2596     1: b
2597    
2598    /^(?:aa(?:b(bb))?)+$/I
2599    Capturing subpattern count = 1
2600    Options: anchored
2601    No first char
2602    No need char
2603        aabbbaa
2604     0: aabbbaa
2605     1: bb
2606    
2607    /^(aa(b(bb))?)+$/I
2608    Capturing subpattern count = 3
2609    Options: anchored
2610    No first char
2611    No need char
2612        aabbbaa
2613     0: aabbbaa
2614     1: aa
2615     2: bbb
2616     3: bb
2617    
2618    /^(aa(bb(bb))?)+$/I
2619    Capturing subpattern count = 3
2620    Options: anchored
2621    No first char
2622    No need char
2623        aabbbbaa
2624     0: aabbbbaa
2625     1: aa
2626     2: bbbb
2627     3: bb
2628    
2629    /--------------------------------------------------------------------/I
2630    Capturing subpattern count = 0
2631    No options
2632    First char = '-'
2633    Need char = '-'
2634    
2635    /#/IxDZ
2636    ------------------------------------------------------------------
2637            Bra
2638            Ket
2639            End
2640    ------------------------------------------------------------------
2641    Capturing subpattern count = 0
2642    Options: extended
2643    No first char
2644    No need char
2645    
2646    /a#/IxDZ
2647    ------------------------------------------------------------------
2648            Bra
2649            a
2650            Ket
2651            End
2652    ------------------------------------------------------------------
2653    Capturing subpattern count = 0
2654    Options: extended
2655    First char = 'a'
2656    No need char
2657    
2658    /[\s]/DZ
2659    ------------------------------------------------------------------
2660            Bra
2661            [\x09\x0a\x0c\x0d ]
2662            Ket
2663            End
2664    ------------------------------------------------------------------
2665    Capturing subpattern count = 0
2666    No options
2667    No first char
2668    No need char
2669    
2670    /[\S]/DZ
2671    ------------------------------------------------------------------
2672            Bra
2673            [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2674            Ket
2675            End
2676    ------------------------------------------------------------------
2677    Capturing subpattern count = 0
2678    No options
2679    No first char
2680    No need char
2681    
2682    /a(?i)b/DZ
2683    ------------------------------------------------------------------
2684            Bra
2685            a
2686         01 Opt
2687         NC b
2688            Ket
2689            End
2690    ------------------------------------------------------------------
2691    Capturing subpattern count = 0
2692    No options
2693    First char = 'a'
2694    Need char = 'b' (caseless)
2695        ab
2696     0: ab
2697        aB
2698     0: aB
2699        *** Failers
2700    No match
2701        AB
2702    No match
2703    
2704    /(a(?i)b)/DZ
2705    ------------------------------------------------------------------
2706            Bra
2707            CBra 1
2708            a
2709         01 Opt
2710         NC b
2711            Ket
2712         00 Opt
2713            Ket
2714            End
2715    ------------------------------------------------------------------
2716    Capturing subpattern count = 1
2717    No options
2718    First char = 'a'
2719    Need char = 'b' (caseless)
2720        ab
2721     0: ab
2722     1: ab
2723        aB
2724     0: aB
2725     1: aB
2726        *** Failers
2727    No match
2728        AB
2729    No match
2730    
2731    /   (?i)abc/IxDZ
2732    ------------------------------------------------------------------
2733            Bra
2734         NC abc
2735            Ket
2736            End
2737    ------------------------------------------------------------------
2738    Capturing subpattern count = 0
2739    Options: caseless extended
2740    First char = 'a' (caseless)
2741    Need char = 'c' (caseless)
2742    
2743    /#this is a comment
2744      (?i)abc/IxDZ
2745    ------------------------------------------------------------------
2746            Bra
2747         NC abc
2748            Ket
2749            End
2750    ------------------------------------------------------------------
2751    Capturing subpattern count = 0
2752    Options: caseless extended
2753    First char = 'a' (caseless)
2754    Need char = 'c' (caseless)
2755    
2756    /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2757    ------------------------------------------------------------------
2758            Bra
2759            123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2760            Ket
2761            End
2762    ------------------------------------------------------------------
2763    Capturing subpattern count = 0
2764    No options
2765    First char = '1'
2766    Need char = '0'
2767    
2768    /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2769    ------------------------------------------------------------------
2770            Bra
2771            123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2772            Ket
2773            End
2774    ------------------------------------------------------------------
2775    Capturing subpattern count = 0
2776    No options
2777    First char = '1'
2778    Need char = '0'
2779    
2780    /\Q\E/DZ
2781    ------------------------------------------------------------------
2782            Bra
2783            Ket
2784            End
2785    ------------------------------------------------------------------
2786    Capturing subpattern count = 0
2787    No options
2788    No first char
2789    No need char
2790        \
2791     0:
2792    
2793    /\Q\Ex/DZ
2794    ------------------------------------------------------------------
2795            Bra
2796            x
2797            Ket
2798            End
2799    ------------------------------------------------------------------
2800    Capturing subpattern count = 0
2801    No options
2802    First char = 'x'
2803    No need char
2804    
2805    / \Q\E/DZ
2806    ------------------------------------------------------------------
2807            Bra
2808    
2809            Ket
2810            End
2811    ------------------------------------------------------------------
2812    Capturing subpattern count = 0
2813    No options
2814    First char = ' '
2815    No need char
2816    
2817    /a\Q\E/DZ
2818    ------------------------------------------------------------------
2819            Bra
2820            a
2821            Ket
2822            End
2823    ------------------------------------------------------------------
2824    Capturing subpattern count = 0
2825    No options
2826    First char = 'a'
2827    No need char
2828      abc
2829     0: a
2830      bca
2831     0: a
2832      bac
2833     0: a
2834    
2835    /a\Q\Eb/DZ
2836    ------------------------------------------------------------------
2837            Bra
2838            ab
2839            Ket
2840            End
2841    ------------------------------------------------------------------
2842    Capturing subpattern count = 0
2843    No options
2844    First char = 'a'
2845    Need char = 'b'
2846      abc
2847     0: ab
2848    
2849    /\Q\Eabc/DZ
2850    ------------------------------------------------------------------
2851            Bra
2852            abc
2853            Ket
2854            End
2855    ------------------------------------------------------------------
2856    Capturing subpattern count = 0
2857    No options
2858    First char = 'a'
2859    Need char = 'c'
2860    
2861    /x*+\w/DZ
2862    ------------------------------------------------------------------
2863            Bra
2864            x*+
2865            \w
2866            Ket
2867            End
2868    ------------------------------------------------------------------
2869    Capturing subpattern count = 0
2870    No options
2871    No first char
2872    No need char
2873        *** Failers
2874     0: F
2875        xxxxx
2876    No match
2877    
2878    /x?+/DZ
2879    ------------------------------------------------------------------
2880            Bra
2881            x?+
2882            Ket
2883            End
2884    ------------------------------------------------------------------
2885    Capturing subpattern count = 0
2886    No options
2887    No first char
2888    No need char
2889    
2890    /x++/DZ
2891    ------------------------------------------------------------------
2892            Bra
2893            x++
2894            Ket
2895            End
2896    ------------------------------------------------------------------
2897    Capturing subpattern count = 0
2898    No options
2899    First char = 'x'
2900    No need char
2901    
2902    /x{1,3}+/DZ
2903    ------------------------------------------------------------------
2904            Bra
2905            Once
2906            x
2907            x{0,2}
2908            Ket
2909            Ket
2910            End
2911    ------------------------------------------------------------------
2912    Capturing subpattern count = 0
2913    No options
2914    First char = 'x'
2915    No need char
2916    
2917    /(x)*+/DZ
2918    ------------------------------------------------------------------
2919            Bra
2920            Once
2921            Brazero
2922            CBra 1
2923            x
2924            KetRmax
2925            Ket
2926            Ket
2927            End
2928    ------------------------------------------------------------------
2929    Capturing subpattern count = 1
2930    No options
2931    No first char
2932    No need char
2933    
2934    /^(\w++|\s++)*$/I
2935    Capturing subpattern count = 1
2936    Options: anchored
2937    No first char
2938    No need char
2939        now is the time for all good men to come to the aid of the party
2940     0: now is the time for all good men to come to the aid of the party
2941     1: party
2942        *** Failers
2943    No match
2944        this is not a line with only words and spaces!
2945    No match
2946    
2947    /(\d++)(\w)/I
2948    Capturing subpattern count = 2
2949    No options
2950    No first char
2951    No need char
2952        12345a
2953     0: 12345a
2954     1: 12345
2955     2: a
2956        *** Failers
2957    No match
2958        12345+
2959    No match
2960    
2961    /a++b/I
2962    Capturing subpattern count = 0
2963    No options
2964    First char = 'a'
2965    Need char = 'b'
2966        aaab
2967     0: aaab
2968    
2969    /(a++b)/I
2970    Capturing subpattern count = 1
2971    No options
2972    First char = 'a'
2973    Need char = 'b'
2974        aaab
2975     0: aaab
2976     1: aaab
2977    
2978    /(a++)b/I
2979    Capturing subpattern count = 1
2980    No options
2981    First char = 'a'
2982    Need char = 'b'
2983        aaab
2984     0: aaab
2985     1: aaa
2986    
2987    /([^()]++|\([^()]*\))+/I
2988    Capturing subpattern count = 1
2989    No options
2990    No first char
2991    No need char
2992        ((abc(ade)ufh()()x
2993     0: abc(ade)ufh()()x
2994     1: x
2995    
2996    /\(([^()]++|\([^()]+\))+\)/I
2997    Capturing subpattern count = 1
2998    No options
2999    First char = '('
3000    Need char = ')'
3001        (abc)
3002     0: (abc)
3003     1: abc
3004        (abc(def)xyz)
3005     0: (abc(def)xyz)
3006     1: xyz
3007        *** Failers
3008    No match
3009        ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3010    No match
3011    
3012    /(abc){1,3}+/DZ
3013    ------------------------------------------------------------------
3014            Bra
3015            Once
3016            CBra 1
3017            abc
3018            Ket
3019            Brazero
3020            Bra
3021            CBra 1
3022            abc
3023            Ket
3024            Brazero
3025            CBra 1
3026            abc
3027            Ket
3028            Ket
3029            Ket
3030            Ket
3031            End
3032    ------------------------------------------------------------------
3033    Capturing subpattern count = 1
3034    No options
3035    First char = 'a'
3036    Need char = 'c'
3037    
3038    /a+?+/I
3039    Failed: nothing to repeat at offset 3
3040    
3041    /a{2,3}?+b/I
3042    Failed: nothing to repeat at offset 7
3043    
3044    /(?U)a+?+/I
3045    Failed: nothing to repeat at offset 7
3046    
3047    /a{2,3}?+b/IU
3048    Failed: nothing to repeat at offset 7
3049    
3050    /x(?U)a++b/DZ
3051    ------------------------------------------------------------------
3052            Bra
3053            x
3054            a++
3055            b
3056            Ket
3057            End
3058    ------------------------------------------------------------------
3059    Capturing subpattern count = 0
3060    No options
3061    First char = 'x'
3062    Need char = 'b'
3063        xaaaab
3064     0: xaaaab
3065    
3066    /(?U)xa++b/DZ
3067    ------------------------------------------------------------------
3068            Bra
3069            x
3070            a++
3071            b
3072            Ket
3073            End
3074    ------------------------------------------------------------------
3075    Capturing subpattern count = 0
3076    Options: ungreedy
3077    First char = 'x'
3078    Need char = 'b'
3079        xaaaab
3080     0: xaaaab
3081    
3082    /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3083    ------------------------------------------------------------------
3084            Bra
3085            ^
3086            CBra 1
3087            CBra 2
3088            a+
3089            Ket
3090            CBra 3
3091            [ab]+?
3092            Ket
3093            CBra 4
3094            [bc]+
3095            Ket
3096            CBra 5
3097            \w*
3098            Ket
3099            Ket
3100            Ket
3101            End
3102    ------------------------------------------------------------------
3103    Capturing subpattern count = 5
3104    Options: anchored
3105    No first char
3106    No need char
3107    
3108    /^x(?U)a+b/DZ
3109    ------------------------------------------------------------------
3110            Bra
3111            ^
3112            x
3113            a++
3114            b
3115            Ket
3116            End
3117    ------------------------------------------------------------------
3118    Capturing subpattern count = 0
3119    Options: anchored
3120    No first char
3121    Need char = 'b'
3122    
3123    /^x(?U)(a+)b/DZ
3124    ------------------------------------------------------------------
3125            Bra
3126            ^
3127            x
3128            CBra 1
3129            a+?
3130            Ket
3131            b
3132            Ket
3133            End
3134    ------------------------------------------------------------------
3135    Capturing subpattern count = 1
3136    Options: anchored
3137    No first char
3138    Need char = 'b'
3139    
3140    /[.x.]/I
3141    Failed: POSIX collating elements are not supported at offset 0
3142    
3143    /[=x=]/I
3144    Failed: POSIX collating elements are not supported at offset 0
3145    
3146    /[:x:]/I
3147    Failed: POSIX named classes are supported only within a class at offset 0
3148    
3149    /\l/I
3150    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3151    
3152    /\L/I
3153    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3154    
3155    /\N{name}/I
3156    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3157    
3158    /\u/I
3159    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3160    
3161    /\U/I
3162    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3163    
3164    /[/I
3165    Failed: missing terminating ] for character class at offset 1
3166    
3167    /[a-/I
3168    Failed: missing terminating ] for character class at offset 3
3169    
3170    /[[:space:]/I
3171    Failed: missing terminating ] for character class at offset 10
3172    
3173    /[\s]/IDZ
3174    ------------------------------------------------------------------
3175            Bra
3176            [\x09\x0a\x0c\x0d ]
3177            Ket
3178            End
3179    ------------------------------------------------------------------
3180    Capturing subpattern count = 0
3181    No options
3182    No first char
3183    No need char
3184    
3185    /[[:space:]]/IDZ
3186    ------------------------------------------------------------------
3187            Bra
3188            [\x09-\x0d ]
3189            Ket
3190            End
3191    ------------------------------------------------------------------
3192    Capturing subpattern count = 0
3193    No options
3194    No first char
3195    No need char
3196    
3197    /[[:space:]abcde]/IDZ
3198    ------------------------------------------------------------------
3199            Bra
3200            [\x09-\x0d a-e]
3201            Ket
3202            End
3203    ------------------------------------------------------------------
3204    Capturing subpattern count = 0
3205    No options
3206    No first char
3207    No need char
3208    
3209    /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3210    Capturing subpattern count = 0
3211    Options: extended
3212    First char = '<'
3213    Need char = '>'
3214        <>
3215     0: <>
3216        <abcd>
3217     0: <abcd>
3218        <abc <123> hij>
3219     0: <abc <123> hij>
3220        <abc <def> hij>
3221     0: <def>
3222        <abc<>def>
3223     0: <abc<>def>
3224        <abc<>
3225     0: <>
3226        *** Failers
3227    No match
3228        <abc
3229    No match
3230    
3231    |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
3232    ------------------------------------------------------------------
3233            Bra
3234            8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3235            \b
3236            Ket
3237            End
3238    ------------------------------------------------------------------
3239    Capturing subpattern count = 0
3240    No options
3241    First char = '8'
3242    Need char = 'X'
3243    
3244    |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
3245    ------------------------------------------------------------------
3246            Bra
3247            $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3248            \b
3249            Ket
3250            End
3251    ------------------------------------------------------------------
3252    Capturing subpattern count = 0
3253    No options
3254    First char = '$'
3255    Need char = 'X'
3256    
3257    /(.*)\d+\1/I
3258    Capturing subpattern count = 1
3259    Max back reference = 1
3260    No options
3261    No first char
3262    No need char
3263    
3264    /(.*)\d+/I
3265    Capturing subpattern count = 1
3266    No options
3267    First char at start or follows newline
3268    No need char
3269    
3270    /(.*)\d+\1/Is
3271    Capturing subpattern count = 1
3272    Max back reference = 1
3273    Options: dotall
3274    No first char
3275    No need char
3276    
3277    /(.*)\d+/Is
3278    Capturing subpattern count = 1
3279    Options: anchored dotall
3280    No first char
3281    No need char
3282    
3283    /(.*(xyz))\d+\2/I
3284    Capturing subpattern count = 2
3285    Max back reference = 2
3286    No options
3287    First char at start or follows newline
3288    Need char = 'z'
3289    
3290    /((.*))\d+\1/I
3291    Capturing subpattern count = 2
3292    Max back reference = 1
3293    No options
3294    No first char
3295    No need char
3296        abc123bc
3297     0: bc123bc
3298     1: bc
3299     2: bc
3300    
3301    /a[b]/I
3302    Capturing subpattern count = 0
3303    No options
3304    First char = 'a'
3305    Need char = 'b'
3306    
3307    /(?=a).*/I
3308    Capturing subpattern count = 0
3309    No options
3310    First char = 'a'
3311    No need char
3312    
3313    /(?=abc).xyz/IiI
3314    Capturing subpattern count = 0
3315    Options: caseless
3316    First char = 'a' (caseless)
3317    Need char = 'z' (caseless)
3318    
3319    /(?=abc)(?i).xyz/I
3320    Capturing subpattern count = 0
3321    No options
3322    First char = 'a'
3323    Need char = 'z' (caseless)
3324    
3325    /(?=a)(?=b)/I
3326    Capturing subpattern count = 0
3327    No options
3328    First char = 'a'
3329    No need char
3330    
3331    /(?=.)a/I
3332    Capturing subpattern count = 0
3333    No options
3334    First char = 'a'
3335    No need char
3336    
3337    /((?=abcda)a)/I
3338    Capturing subpattern count = 1
3339    No options
3340    First char = 'a'
3341    Need char = 'a'
3342    
3343    /((?=abcda)ab)/I
3344    Capturing subpattern count = 1
3345    No options
3346    First char = 'a'
3347    Need char = 'b'
3348    
3349    /()a/I
3350    Capturing subpattern count = 1
3351    No options
3352    No first char
3353    Need char = 'a'
3354    
3355    /(?(1)ab|ac)(.)/I
3356    Capturing subpattern count = 1
3357    No options
3358    First char = 'a'
3359    No need char
3360    
3361    /(?(1)abz|acz)(.)/I
3362    Capturing subpattern count = 1
3363    No options
3364    First char = 'a'
3365    Need char = 'z'
3366    
3367    /(?(1)abz)(.)/I
3368    Capturing subpattern count = 1
3369    No options
3370    No first char
3371    No need char
3372    
3373    /(?(1)abz)(1)23/I
3374    Capturing subpattern count = 1
3375    No options
3376    No first char
3377    Need char = '3'
3378    
3379    /(a)+/I
3380    Capturing subpattern count = 1
3381    No options
3382    First char = 'a'
3383    No need char
3384    
3385    /(a){2,3}/I
3386    Capturing subpattern count = 1
3387    No options
3388    First char = 'a'
3389    Need char = 'a'
3390    
3391    /(a)*/I
3392    Capturing subpattern count = 1
3393    No options
3394    No first char
3395    No need char
3396    
3397    /[a]/I
3398    Capturing subpattern count = 0
3399    No options
3400    First char = 'a'
3401    No need char
3402    
3403    /[ab]/I
3404    Capturing subpattern count = 0
3405    No options
3406    No first char
3407    No need char
3408    
3409    /[ab]/IS
3410    Capturing subpattern count = 0
3411    No options
3412    No first char
3413    No need char
3414    Starting byte set: a b
3415    
3416    /[^a]/I
3417    Capturing subpattern count = 0
3418    No options
3419    No first char
3420    No need char
3421    
3422    /\d456/I
3423    Capturing subpattern count = 0
3424    No options
3425    No first char
3426    Need char = '6'
3427    
3428    /\d456/IS
3429    Capturing subpattern count = 0
3430    No options
3431    No first char
3432    Need char = '6'
3433    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3434    
3435    /a^b/I
3436    Capturing subpattern count = 0
3437    No options
3438    First char = 'a'
3439    Need char = 'b'
3440    
3441    /^a/Im
3442    Capturing subpattern count = 0
3443    Options: multiline
3444    First char at start or follows newline
3445    Need char = 'a'
3446      abcde
3447     0: a
3448      xy\nabc
3449     0: a
3450      *** Failers
3451    No match
3452      xyabc
3453    No match
3454    
3455    /c|abc/I
3456    Capturing subpattern count = 0
3457    No options
3458    No first char
3459    Need char = 'c'
3460    
3461    /(?i)[ab]/IS
3462    Capturing subpattern count = 0
3463    Options: caseless
3464    No first char
3465    No need char
3466    Starting byte set: A B a b
3467    
3468    /[ab](?i)cd/IS
3469    Capturing subpattern count = 0
3470    No options
3471    No first char
3472    Need char = 'd' (caseless)
3473    Starting byte set: a b
3474    
3475    /abc(?C)def/I
3476    Capturing subpattern count = 0
3477    No options
3478    First char = 'a'
3479    Need char = 'f'
3480        abcdef
3481    --->abcdef
3482      0 ^  ^       d
3483     0: abcdef
3484        1234abcdef
3485    --->1234abcdef
3486      0     ^  ^       d
3487     0: abcdef
3488        *** Failers
3489    No match
3490        abcxyz
3491    No match
3492        abcxyzf
3493    --->abcxyzf
3494      0 ^  ^        d
3495    No match
3496    
3497    /abc(?C)de(?C1)f/I
3498    Capturing subpattern count = 0
3499    No options
3500    First char = 'a'
3501    Need char = 'f'
3502        123abcdef
3503    --->123abcdef
3504      0    ^  ^       d
3505      1    ^    ^     f
3506     0: abcdef
3507    
3508    /(?C1)\dabc(?C2)def/I
3509    Capturing subpattern count = 0
3510    No options
3511    No first char
3512    Need char = 'f'
3513        1234abcdef
3514    --->1234abcdef
3515      1 ^              \d
3516      1  ^             \d
3517      1   ^            \d
3518      1    ^           \d
3519      2    ^   ^       d
3520     0: 4abcdef
3521        *** Failers
3522    No match
3523        abcdef
3524    --->abcdef
3525      1 ^          \d
3526      1  ^         \d
3527      1   ^        \d
3528      1    ^       \d
3529      1     ^      \d
3530      1      ^     \d
3531    No match
3532    
3533    /(?C255)ab/I
3534    Capturing subpattern count = 0
3535    No options
3536    First char = 'a'
3537    Need char = 'b'
3538    
3539    /(?C256)ab/I
3540    Failed: number after (?C is > 255 at offset 6
3541    
3542    /(?Cab)xx/I
3543    Failed: closing ) for (?C expected at offset 3
3544    
3545    /(?C12vr)x/I
3546    Failed: closing ) for (?C expected at offset 5
3547    
3548    /abc(?C)def/I
3549    Capturing subpattern count = 0
3550    No options
3551    First char = 'a'
3552    Need char = 'f'
3553        *** Failers
3554    No match
3555        \x83\x0\x61bcdef
3556    --->\x83\x00abcdef
3557      0         ^  ^       d
3558     0: abcdef
3559    
3560    /(abc)(?C)de(?C1)f/I
3561    Capturing subpattern count = 1
3562    No options
3563    First char = 'a'
3564    Need char = 'f'
3565        123abcdef
3566    --->123abcdef
3567      0    ^  ^       d
3568      1    ^    ^     f
3569     0: abcdef
3570     1: abc
3571        123abcdef\C+
3572    Callout 0: last capture = 1
3573     0: <unset>
3574     1: abc
3575    --->123abcdef
3576           ^  ^       d
3577    Callout 1: last capture = 1
3578     0: <unset>
3579     1: abc
3580    --->123abcdef
3581           ^    ^     f
3582     0: abcdef
3583     1: abc
3584        123abcdef\C-
3585     0: abcdef
3586     1: abc
3587        *** Failers
3588    No match
3589        123abcdef\C!1
3590    --->123abcdef
3591      0    ^  ^       d
3592      1    ^    ^     f
3593    No match
3594    
3595    /(?C0)(abc(?C1))*/I
3596    Capturing subpattern count = 1
3597    No options
3598    No first char
3599    No need char
3600        abcabcabc
3601    --->abcabcabc
3602      0 ^             (abc(?C1))*
3603      1 ^  ^          )
3604      1 ^     ^       )
3605      1 ^        ^    )
3606     0: abcabcabc
3607     1: abc
3608        abcabc\C!1!3
3609    --->abcabc
3610      0 ^          (abc(?C1))*
3611      1 ^  ^       )
3612      1 ^     ^    )
3613     0: abcabc
3614     1: abc
3615        *** Failers
3616    --->*** Failers
3617      0 ^               (abc(?C1))*
3618     0:
3619        abcabcabc\C!1!3
3620    --->abcabcabc
3621      0 ^             (abc(?C1))*
3622      1 ^  ^          )
3623      1 ^     ^       )
3624      1 ^        ^    )
3625     0: abcabc
3626     1: abc
3627    
3628    /(\d{3}(?C))*/I
3629    Capturing subpattern count = 1
3630    No options
3631    No first char
3632    No need char
3633        123\C+
3634    Callout 0: last capture = -1
3635     0: <unset>
3636    --->123
3637        ^  ^    )
3638     0: 123
3639     1: 123
3640        123456\C+
3641    Callout 0: last capture = -1
3642     0: <unset>
3643    --->123456
3644        ^  ^       )
3645    Callout 0: last capture = 1
3646     0: <unset>
3647     1: 123
3648    --->123456
3649        ^     ^    )
3650     0: 123456
3651     1: 456
3652        123456789\C+
3653    Callout 0: last capture = -1
3654     0: <unset>
3655    --->123456789
3656        ^  ^          )
3657    Callout 0: last capture = 1
3658     0: <unset>
3659     1: 123
3660    --->123456789
3661        ^     ^       )
3662    Callout 0: last capture = 1
3663     0: <unset>
3664     1: 456
3665    --->123456789
3666        ^        ^    )
3667     0: 123456789
3668     1: 789
3669    
3670    /((xyz)(?C)p|(?C1)xyzabc)/I
3671    Capturing subpattern count = 2
3672    No options
3673    First char = 'x'
3674    No need char
3675        xyzabc\C+
3676    Callout 0: last capture = 2
3677     0: <unset>
3678     1: <unset>
3679     2: xyz
3680    --->xyzabc
3681        ^  ^       p
3682    Callout 1: last capture = -1
3683     0: <unset>
3684    --->xyzabc
3685        ^          x
3686     0: xyzabc
3687     1: xyzabc
3688    
3689    /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3690    Capturing subpattern count = 3
3691    No options
3692    First char = 'X'
3693    Need char = 'x'
3694        Xxyzabc\C+
3695    Callout 0: last capture = 3
3696     0: <unset>
3697     1: X
3698     2: <unset>
3699     3: xyz
3700    --->Xxyzabc
3701        ^   ^       p
3702    Callout 1: last capture = 1
3703     0: <unset>
3704     1: X
3705    --->Xxyzabc
3706        ^^          x
3707     0: Xxyzabc
3708     1: X
3709     2: xyzabc
3710    
3711    /(?=(abc))(?C)abcdef/I
3712    Capturing subpattern count = 1
3713    No options
3714    First char = 'a'
3715    Need char = 'f'
3716        abcdef\C+
3717    Callout 0: last capture = 1
3718     0: <unset>
3719     1: abc
3720    --->abcdef
3721        ^          a
3722     0: abcdef
3723     1: abc
3724    
3725    /(?!(abc)(?C1)d)(?C2)abcxyz/I
3726    Capturing subpattern count = 1
3727    No options
3728    First char = 'a'
3729    Need char = 'z'
3730        abcxyz\C+
3731    Callout 1: last capture = 1
3732     0: <unset>
3733     1: abc
3734    --->abcxyz
3735        ^  ^       d
3736    Callout 2: last capture = -1
3737     0: <unset>
3738    --->abcxyz
3739        ^          a
3740     0: abcxyz
3741    
3742    /(?<=(abc)(?C))xyz/I
3743    Capturing subpattern count = 1
3744    No options
3745    First char = 'x'
3746    Need char = 'z'
3747       abcxyz\C+
3748    Callout 0: last capture = 1
3749     0: <unset>
3750     1: abc
3751    --->abcxyz
3752           ^       )
3753     0: xyz
3754     1: abc
3755    
3756    /a(b+)(c*)(?C1)/I
3757    Capturing subpattern count = 2
3758    No options
3759    First char = 'a'
3760    Need char = 'b'
3761        abbbbbccc\C*1
3762    --->abbbbbccc
3763      1 ^        ^
3764    Callout data = 1
3765      1 ^       ^
3766    Callout data = 1
3767      1 ^      ^
3768    Callout data = 1
3769      1 ^     ^
3770    Callout data = 1
3771      1 ^    ^
3772    Callout data = 1
3773      1 ^   ^
3774    Callout data = 1
3775      1 ^  ^
3776    Callout data = 1
3777      1 ^ ^
3778    Callout data = 1
3779    No match
3780    
3781    /a(b+?)(c*?)(?C1)/I
3782    Capturing subpattern count = 2
3783    No options
3784    First char = 'a'
3785    Need char = 'b'
3786        abbbbbccc\C*1
3787    --->abbbbbccc
3788      1 ^ ^
3789    Callout data = 1
3790      1 ^  ^
3791    Callout data = 1
3792      1 ^   ^
3793    Callout data = 1
3794      1 ^    ^
3795    Callout data = 1
3796      1 ^     ^
3797    Callout data = 1
3798      1 ^      ^
3799    Callout data = 1
3800      1 ^       ^
3801    Callout data = 1
3802      1 ^        ^
3803    Callout data = 1
3804    No match
3805    
3806    /(?C)abc/I
3807    Capturing subpattern count = 0
3808    No options
3809    First char = 'a'
3810    Need char = 'c'
3811    
3812    /(?C)^abc/I
3813    Capturing subpattern count = 0
3814    Options: anchored
3815    No first char
3816    No need char
3817    
3818    /(?C)a|b/IS
3819    Capturing subpattern count = 0
3820    No options
3821    No first char
3822    No need char
3823    Starting byte set: a b
3824    
3825    /(?R)/I
3826    Failed: recursive call could loop indefinitely at offset 3
3827    
3828    /(a|(?R))/I
3829    Failed: recursive call could loop indefinitely at offset 6
3830    
3831    /(ab|(bc|(de|(?R))))/I
3832    Failed: recursive call could loop indefinitely at offset 15
3833    
3834    /x(ab|(bc|(de|(?R))))/I
3835    Capturing subpattern count = 3
3836    No options
3837    First char = 'x'
3838    No need char
3839        xab
3840     0: xab
3841     1: ab
3842        xbc
3843     0: xbc
3844     1: bc
3845     2: bc
3846        xde
3847     0: xde
3848     1: de
3849     2: de
3850     3: de
3851        xxab
3852     0: xxab
3853     1: xab
3854     2: xab
3855     3: xab
3856        xxxab
3857     0: xxxab
3858     1: xxab
3859     2: xxab
3860     3: xxab
3861        *** Failers
3862    No match
3863        xyab
3864    No match
3865    
3866    /(ab|(bc|(de|(?1))))/I
3867    Failed: recursive call could loop indefinitely at offset 15
3868    
3869    /x(ab|(bc|(de|(?1)x)x)x)/I
3870    Failed: recursive call could loop indefinitely at offset 16
3871    
3872    /^([^()]|\((?1)*\))*$/I
3873    Capturing subpattern count = 1
3874    Options: anchored
3875    No first char
3876    No need char
3877        abc
3878     0: abc
3879     1: c
3880        a(b)c
3881     0: a(b)c
3882     1: c
3883        a(b(c))d
3884     0: a(b(c))d
3885     1: d
3886        *** Failers)
3887    No match
3888        a(b(c)d
3889    No match
3890    
3891    /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3892    Capturing subpattern count = 1
3893    Options: anchored
3894    No first char
3895    Need char = '<'
3896       >abc>123<xyz<
3897     0: >abc>123<xyz<
3898     1: 3
3899       >abc>1(2)3<xyz<
3900     0: >abc>1(2)3<xyz<
3901     1: 3
3902       >abc>(1(2)3)<xyz<
3903     0: >abc>(1(2)3)<xyz<
3904     1: (1(2)3)
3905    
3906    /(a(?1)b)/DZ
3907    ------------------------------------------------------------------
3908            Bra
3909            CBra 1
3910            a
3911            Once
3912            Recurse
3913            Ket
3914            b
3915            Ket
3916            Ket
3917            End
3918    ------------------------------------------------------------------
3919    Capturing subpattern count = 1
3920    No options
3921    First char = 'a'
3922    Need char = 'b'
3923    
3924    /(a(?1)+b)/DZ
3925    ------------------------------------------------------------------
3926            Bra
3927            CBra 1
3928            a
3929            Once
3930            Recurse
3931            KetRmax
3932            b
3933            Ket
3934            Ket
3935            End
3936    ------------------------------------------------------------------
3937    Capturing subpattern count = 1
3938    No options
3939    First char = 'a'
3940    Need char = 'b'
3941    
3942    /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii
3943    Capturing subpattern count = 4
3944    Max back reference = 4
3945    Options: anchored caseless
3946    No first char
3947    No need char
3948        1221
3949     0: 1221
3950     1: 1221
3951     2: 1
3952        Satan, oscillate my metallic sonatas!
3953     0: Satan, oscillate my metallic sonatas!
3954     1: <unset>
3955     2: <unset>
3956     3: Satan, oscillate my metallic sonatas
3957     4: S
3958        A man, a plan, a canal: Panama!
3959     0: A man, a plan, a canal: Panama!
3960     1: <unset>
3961     2: <unset>
3962     3: A man, a plan, a canal: Panama
3963     4: A
3964        Able was I ere I saw Elba.
3965     0: Able was I ere I saw Elba.
3966     1: <unset>
3967     2: <unset>
3968     3: Able was I ere I saw Elba
3969     4: A
3970        *** Failers
3971    No match
3972        The quick brown fox
3973    No match
3974    
3975    /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3976    Capturing subpattern count = 2
3977    Options: anchored
3978    No first char
3979    No need char
3980        12
3981     0: 12
3982     1: 12
3983        (((2+2)*-3)-7)
3984     0: (((2+2)*-3)-7)
3985     1: (((2+2)*-3)-7)
3986     2: -
3987        -12
3988     0: -12
3989     1: -12
3990        *** Failers
3991    No match
3992        ((2+2)*-3)-7)
3993    No match
3994    
3995    /^(x(y|(?1){2})z)/I
3996    Capturing subpattern count = 2
3997    Options: anchored
3998    No first char
3999    No need char
4000        xyz
4001     0: xyz
4002     1: xyz
4003     2: y
4004        xxyzxyzz
4005     0: xxyzxyzz
4006     1: xxyzxyzz
4007     2: xyzxyz
4008        *** Failers
4009    No match
4010        xxyzz
4011    No match
4012        xxyzxyzxyzz
4013    No match
4014    
4015    /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4016    Capturing subpattern count = 2
4017    Options: extended
4018    First char = '<'
4019    Need char = '>'
4020        <>
4021     0: <>
4022     1: <>
4023     2: <>
4024        <abcd>
4025     0: <abcd>
4026     1: <abcd>
4027     2: <abcd>
4028        <abc <123> hij>
4029     0: <abc <123> hij>
4030     1: <abc <123> hij>
4031     2: <abc <123> hij>
4032        <abc <def> hij>
4033     0: <def>
4034     1: <def>
4035     2: <def>
4036        <abc<>def>
4037     0: <abc<>def>
4038     1: <abc<>def>
4039     2: <abc<>def>
4040        <abc<>
4041     0: <>
4042     1: <>
4043     2: <>
4044        *** Failers
4045    No match
4046        <abc
4047    No match
4048    
4049    /(?1)/I
4050    Failed: reference to non-existent subpattern at offset 3
4051    
4052    /((?2)(abc)/I
4053    Failed: missing ) at offset 10
4054    
4055    /^(abc)def(?1)/I
4056    Capturing subpattern count = 1
4057    Options: anchored
4058    No first char
4059    No need char
4060        abcdefabc
4061     0: abcdefabc
4062     1: abc
4063    
4064    /^(a|b|c)=(?1)+/I
4065