/[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 57 by nigel, Sat Feb 24 21:39:50 2007 UTC revision 426 by ph10, Wed Aug 26 15:38:32 2009 UTC
# Line 1  Line 1 
1  PCRE version 3.7 29-Oct-2001  /(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
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 107  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 131  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 180  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 218  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 266  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 281  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 293  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 306  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 318  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 333  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 354  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 394  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 410  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 418  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 434  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 483  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 554  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 615  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 631  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 663  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 701  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 714  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 732  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 755  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 771  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 864  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 944  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 963  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 975  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 995  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 1006  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 1029  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 1042  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 1178  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 1194  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 1203  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 1218  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 1229  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 1238  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 1284  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 1317  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 1578  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 1594  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 1623  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 1638  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 1649  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 1680  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 1689  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 1708  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 1717  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 1727  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 1743  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 1759  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 1778  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 1787  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 1805  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 2058  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  /[\200-\410]/  /[\200-\110]/I
2176  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2177    
2178  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2179  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2180    
2181  /This one's here because of the large output vector needed/  /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 = 'T'  First char = 'T'
2185  Need char = 'd'  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)/  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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  Capturing subpattern count = 271
2189  Max back reference = 270  Max back reference = 270
2190  No options  No options
# Line 2353  No need char Line 2464  No need char
2464  270: ABC  270: ABC
2465  271: ABC  271: ABC
2466    
2467  /This one's here because Perl does this differently and PCRE can't at present/  /This one's here because Perl does this differently and PCRE can't at present/I
2468  Capturing subpattern count = 0  Capturing subpattern count = 0
2469  No options  No options
2470  First char = 'T'  First char = 'T'
2471  Need char = 't'  Need char = 't'
2472    
2473  /(main(O)?)+/  /(main(O)?)+/I
2474  Capturing subpattern count = 2  Capturing subpattern count = 2
2475  No options  No options
2476  First char = 'm'  First char = 'm'
# Line 2371  Need char = 'n' Line 2482  Need char = 'n'
2482   0: mainOmain   0: mainOmain
2483   1: main   1: main
2484   2: O   2: O
2485    
2486  / End of testinput2 /  /These are all cases where Perl does it differently (nested captures)/I
2487  Capturing subpattern count = 0  Capturing subpattern count = 1
2488  No options  No options
2489  First char = ' '  First char = 'T'
2490  Need char = ' '  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    Capturing subpattern count = 1
4066    Options: anchored
4067    No first char
4068    No need char
4069        a=a
4070     0: a=a
4071     1: a
4072        a=b
4073     0: a=b
4074     1: a
4075        a=bc
4076     0: a=bc
4077     1: a
4078    
4079    /^(a|b|c)=((?1))+/I
4080    Capturing subpattern count = 2
4081    Options: anchored
4082    No first char
4083    No need char
4084        a=a
4085     0: a=a
4086     1: a
4087     2: a
4088        a=b
4089     0: a=b
4090     1: a
4091     2: b
4092        a=bc
4093     0: a=bc
4094     1: a
4095     2: c
4096    
4097    /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4098    ------------------------------------------------------------------
4099            Bra
4100            a
4101            CBra 1
4102            b
4103            Alt
4104            c
4105            Ket
4106            d
4107            CBra 2
4108            e
4109            Ket
4110            Ket
4111            End
4112    ------------------------------------------------------------------
4113    Capturing subpattern count = 2
4114    Named capturing subpatterns:
4115      longername2   2
4116      name1         1
4117    No options
4118    First char = 'a'
4119    Need char = 'e'
4120        abde
4121     0: abde
4122     1: b
4123     2: e
4124        acde
4125     0: acde
4126     1: c
4127     2: e
4128    
4129    /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4130    ------------------------------------------------------------------
4131            Bra
4132            Bra
4133            a
4134            CBra 1
4135            c
4136            CBra 2
4137            d
4138            Ket
4139            Ket
4140            Ket
4141            CBra 3
4142            a
4143            Ket
4144            Ket
4145            End
4146    ------------------------------------------------------------------
4147    Capturing subpattern count = 3
4148    Named capturing subpatterns:
4149      a   3
4150      c   1
4151      d   2
4152    No options
4153    First char = 'a'
4154    Need char = 'a'
4155    
4156    /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4157    ------------------------------------------------------------------
4158            Bra
4159            CBra 1
4160            a
4161            Ket
4162            Any
4163            Any
4164            Any
4165            \1
4166            bbb
4167            Once
4168            Recurse
4169            Ket
4170            d
4171            Ket
4172            End
4173    ------------------------------------------------------------------
4174    Capturing subpattern count = 1
4175    Max back reference = 1
4176    Named capturing subpatterns:
4177      a   1
4178    No options
4179    First char = 'a'
4180    Need char = 'd'
4181    
4182    /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
4183    Capturing subpattern count = 4
4184    Max back reference = 4
4185    Named capturing subpatterns:
4186      four    4
4187      one     1
4188      three   3
4189      two     2
4190    Options: anchored caseless
4191    No first char
4192    No need char
4193        1221
4194     0: 1221
4195     1: 1221
4196     2: 1
4197        Satan, oscillate my metallic sonatas!
4198     0: Satan, oscillate my metallic sonatas!
4199     1: <unset>
4200     2: <unset>
4201     3: Satan, oscillate my metallic sonatas
4202     4: S
4203        A man, a plan, a canal: Panama!
4204     0: A man, a plan, a canal: Panama!
4205     1: <unset>
4206     2: <unset>
4207     3: A man, a plan, a canal: Panama
4208     4: A
4209        Able was I ere I saw Elba.
4210     0: Able was I ere I saw Elba.
4211     1: <unset>
4212     2: <unset>
4213     3: Able was I ere I saw Elba
4214     4: A
4215        *** Failers
4216    No match
4217        The quick brown fox
4218    No match
4219    
4220    /((?(R)a|b))\1(?1)?/I
4221    Capturing subpattern count = 1
4222    Max back reference = 1
4223    No options
4224    No first char
4225    No need char
4226      bb
4227     0: bb
4228     1: b
4229      bbaa
4230     0: bba
4231     1: b
4232    
4233    /(.*)a/Is
4234    Capturing subpattern count = 1
4235    Options: anchored dotall
4236    No first char
4237    Need char = 'a'
4238    
4239    /(.*)a\1/Is
4240    Capturing subpattern count = 1
4241    Max back reference = 1
4242    Options: dotall
4243    No first char
4244    Need char = 'a'
4245    
4246    /(.*)a(b)\2/Is
4247    Capturing subpattern count = 2
4248    Max back reference = 2
4249    Options: anchored dotall
4250    No first char
4251    Need char = 'b'
4252    
4253    /((.*)a|(.*)b)z/Is
4254    Capturing subpattern count = 3
4255    Options: anchored dotall
4256    No first char
4257    Need char = 'z'
4258    
4259    /((.*)a|(.*)b)z\1/Is
4260    Capturing subpattern count = 3
4261    Max back reference = 1
4262    Options: dotall
4263    No first char
4264    Need char = 'z'
4265    
4266    /((.*)a|(.*)b)z\2/Is
4267    Capturing subpattern count = 3
4268    Max back reference = 2
4269    Options: dotall
4270    No first char
4271    Need char = 'z'
4272    
4273    /((.*)a|(.*)b)z\3/Is
4274    Capturing subpattern count = 3
4275    Max back reference = 3
4276    Options: dotall
4277    No first char
4278    Need char = 'z'
4279    
4280    /((.*)a|^(.*)b)z\3/Is
4281    Capturing subpattern count = 3
4282    Max back reference = 3
4283    Options: anchored dotall
4284    No first char
4285    Need char = 'z'
4286    
4287    /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4288    Capturing subpattern count = 31
4289    Options: anchored dotall
4290    No first char
4291    No need char
4292    
4293    /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4294    Capturing subpattern count = 31
4295    Max back reference = 31
4296    Options: dotall
4297    No first char
4298    No need char
4299    
4300    /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4301    Capturing subpattern count = 32
4302    Max back reference = 32
4303    Options: dotall
4304    No first char
4305    No need char
4306    
4307    /(a)(bc)/INDZ
4308    ------------------------------------------------------------------
4309            Bra
4310            Bra
4311            a
4312            Ket
4313            Bra
4314            bc
4315            Ket
4316            Ket
4317            End
4318    ------------------------------------------------------------------
4319    Capturing subpattern count = 0
4320    Options: no_auto_capture
4321    First char = 'a'
4322    Need char = 'c'
4323      abc
4324     0: abc
4325    
4326    /(?P<one>a)(bc)/INDZ
4327    ------------------------------------------------------------------
4328            Bra
4329            CBra 1
4330            a
4331            Ket
4332            Bra
4333            bc
4334            Ket
4335            Ket
4336            End
4337    ------------------------------------------------------------------
4338    Capturing subpattern count = 1
4339    Named capturing subpatterns:
4340      one   1
4341    Options: no_auto_capture
4342    First char = 'a'
4343    Need char = 'c'
4344      abc
4345     0: abc
4346     1: a
4347    
4348    /(a)(?P<named>bc)/INDZ
4349    ------------------------------------------------------------------
4350            Bra
4351            Bra
4352            a
4353            Ket
4354            CBra 1
4355            bc
4356            Ket
4357            Ket
4358            End
4359    ------------------------------------------------------------------
4360    Capturing subpattern count = 1
4361    Named capturing subpatterns:
4362      named   1
4363    Options: no_auto_capture
4364    First char = 'a'
4365    Need char = 'c'
4366    
4367    /(a+)*zz/I
4368    Capturing subpattern count = 1
4369    No options
4370    No first char
4371    Need char = 'z'
4372      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4373    Minimum match() limit = 8
4374    Minimum match() recursion limit = 6
4375     0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4376     1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4377      aaaaaaaaaaaaaz\M
4378    Minimum match() limit = 32768
4379    Minimum match() recursion limit = 42
4380    No match
4381    
4382    /(aaa(?C1)bbb|ab)/I
4383    Capturing subpattern count = 1
4384    No options
4385    First char = 'a'
4386    Need char = 'b'
4387       aaabbb
4388    --->aaabbb
4389      1 ^  ^       b
4390     0: aaabbb
4391     1: aaabbb
4392       aaabbb\C*0
4393    --->aaabbb
4394      1 ^  ^       b
4395     0: aaabbb
4396     1: aaabbb
4397       aaabbb\C*1
4398    --->aaabbb
4399      1 ^  ^       b
4400    Callout data = 1
4401     0: ab
4402     1: ab
4403       aaabbb\C*-1
4404    --->aaabbb
4405      1 ^  ^       b
4406    Callout data = -1
4407    No match
4408    
4409    /ab(?P<one>cd)ef(?P<two>gh)/I
4410    Capturing subpattern count = 2
4411    Named capturing subpatterns:
4412      one   1
4413      two   2
4414    No options
4415    First char = 'a'
4416    Need char = 'h'
4417        abcdefgh
4418     0: abcdefgh
4419     1: cd
4420     2: gh
4421        abcdefgh\C1\Gtwo
4422     0: abcdefgh
4423     1: cd
4424     2: gh
4425     1C cd (2)
4426      G gh (2) two
4427        abcdefgh\Cone\Ctwo
4428     0: abcdefgh
4429     1: cd
4430     2: gh
4431      C cd (2) one
4432      C gh (2) two
4433        abcdefgh\Cthree
4434    no parentheses with name "three"
4435     0: abcdefgh
4436     1: cd
4437     2: gh
4438    copy substring three failed -7
4439    
4440    /(?P<Tes>)(?P<Test>)/DZ
4441    ------------------------------------------------------------------
4442            Bra
4443            CBra 1
4444            Ket
4445            CBra 2
4446            Ket
4447            Ket
4448            End
4449    ------------------------------------------------------------------
4450    Capturing subpattern count = 2
4451    Named capturing subpatterns:
4452      Tes    1
4453      Test   2
4454    No options
4455    No first char
4456    No need char
4457    
4458    /(?P<Test>)(?P<Tes>)/DZ
4459    ------------------------------------------------------------------
4460            Bra
4461            CBra 1
4462