/[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 65 by nigel, Sat Feb 24 21:40:08 2007 UTC revision 427 by ph10, Fri Aug 28 09:55:54 2009 UTC
# Line 1  Line 1 
1  PCRE version 4.1 12-Mar-2003  /(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
# 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
# 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 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  Study size = 40  Starting byte set: c d e
 Starting character 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  Study size = 40  Starting byte set: C D E c d e
 Starting character 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  Study size = 40  Starting byte set: a b c d
 Starting character 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  Study size = 40  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
 Starting character 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 184  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  Study size = 40  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
 Starting character set: \x09 \x0a \x0c \x0d \x20 a b  
187    
188  /(ab\2)/  /(ab\2)/
189  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
# Line 198  Failed: reference to non-existent subpat Line 191  Failed: reference to non-existent subpat
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 223  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 271  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 288  No match Line 281  No match
281  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
282  Failed: 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 298  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
# Line 311  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 323  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 338  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 359  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 399  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 415  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 423  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 439  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 488  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' (caseless)  First char = 'a' (caseless)
488  Need char = 'c' (caseless)  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  No need char  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  Study size = 40  Starting byte set: a b c d
 Starting character 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  Study size = 40  Starting byte set: A B C D a b c d
 Starting character 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  Study size = 40  Starting byte set: b c x y
 Starting character 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 562  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 5  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
 Case state changes  
579  First char = 'b' (caseless)  First char = 'b' (caseless)
580  Need char = 'h' (caseless)  Need char = 'h' (caseless)
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
 Case state changes  
595  First char = 'b' (caseless)  First char = 'b' (caseless)
596  No need char  No need char
597  Study returned NULL  Study returned NULL
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  Study size = 40  Starting byte set: C a b c d
 Starting character 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 624  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 640  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  No need char  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
# Line 672  No need char Line 660  No need char
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  Study size = 40  Starting byte set: a b
 Starting character 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  Study size = 40  Starting byte set: a o
 Starting character 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  Study size = 40  Starting byte set: a b
683  Starting character set: a b  
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 713  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 726  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 744  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 767  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 783  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
# Line 841  No need char Line 848  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 884  Failed: reference to non-existent subpat Line 891  Failed: reference to non-existent subpat
891  /(a)|\2/  /(a)|\2/
892  Failed: 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  /:(?:/  /:(?:/
# Line 918  Failed: missing ) at offset 4 Line 925  Failed: missing ) at offset 4
925  Failed: unrecognized character after (?< at offset 3  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 956  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 975  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 987  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 1007  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 1018  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  No need char  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 1041  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 1054  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  No need char  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 1190  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 1206  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 1215  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 1230  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 1241  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 1250  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
# Line 1258  No need char Line 1262  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 1296  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
# Line 1309  No need char Line 1313  No need char
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  No need char  No need char
# Line 1318  No need char Line 1323  No need char
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 1329  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  Need char = 'a'  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 1590  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 1606  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 1635  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 1650  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 1661  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 1692  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 1701  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 1720  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 1729  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 1739  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 1755  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 1771  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 1790  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 1801  Need char = ')' Line 1807  Need char = ')'
1807   2: 123   2: 123
1808   3: <unset>   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 1817  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    0  37 Bra 0          Bra
1889    3     ^          ^
1890    4     [0-9A-Za-z]          [\x00-\x7f]
1891   37  37 Ket          Ket
1892   40     End          End
1893  ------------------------------------------------------------------  ------------------------------------------------------------------
1894  Capturing subpattern count = 0  Capturing subpattern count = 0
1895  Options: anchored  Options: anchored
1896  No first char  No first char
1897  No need char  No need char
1898    
1899  /^[[:alpha:]]/D  /^[[:^ascii:]]/DZ
1900  ------------------------------------------------------------------  ------------------------------------------------------------------
1901    0  37 Bra 0          Bra
1902    3     ^          ^
1903    4     [A-Za-z]          [\x80-\xff] (neg)
1904   37  37 Ket          Ket
1905   40     End          End
1906  ------------------------------------------------------------------  ------------------------------------------------------------------
1907  Capturing subpattern count = 0  Capturing subpattern count = 0
1908  Options: anchored  Options: anchored
1909  No first char  No first char
1910  No need char  No need char
1911    
1912  /^[[:ascii:]]/D  /^[[:blank:]]/DZ
1913  ------------------------------------------------------------------  ------------------------------------------------------------------
1914    0  37 Bra 0          Bra
1915    3     ^          ^
1916    4     [\x00-\x7f]          [\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  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1926  ------------------------------------------------------------------  ------------------------------------------------------------------
1927    0  37 Bra 0          Bra
1928    3     ^          ^
1929    4     [\x09 ]          [\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  /^[[:cntrl:]]/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-\x1f\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  /^[[:digit:]]/D  /^[[:digit:]]/DZ
1960  ------------------------------------------------------------------  ------------------------------------------------------------------
1961    0  37 Bra 0          Bra
1962    3     ^          ^
1963    4     [0-9]          [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  /^[[:graph:]]/D  /^[[:graph:]]/DZ
1973  ------------------------------------------------------------------  ------------------------------------------------------------------
1974    0  37 Bra 0          Bra
1975    3     ^          ^
1976    4     [!-~]          [!-~]
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  /^[[:lower:]]/D  /^[[:lower:]]/DZ
1986  ------------------------------------------------------------------  ------------------------------------------------------------------
1987    0  37 Bra 0          Bra
1988    3     ^          ^
1989    4     [a-z]          [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  /^[[:print:]]/D  /^[[:print:]]/DZ
1999  ------------------------------------------------------------------  ------------------------------------------------------------------
2000    0  37 Bra 0          Bra
2001    3     ^          ^
2002    4     [ -~]          [ -~]
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  /^[[:punct:]]/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  /^[[:space:]]/D  /^[[:space:]]/DZ
2025  ------------------------------------------------------------------  ------------------------------------------------------------------
2026    0  37 Bra 0          Bra
2027    3     ^          ^
2028    4     [\x09-\x0d ]          [\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  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2038  ------------------------------------------------------------------  ------------------------------------------------------------------
2039    0  37 Bra 0          Bra
2040    3     ^          ^
2041    4     [A-Z]          [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  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2051  ------------------------------------------------------------------  ------------------------------------------------------------------
2052    0  37 Bra 0          Bra
2053    3     ^          ^
2054    4     [0-9A-Fa-f]          [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  /^[[:word:]]/D  /^[[:word:]]/DZ
2064  ------------------------------------------------------------------  ------------------------------------------------------------------
2065    0  37 Bra 0          Bra
2066    3     ^          ^
2067    4     [0-9A-Z_a-z]          [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  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2077  ------------------------------------------------------------------  ------------------------------------------------------------------
2078    0  37 Bra 0          Bra
2079    3     ^          ^
2080    4     [ -~\x80-\xff]          [ -~\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  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2090  ------------------------------------------------------------------  ------------------------------------------------------------------
2091    0  37 Bra 0          Bra
2092    3     ^          ^
2093    4     [\x00-/1-2:-\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  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2103  ------------------------------------------------------------------  ------------------------------------------------------------------
2104    0  37 Bra 0          Bra
2105    3     ^          ^
2106    4     [\x00-\x08\x0a-\x1f!-\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 2096  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 2391  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 2409  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  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2487  Capturing subpattern count = 1  Capturing subpattern count = 1
2488  No options  No options
2489  First char = 'T'  First char = 'T'
2490  Need char = 's'  Need char = 's'
2491    
2492  /^(a(b)?)+$/  /^(a(b)?)+$/I
2493  Capturing subpattern count = 2  Capturing subpattern count = 2
2494  Options: anchored  Options: anchored
2495  No first char  No first char
# Line 2425  No need char Line 2498  No need char
2498   0: aba   0: aba
2499   1: a   1: a
2500   2: b   2: b
2501    
2502  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2503  Capturing subpattern count = 2  Capturing subpattern count = 2
2504  Options: anchored  Options: anchored
2505  No first char  No first char
2506  No need char  No need char
2507      aabbaa      aabbaa
2508   0: aabbaa   0: aabbaa
2509   1: aa   1: aa
2510   2: bb   2: bb
2511    
2512  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2513  Capturing subpattern count = 2  Capturing subpattern count = 2
2514  Options: anchored  Options: anchored
2515  No first char  No first char
2516  No need char  No need char
2517      aabbaa      aabbaa
2518   0: aabbaa   0: aabbaa
2519   1: aa   1: aa
2520   2: bb   2: bb
2521    
2522  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2523  Capturing subpattern count = 2  Capturing subpattern count = 2
2524  Options: anchored  Options: anchored
2525  No first char  No first char
2526  No need char  No need char
2527      aabbaa      aabbaa
2528   0: aabbaa   0: aabbaa
2529   1: aa   1: aa
2530   2: bb   2: bb
2531    
2532  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2533  Capturing subpattern count = 1  Capturing subpattern count = 1
2534  Options: anchored  Options: anchored
2535  No first char  No first char
2536  No need char  No need char
2537      aabbaa      aabbaa
2538   0: aabbaa   0: aabbaa
2539   1: bb   1: bb
2540    
2541  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2542  Capturing subpattern count = 3  Capturing subpattern count = 3
2543  Options: anchored  Options: anchored
2544  No first char  No first char
2545  No need char  No need char
2546      aabbaa      aabbaa
2547   0: aabbaa   0: aabbaa
2548   1: aa   1: aa
2549   2: bb   2: bb
2550   3: b   3: b
2551    
2552  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2553  Capturing subpattern count = 2  Capturing subpattern count = 2
2554  Options: anchored  Options: anchored
2555  No first char  No first char
2556  No need char  No need char
2557      aabbaa      aabbaa
2558   0: aabbaa   0: aabbaa
2559   1: bb   1: bb
2560   2: b   2: b
2561    
2562  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2563  Capturing subpattern count = 1  Capturing subpattern count = 1
2564  Options: anchored  Options: anchored
2565  No first char  No first char
2566  No need char  No need char
2567      aabbaa      aabbaa
2568   0: aabbaa   0: aabbaa
2569   1: bb   1: bb
2570    
2571  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2572  Capturing subpattern count = 1  Capturing subpattern count = 1
2573  Options: anchored  Options: anchored
2574  No first char  No first char
2575  No need char  No need char
2576      aabbbaa      aabbbaa
2577   0: aabbbaa   0: aabbbaa
2578   1: bbb   1: bbb
2579    
2580  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2581  Capturing subpattern count = 1  Capturing subpattern count = 1
2582  Options: anchored  Options: anchored
2583  No first char  No first char
2584  No need char  No need char
2585      aabbbaa      aabbbaa
2586   0: aabbbaa   0: aabbbaa
2587   1: bbb   1: bbb
2588    
2589  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2590  Capturing subpattern count = 1  Capturing subpattern count = 1
2591  Options: anchored  Options: anchored
2592  No first char  No first char
2593  No need char  No need char
2594      aabbaa      aabbaa
2595   0: aabbaa   0: aabbaa
2596   1: b   1: b
2597    
2598  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2599  Capturing subpattern count = 1  Capturing subpattern count = 1
2600  Options: anchored  Options: anchored
2601  No first char  No first char
2602  No need char  No need char
2603      aabbbaa      aabbbaa
2604   0: aabbbaa   0: aabbbaa
2605   1: bb   1: bb
2606    
2607  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2608  Capturing subpattern count = 3  Capturing subpattern count = 3
2609  Options: anchored  Options: anchored
2610  No first char  No first char
2611  No need char  No need char
2612      aabbbaa      aabbbaa
2613   0: aabbbaa   0: aabbbaa
2614   1: aa   1: aa
2615   2: bbb   2: bbb
2616   3: bb   3: bb
2617    
2618  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2619  Capturing subpattern count = 3  Capturing subpattern count = 3
2620  Options: anchored  Options: anchored
2621  No first char  No first char
2622  No need char  No need char
2623      aabbbbaa      aabbbbaa
2624   0: aabbbbaa   0: aabbbbaa
2625   1: aa   1: aa
2626   2: bbbb   2: bbbb
2627   3: bb   3: bb
2628    
2629  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2630  Capturing subpattern count = 0  Capturing subpattern count = 0
2631  No options  No options
2632  First char = '-'  First char = '-'
2633  Need char = '-'  Need char = '-'
2634    
2635  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2636  ------------------------------------------------------------------  ------------------------------------------------------------------
2637    0   3 Bra 0          Bra
2638    3   3 Ket          Ket
2639    6     End          End
2640  ------------------------------------------------------------------  ------------------------------------------------------------------
2641  Capturing subpattern count = 0  Capturing subpattern count = 0
2642  Options: extended  Options: extended
2643  No first char  No first char
2644  No need char  No need char
2645    
2646  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 13  
2647  ------------------------------------------------------------------  ------------------------------------------------------------------
2648    0   6 Bra 0          Bra
2649    3   1 a          a
2650    6   6 Ket          Ket
2651    9     End          End
2652  ------------------------------------------------------------------  ------------------------------------------------------------------
2653  Capturing subpattern count = 0  Capturing subpattern count = 0
2654  Options: extended  Options: extended
2655  First char = 'a'  First char = 'a'
2656  No need char  No need char
2657    
2658  /[\s]/D  /[\s]/DZ
2659  ------------------------------------------------------------------  ------------------------------------------------------------------
2660    0  36 Bra 0          Bra
2661    3     [\x09-\x0a\x0c-\x0d ]          [\x09\x0a\x0c\x0d ]
2662   36  36 Ket          Ket
2663   39     End          End
2664  ------------------------------------------------------------------  ------------------------------------------------------------------
2665  Capturing subpattern count = 0  Capturing subpattern count = 0
2666  No options  No options
2667  No first char  No first char
2668  No need char  No need char
2669    
2670  /[\S]/D  /[\S]/DZ
2671  ------------------------------------------------------------------  ------------------------------------------------------------------
2672    0  36 Bra 0          Bra
2673    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2674   36  36 Ket          Ket
2675   39     End          End
2676  ------------------------------------------------------------------  ------------------------------------------------------------------
2677  Capturing subpattern count = 0  Capturing subpattern count = 0
2678  No options  No options
2679  No first char  No first char
2680  No need char  No need char
2681    
2682  /a(?i)b/D  /a(?i)b/DZ
2683  ------------------------------------------------------------------  ------------------------------------------------------------------
2684    0  11 Bra 0          Bra
2685    3   1 a          a
2686    6  01 Opt       01 Opt
2687    8   1 b       NC b
2688   11  11 Ket          Ket
2689   14     End          End
2690  ------------------------------------------------------------------  ------------------------------------------------------------------
2691  Capturing subpattern count = 0  Capturing subpattern count = 0
2692  No options  No options
 Case state changes  
2693  First char = 'a'  First char = 'a'
2694  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2695      ab      ab
2696   0: ab   0: ab
2697      aB      aB
2698   0: aB   0: aB
2699      *** Failers      *** Failers
2700  No match  No match
2701      AB      AB
2702  No match  No match
2703    
2704  /(a(?i)b)/D  /(a(?i)b)/DZ
2705  ------------------------------------------------------------------  ------------------------------------------------------------------
2706    0  19 Bra 0          Bra
2707    3  11 Bra 1          CBra 1
2708    6   1 a          a
2709    9  01 Opt       01 Opt
2710   11   1 b       NC b
2711   14  11 Ket          Ket
2712   17  00 Opt       00 Opt
2713   19  19 Ket          Ket
2714   22     End          End
2715  ------------------------------------------------------------------  ------------------------------------------------------------------
2716  Capturing subpattern count = 1  Capturing subpattern count = 1
2717  No options  No options
 Case state changes  
2718  First char = 'a'  First char = 'a'
2719  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2720      ab      ab
# Line 2654  Need char = 'b' (caseless) Line 2723  Need char = 'b' (caseless)
2723      aB      aB
2724   0: aB   0: aB
2725   1: aB   1: aB
2726      *** Failers      *** Failers
2727  No match  No match
2728      AB      AB
2729  No match  No match
2730    
2731  /   (?i)abc/xD  /   (?i)abc/IxDZ
2732  ------------------------------------------------------------------  ------------------------------------------------------------------
2733    0   8 Bra 0          Bra
2734    3   3 abc       NC abc
2735    8   8 Ket          Ket
2736   11     End          End
2737  ------------------------------------------------------------------  ------------------------------------------------------------------
2738  Capturing subpattern count = 0  Capturing subpattern count = 0
2739  Options: caseless extended  Options: caseless extended
# Line 2672  First char = 'a' (caseless) Line 2741  First char = 'a' (caseless)
2741  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2742    
2743  /#this is a comment  /#this is a comment
2744    (?i)abc/xD    (?i)abc/IxDZ
2745  ------------------------------------------------------------------  ------------------------------------------------------------------
2746    0   8 Bra 0          Bra
2747    3   3 abc       NC abc
2748    8   8 Ket          Ket
2749   11     End          End
2750  ------------------------------------------------------------------  ------------------------------------------------------------------
2751  Capturing subpattern count = 0  Capturing subpattern count = 0
2752  Options: caseless extended  Options: caseless extended
2753  First char = 'a' (caseless)  First char = 'a' (caseless)
2754  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2755    
2756  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2757  ------------------------------------------------------------------  ------------------------------------------------------------------
2758    0 307 Bra 0          Bra
2759    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2760  255  50 12345678901234567890123456789012345678901234567890          Ket
2761  307 307 Ket          End
 310     End  
2762  ------------------------------------------------------------------  ------------------------------------------------------------------
2763  Capturing subpattern count = 0  Capturing subpattern count = 0
2764  No options  No options
2765  First char = '1'  First char = '1'
2766  Need char = '0'  Need char = '0'
2767    
2768  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2769  ------------------------------------------------------------------  ------------------------------------------------------------------
2770    0 307 Bra 0          Bra
2771    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2772  255  50 12345678901234567890123456789012345678901234567890          Ket
2773  307 307 Ket          End
 310     End  
2774  ------------------------------------------------------------------  ------------------------------------------------------------------
2775  Capturing subpattern count = 0  Capturing subpattern count = 0
2776  No options  No options
2777  First char = '1'  First char = '1'
2778  Need char = '0'  Need char = '0'
2779    
2780  /\Q\E/D  /\Q\E/DZ
2781  ------------------------------------------------------------------  ------------------------------------------------------------------
2782    0   3 Bra 0          Bra
2783    3   3 Ket          Ket
2784    6     End          End
2785  ------------------------------------------------------------------  ------------------------------------------------------------------
2786  Capturing subpattern count = 0  Capturing subpattern count = 0
2787  No options  No options
# Line 2723  No need char Line 2790  No need char
2790      \      \
2791   0:   0:
2792    
2793  /\Q\Ex/D  /\Q\Ex/DZ
2794  ------------------------------------------------------------------  ------------------------------------------------------------------
2795    0   6 Bra 0          Bra
2796    3   1 x          x
2797    6   6 Ket          Ket
2798    9     End          End
2799  ------------------------------------------------------------------  ------------------------------------------------------------------
2800  Capturing subpattern count = 0  Capturing subpattern count = 0
2801  No options  No options
2802  First char = 'x'  First char = 'x'
2803  No need char  No need char
2804    
2805  / \Q\E/D  / \Q\E/DZ
2806  ------------------------------------------------------------------  ------------------------------------------------------------------
2807    0   6 Bra 0          Bra
2808    3   1  
2809    6   6 Ket          Ket
2810    9     End          End
2811  ------------------------------------------------------------------  ------------------------------------------------------------------
2812  Capturing subpattern count = 0  Capturing subpattern count = 0
2813  No options  No options
2814  First char = ' '  First char = ' '
2815  No need char  No need char
2816    
2817  /a\Q\E/D  /a\Q\E/DZ
2818  ------------------------------------------------------------------  ------------------------------------------------------------------
2819    0   6 Bra 0          Bra
2820    3   1 a          a
2821    6   6 Ket          Ket
2822    9     End          End
2823  ------------------------------------------------------------------  ------------------------------------------------------------------
2824  Capturing subpattern count = 0  Capturing subpattern count = 0
2825  No options  No options
# Line 2762  No need char Line 2829  No need char
2829   0: a   0: a
2830    bca    bca
2831   0: a   0: a
2832    bac    bac
2833   0: a   0: a
2834    
2835  /a\Q\Eb/D  /a\Q\Eb/DZ
2836  ------------------------------------------------------------------  ------------------------------------------------------------------
2837    0   9 Bra 0          Bra
2838    3   1 a          ab
2839    6   1 b          Ket
2840    9   9 Ket          End
  12     End  
2841  ------------------------------------------------------------------  ------------------------------------------------------------------
2842  Capturing subpattern count = 0  Capturing subpattern count = 0
2843  No options  No options
# Line 2780  Need char = 'b' Line 2846  Need char = 'b'
2846    abc    abc
2847   0: ab   0: ab
2848    
2849  /\Q\Eabc/D  /\Q\Eabc/DZ
2850  ------------------------------------------------------------------  ------------------------------------------------------------------
2851    0   8 Bra 0          Bra
2852    3   3 abc          abc
2853    8   8 Ket          Ket
2854   11     End          End
2855  ------------------------------------------------------------------  ------------------------------------------------------------------
2856  Capturing subpattern count = 0  Capturing subpattern count = 0
2857  No options  No options
2858  First char = 'a'  First char = 'a'
2859  Need char = 'c'  Need char = 'c'
2860    
2861  /x*+\w/D  /x*+\w/DZ
2862  ------------------------------------------------------------------  ------------------------------------------------------------------
2863    0  12 Bra 0          Bra
2864    3   5 Once          x*+
2865    6     x*          \w
2866    8   5 Ket          Ket
2867   11     \w          End
  12  12 Ket  
  15     End  
2868  ------------------------------------------------------------------  ------------------------------------------------------------------
2869  Capturing subpattern count = 0  Capturing subpattern count = 0
2870  No options  No options
# Line 2810  No need char Line 2874  No need char
2874   0: F   0: F
2875      xxxxx      xxxxx
2876  No match  No match
2877    
2878  /x?+/D  /x?+/DZ
2879  ------------------------------------------------------------------  ------------------------------------------------------------------
2880    0  11 Bra 0          Bra
2881    3   5 Once          x?+
2882    6     x?          Ket
2883    8   5 Ket          End
  11  11 Ket  
  14     End  
2884  ------------------------------------------------------------------  ------------------------------------------------------------------
2885  Capturing subpattern count = 0  Capturing subpattern count = 0
2886  No options  No options
2887  No first char  No first char
2888  No need char  No need char
2889    
2890  /x++/D  /x++/DZ
2891  ------------------------------------------------------------------  ------------------------------------------------------------------
2892    0  11 Bra 0          Bra
2893    3   5 Once          x++
2894    6     x+          Ket
2895    8   5 Ket          End
  11  11 Ket  
  14     End  
2896  ------------------------------------------------------------------  ------------------------------------------------------------------
2897  Capturing subpattern count = 0  Capturing subpattern count = 0
2898  No options  No options
2899  First char = 'x'  First char = 'x'
2900  No need char  No need char
2901    
2902  /x{1,3}+/D  /x{1,3}+/DZ
2903  ------------------------------------------------------------------  ------------------------------------------------------------------
2904    0  16 Bra 0          Bra
2905    3  10 Once          Once
2906    6   1 x          x
2907    9     x{,2}          x{0,2}
2908   13  10 Ket          Ket
2909   16  16 Ket          Ket
2910   19     End          End
2911  ------------------------------------------------------------------  ------------------------------------------------------------------
2912  Capturing subpattern count = 0  Capturing subpattern count = 0
2913  No options  No options
2914  First char = 'x'  First char = 'x'
2915  No need char  No need char
2916    
2917  /(x)*+/D  /(x)*+/DZ
2918  ------------------------------------------------------------------  ------------------------------------------------------------------
2919    0  19 Bra 0          Bra
2920    3  13 Once          Once
2921    6     Brazero          Brazero
2922    7   6 Bra 1          CBra 1
2923   10   1 x          x
2924   13   6 KetRmax          KetRmax
2925   16  13 Ket          Ket
2926   19  19 Ket          Ket
2927   22     End          End
2928  ------------------------------------------------------------------  ------------------------------------------------------------------
2929  Capturing subpattern count = 1  Capturing subpattern count = 1
2930  No options  No options
2931  No first char  No first char
2932  No need char  No need char
2933    
2934  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2935  Capturing subpattern count = 1  Capturing subpattern count = 1
2936  Options: anchored  Options: anchored
2937  No first char  No first char
# Line 2883  No need char Line 2943  No need char
2943  No match  No match
2944      this is not a line with only words and spaces!      this is not a line with only words and spaces!
2945  No match  No match
2946    
2947  /(\d++)(\w)/  /(\d++)(\w)/I
2948  Capturing subpattern count = 2  Capturing subpattern count = 2
2949  No options  No options
2950  No first char  No first char
# Line 2895  No need char Line 2955  No need char
2955   2: a   2: a
2956      *** Failers      *** Failers
2957  No match  No match
2958      12345+      12345+
2959  No match  No match
2960    
2961  /a++b/  /a++b/I
2962  Capturing subpattern count = 0  Capturing subpattern count = 0
2963  No options  No options
2964  First char = 'a'  First char = 'a'
# Line 2906  Need char = 'b' Line 2966  Need char = 'b'
2966      aaab      aaab
2967   0: aaab   0: aaab
2968    
2969  /(a++b)/  /(a++b)/I
2970  Capturing subpattern count = 1  Capturing subpattern count = 1
2971  No options  No options
2972  First char = 'a'  First char = 'a'
# Line 2915  Need char = 'b' Line 2975  Need char = 'b'
2975   0: aaab   0: aaab
2976   1: aaab   1: aaab
2977    
2978  /(a++)b/  /(a++)b/I
2979  Capturing subpattern count = 1  Capturing subpattern count = 1
2980  No options  No options
2981  First char = 'a'  First char = 'a'
# Line 2924  Need char = 'b' Line 2984  Need char = 'b'
2984   0: aaab   0: aaab
2985   1: aaa   1: aaa
2986    
2987  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
2988  Capturing subpattern count = 1  Capturing subpattern count = 1
2989  No options  No options
2990  No first char  No first char
# Line 2932  No need char Line 2992  No need char
2992      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
2993   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
2994   1: x   1: x
2995    
2996  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
2997  Capturing subpattern count = 1  Capturing subpattern count = 1
2998  No options  No options
2999  First char = '('  First char = '('
# Line 2946  Need char = ')' Line 3006  Need char = ')'
3006   1: xyz   1: xyz
3007      *** Failers      *** Failers
3008  No match  No match
3009      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3010  No match  No match
3011    
3012  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3013  ------------------------------------------------------------------  ------------------------------------------------------------------
3014    0  50 Bra 0          Bra
3015    3  44 Once          Once
3016    6   8 Bra 1          CBra 1
3017    9   3 abc          abc
3018   14   8 Ket          Ket
3019   17     Brazero          Brazero
3020   18  26 Bra 0          Bra
3021   21   8 Bra 1          CBra 1
3022   24   3 abc          abc
3023   29   8 Ket          Ket
3024   32     Brazero          Brazero
3025   33   8 Bra 1          CBra 1
3026   36   3 abc          abc
3027   41   8 Ket          Ket
3028   44  26 Ket          Ket
3029   47  44 Ket          Ket
3030   50  50 Ket          Ket
3031   53     End          End
3032  ------------------------------------------------------------------  ------------------------------------------------------------------
3033  Capturing subpattern count = 1  Capturing subpattern count = 1
3034  No options  No options
3035  First char = 'a'  First char = 'a'
3036  Need char = 'c'  Need char = 'c'
3037    
3038  /a+?+/  /a+?+/I
3039  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3040    
3041  /a{2,3}?+b/  /a{2,3}?+b/I
3042  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3043    
3044  /(?U)a+?+/  /(?U)a+?+/I
3045  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3046    
3047  /a{2,3}?+b/U  /a{2,3}?+b/IU
3048  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3049    
3050  /x(?U)a++b/D  /x(?U)a++b/DZ
3051  ------------------------------------------------------------------  ------------------------------------------------------------------
3052    0  17 Bra 0          Bra
3053    3   1 x          x
3054    6   5 Once          a++
3055    9     a+          b
3056   11   5 Ket          Ket
3057   14   1 b          End
  17  17 Ket  
  20     End  
3058  ------------------------------------------------------------------  ------------------------------------------------------------------
3059  Capturing subpattern count = 0  Capturing subpattern count = 0
3060  No options  No options
# Line 3005  Need char = 'b' Line 3063  Need char = 'b'
3063      xaaaab      xaaaab
3064   0: xaaaab   0: xaaaab
3065    
3066  /(?U)xa++b/D  /(?U)xa++b/DZ
3067  ------------------------------------------------------------------  ------------------------------------------------------------------
3068    0  17 Bra 0          Bra
3069    3   1 x          x
3070    6   5 Once          a++
3071    9     a+          b
3072   11   5 Ket          Ket
3073   14   1 b          End
  17  17 Ket  
  20     End  
3074  ------------------------------------------------------------------  ------------------------------------------------------------------
3075  Capturing subpattern count = 0  Capturing subpattern count = 0
3076  Options: ungreedy  Options: ungreedy
# Line 3023  Need char = 'b' Line 3079  Need char = 'b'
3079      xaaaab      xaaaab
3080   0: xaaaab   0: xaaaab
3081    
3082  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3083  ------------------------------------------------------------------  ------------------------------------------------------------------
3084    0 106 Bra 0          Bra
3085    3     ^          ^
3086    4  99 Bra 1          CBra 1
3087    7   5 Bra 2          CBra 2
3088   10     a+          a+
3089   12   5 Ket          Ket
3090   15  37 Bra 3          CBra 3
3091   18     [a-b]+?          [ab]+?
3092   52  37 Ket          Ket
3093   55  37 Bra 4          CBra 4
3094   58     [b-c]+          [bc]+
3095   92  37 Ket          Ket
3096   95   5 Bra 5          CBra 5
3097   98     \w*          \w*
3098  100   5 Ket          Ket
3099  103  99 Ket          Ket
3100  106 106 Ket          Ket
3101  109     End          End
3102  ------------------------------------------------------------------  ------------------------------------------------------------------
3103  Capturing subpattern count = 5  Capturing subpattern count = 5
3104  Options: anchored  Options: anchored
3105  No first char  No first char
3106  No need char  No need char
3107    
3108  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3109  ------------------------------------------------------------------  ------------------------------------------------------------------
3110    0  12 Bra 0          Bra
3111    3     ^          ^
3112    4   1 x          x
3113    7     a+?          a++
3114    9   1 b          b
3115   12  12 Ket          Ket
3116   15     End          End
3117  ------------------------------------------------------------------  ------------------------------------------------------------------
3118  Capturing subpattern count = 0  Capturing subpattern count = 0
3119  Options: anchored  Options: anchored
3120  No first char  No first char
3121  Need char = 'b'  Need char = 'b'
3122    
3123  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3124  ------------------------------------------------------------------  ------------------------------------------------------------------
3125    0  18 Bra 0          Bra
3126    3     ^          ^
3127    4   1 x          x
3128    7   5 Bra 1          CBra 1
3129   10     a+?          a+?
3130   12   5 Ket          Ket
3131   15   1 b          b
3132   18  18 Ket          Ket
3133   21     End          End
3134  ------------------------------------------------------------------  ------------------------------------------------------------------
3135  Capturing subpattern count = 1  Capturing subpattern count = 1
3136  Options: anchored  Options: anchored
3137  No first char  No first char
3138  Need char = 'b'  Need char = 'b'
3139    
3140  /[.x.]/  /[.x.]/I
3141  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3142    
3143  /[=x=]/  /[=x=]/I
3144  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3145    
3146  /[:x:]/  /[:x:]/I
3147  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3148    
3149  /\l/  /\l/I
3150  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
   
 /\L/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\N{name}/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\pP/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
3151    
3152  /\PP/  /\L/I
3153  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3154    
3155  /\p{prop}/  /\N{name}/I
3156  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3157    
3158  /\P{prop}/  /\u/I
3159  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3160    
3161  /\u/  /\U/I
3162  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3163    
3164  /\U/  /[/I
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\X/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /[/  
3165  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3166    
3167  /[a-/  /[a-/I
3168  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3169    
3170  /[[:space:]/  /[[:space:]/I
3171  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3172    
3173  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3174  ------------------------------------------------------------------  ------------------------------------------------------------------
3175    0  36 Bra 0          Bra
3176    3     [\x09-\x0a\x0c-\x0d ]          [\x09\x0a\x0c\x0d ]
3177   36  36 Ket          Ket
3178   39     End          End
3179  ------------------------------------------------------------------  ------------------------------------------------------------------
3180  Capturing subpattern count = 0  Capturing subpattern count = 0
3181  No options  No options
3182  No first char  No first char
3183  No need char  No need char
3184    
3185  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3186  ------------------------------------------------------------------  ------------------------------------------------------------------
3187    0  36 Bra 0          Bra
3188    3     [\x09-\x0d ]          [\x09-\x0d ]
3189   36  36 Ket          Ket
3190   39     End          End
3191  ------------------------------------------------------------------  ------------------------------------------------------------------
3192  Capturing subpattern count = 0  Capturing subpattern count = 0
3193  No options  No options
3194  No first char  No first char
3195  No need char  No need char
3196    
3197  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3198  ------------------------------------------------------------------  ------------------------------------------------------------------
3199    0  36 Bra 0          Bra
3200    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3201   36  36 Ket          Ket
3202   39     End          End
3203  ------------------------------------------------------------------  ------------------------------------------------------------------
3204  Capturing subpattern count = 0  Capturing subpattern count = 0
3205  No options  No options
3206  No first char  No first char
3207  No need char  No need char
3208    
3209  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3210  Capturing subpattern count = 0  Capturing subpattern count = 0
3211  Options: extended  Options: extended
3212  First char = '<'  First char = '<'
# Line 3181  Need char = '>' Line 3219  Need char = '>'
3219   0: <abc <123> hij>   0: <abc <123> hij>
3220      <abc <def> hij>      <abc <def> hij>
3221   0: <def>   0: <def>
3222      <abc<>def>      <abc<>def>
3223   0: <abc<>def>   0: <abc<>def>
3224      <abc<>      <abc<>
3225   0: <>   0: <>
3226      *** Failers      *** Failers
3227  No match  No match
3228      <abc      <abc
3229  No match  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|DM  |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
 Memory allocation (code space): 421  
3232  ------------------------------------------------------------------  ------------------------------------------------------------------
3233    0 417 Bra 0          Bra
3234    3 250 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:          8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3235  255 159 x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X          \b
3236  416     \b          Ket
3237  417 417 Ket          End
 420     End  
3238  ------------------------------------------------------------------  ------------------------------------------------------------------
3239  Capturing subpattern count = 0  Capturing subpattern count = 0
3240  No options  No options
3241  First char = '8'  First char = '8'
3242  Need char = 'X'  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|DM  |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
 Memory allocation (code space): 416  
3245  ------------------------------------------------------------------  ------------------------------------------------------------------
3246    0 412 Bra 0          Bra
3247    3 250 $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[          $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3248  255 154 %z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X          \b
3249  411     \b          Ket
3250  412 412 Ket          End
 415     End  
3251  ------------------------------------------------------------------  ------------------------------------------------------------------
3252  Capturing subpattern count = 0  Capturing subpattern count = 0
3253  No options  No options
# Line 3230  No need char Line 3264  No need char
3264  /(.*)\d+/I  /(.*)\d+/I
3265  Capturing subpattern count = 1  Capturing subpattern count = 1
3266  No options  No options
3267  First char at start or follows \n  First char at start or follows newline
3268  No need char  No need char
3269    
3270  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3271  Capturing subpattern count = 1  Capturing subpattern count = 1
3272  Max back reference = 1  Max back reference = 1
# Line 3250  No need char Line 3284  No need char
3284  Capturing subpattern count = 2  Capturing subpattern count = 2
3285  Max back reference = 2  Max back reference = 2
3286  No options  No options
3287  First char at start or follows \n  First char at start or follows newline
3288  Need char = 'z'  Need char = 'z'
3289    
3290  /((.*))\d+\1/I  /((.*))\d+\1/I
# Line 3263  No need char Line 3297  No need char
3297   0: bc123bc   0: bc123bc
3298   1: bc   1: bc
3299   2: bc   2: bc
3300    
3301  /a[b]/I  /a[b]/I
3302  Capturing subpattern count = 0  Capturing subpattern count = 0
3303  No options  No options
# Line 3276  No options Line 3310  No options
3310  First char = 'a'  First char = 'a'
3311  No need char  No need char
3312    
3313  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3314  Capturing subpattern count = 0  Capturing subpattern count = 0
3315  Options: caseless  Options: caseless
3316  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3285  Need char = 'z' (caseless) Line 3319  Need char = 'z' (caseless)
3319  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3320  Capturing subpattern count = 0  Capturing subpattern count = 0
3321  No options  No options
 Case state changes  
3322  First char = 'a'  First char = 'a'
3323  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3324    
# Line 3319  No options Line 3352  No options
3352  No first char  No first char
3353  Need char = 'a'  Need char = 'a'
3354    
3355  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3356  Capturing subpattern count = 0  Capturing subpattern count = 1
3357  No options  No options
3358  First char = 'a'  First char = 'a'
3359  No need char  No need char
3360    
3361  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3362  Capturing subpattern count = 0  Capturing subpattern count = 1
3363  No options  No options
3364  First char = 'a'  First char = 'a'
3365  Need char = 'z'  Need char = 'z'
3366    
3367  /(?(1)abz)/I  /(?(1)abz)(.)/I
3368  Capturing subpattern count = 0  Capturing subpattern count = 1
3369  No options  No options
3370  No first char  No first char
3371  No need char  No need char
3372    
3373  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3374  Capturing subpattern count = 0  Capturing subpattern count = 1
3375  No options  No options
3376  No first char  No first char
3377  Need char = '3'  Need char = '3'
# Line 3378  Capturing subpattern count = 0 Line 3411  Capturing subpattern count = 0
3411  No options  No options
3412  No first char  No first char
3413  No need char  No need char
3414  Study size = 40  Starting byte set: a b
 Starting character set: a b  
3415    
3416  /[^a]/I  /[^a]/I
3417  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3398  Capturing subpattern count = 0 Line 3430  Capturing subpattern count = 0
3430  No options  No options
3431  No first char  No first char
3432  Need char = '6'  Need char = '6'
3433  Study size = 40  Starting byte set: 0 1 2 3 4 5 6 7 8 9
 Starting character set: 0 1 2 3 4 5 6 7 8 9  
3434    
3435  /a^b/I  /a^b/I
3436  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3407  No options Line 3438  No options
3438  First char = 'a'  First char = 'a'
3439  Need char = 'b'  Need char = 'b'
3440    
3441  /^a/mI  /^a/Im
3442  Capturing subpattern count = 0  Capturing subpattern count = 0
3443  Options: multiline  Options: multiline
3444  First char at start or follows \n  First char at start or follows newline
3445  Need char = 'a'  Need char = 'a'
3446    abcde    abcde
3447   0: a   0: a
3448    xy\nabc    xy\nabc
3449   0: a   0: a
3450    *** Failers    *** Failers
3451  No match  No match
3452    xyabc    xyabc
3453  No match  No match
3454    
3455  /c|abc/I  /c|abc/I
# Line 3432  Capturing subpattern count = 0 Line 3463  Capturing subpattern count = 0
3463  Options: caseless  Options: caseless
3464  No first char  No first char
3465  No need char  No need char
3466  Study size = 40  Starting byte set: A B a b
 Starting character set: A B a b  
3467    
3468  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3469  Capturing subpattern count = 0  Capturing subpattern count = 0
3470  No options  No options
 Case state changes  
3471  No first char  No first char
3472  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3473  Study size = 40  Starting byte set: a b
 Starting character set: a b  
3474    
3475  /abc(?C)def/  /abc(?C)def/I
3476  Capturing subpattern count = 0  Capturing subpattern count = 0
3477  No options  No options
3478  First char = 'a'  First char = 'a'
3479  Need char = 'f'  Need char = 'f'
3480      abcdef      abcdef
3481  --->abcdef  --->abcdef
3482    0 ^  ^    0 ^  ^       d
3483   0: abcdef   0: abcdef
3484      1234abcdef      1234abcdef
3485  --->1234abcdef  --->1234abcdef
3486    0     ^  ^    0     ^  ^       d
3487   0: abcdef   0: abcdef
3488      *** Failers      *** Failers
3489  No match  No match
3490      abcxyz      abcxyz
3491  No match  No match
3492      abcxyzf      abcxyzf
3493  --->abcxyzf  --->abcxyzf
3494    0 ^  ^    0 ^  ^        d
3495  No match  No match
3496    
3497  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3498  Capturing subpattern count = 0  Capturing subpattern count = 0
3499  No options  No options
3500  First char = 'a'  First char = 'a'
3501  Need char = 'f'  Need char = 'f'
3502      123abcdef      123abcdef
3503  --->123abcdef  --->123abcdef
3504    0    ^  ^    0    ^  ^       d
3505    1    ^    ^    1    ^    ^     f
3506   0: abcdef   0: abcdef
3507    
3508  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3509  Capturing subpattern count = 0  Capturing subpattern count = 0
3510  No options  No options
3511  No first char  No first char
3512  Need char = 'f'  Need char = 'f'
3513      1234abcdef      1234abcdef
3514  --->1234abcdef  --->1234abcdef
3515    1 ^    1 ^              \d
3516    1  ^    1  ^             \d
3517    1   ^    1   ^            \d
3518    1    ^    1    ^           \d
3519    2    ^   ^    2    ^   ^       d
3520   0: 4abcdef   0: 4abcdef
3521      *** Failers      *** Failers
3522  No match  No match
3523      abcdef      abcdef
3524  --->abcdef  --->abcdef
3525    1 ^    1 ^          \d
3526    1  ^    1  ^         \d
3527    1   ^    1   ^        \d
3528    1    ^    1    ^       \d
3529    1     ^    1     ^      \d
3530    1      ^    1      ^     \d
3531  No match  No match
3532    
3533  /(?C255)ab/  /(?C255)ab/I
3534  Capturing subpattern count = 0  Capturing subpattern count = 0
3535  No options  No options
3536  First char = 'a'  First char = 'a'
3537  Need char = 'b'  Need char = 'b'
3538    
3539  /(?C256)ab/  /(?C256)ab/I
3540  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3541    
3542  /(?Cab)xx/  /(?Cab)xx/I
3543  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3544    
3545  /(?C12vr)x/  /(?C12vr)x/I
3546  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3547    
3548  /abc(?C)def/  /abc(?C)def/I
3549  Capturing subpattern count = 0  Capturing subpattern count = 0
3550  No options  No options
3551  First char = 'a'  First char = 'a'
# Line 3526  Need char = 'f' Line 3554  Need char = 'f'
3554  No match  No match
3555      \x83\x0\x61bcdef      \x83\x0\x61bcdef
3556  --->\x83\x00abcdef  --->\x83\x00abcdef
3557    0         ^  ^    0         ^  ^       d
3558   0: abcdef   0: abcdef
3559    
3560  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3561  Capturing subpattern count = 1  Capturing subpattern count = 1
3562  No options  No options
3563  First char = 'a'  First char = 'a'
3564  Need char = 'f'  Need char = 'f'
3565      123abcdef      123abcdef
3566  --->123abcdef  --->123abcdef
3567    0    ^  ^    0    ^  ^       d
3568    1    ^    ^    1    ^    ^     f
3569   0: abcdef   0: abcdef
3570   1: abc   1: abc
3571      123abcdef\C+      123abcdef\C+
3572  Callout 0: last capture = 1  Callout 0: last capture = 1
3573   0: <unset>   0: <unset>
3574   1: abc   1: abc
3575  --->123abcdef  --->123abcdef
3576         ^  ^         ^  ^       d
3577  Callout 1: last capture = 1  Callout 1: last capture = 1
3578   0: <unset>   0: <unset>
3579   1: abc   1: abc
3580  --->123abcdef  --->123abcdef
3581         ^    ^         ^    ^     f
3582   0: abcdef   0: abcdef
3583   1: abc   1: abc
3584      123abcdef\C-      123abcdef\C-
3585   0: abcdef   0: abcdef
3586   1: abc   1: abc
3587      *** Failers      *** Failers
3588  No match  No match
3589      123abcdef\C!1      123abcdef\C!1
3590  --->123abcdef  --->123abcdef
3591    0    ^  ^    0    ^  ^       d
3592    1    ^    ^    1    ^    ^     f
3593  No match  No match
3594    
3595  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3596  Capturing subpattern count = 1  Capturing subpattern count = 1
3597  No options  No options
3598  No first char  No first char
3599  No need char  No need char
3600      abcabcabc      abcabcabc
3601  --->abcabcabc  --->abcabcabc
3602    0 ^    0 ^             (abc(?C1))*
3603    1 ^  ^    1 ^  ^          )
3604    1 ^     ^    1 ^     ^       )
3605    1 ^        ^    1 ^        ^    )
3606   0: abcabcabc   0: abcabcabc
3607   1: abc   1: abc
3608      abcabc\C!1!3      abcabc\C!1!3
3609  --->abcabc  --->abcabc
3610    0 ^    0 ^          (abc(?C1))*
3611    1 ^  ^    1 ^  ^       )
3612    1 ^     ^    1 ^     ^    )
3613   0: abcabc   0: abcabc
3614   1: abc   1: abc
3615      *** Failers      *** Failers
3616  --->*** Failers  --->*** Failers
3617    0 ^    0 ^               (abc(?C1))*
3618   0:   0:
3619      abcabcabc\C!1!3      abcabcabc\C!1!3
3620  --->abcabcabc  --->abcabcabc
3621    0 ^    0 ^             (abc(?C1))*
3622    1 ^  ^    1 ^  ^          )
3623    1 ^     ^    1 ^     ^       )
3624    1 ^        ^    1 ^        ^    )
3625   0: abcabc   0: abcabc
3626   1: abc   1: abc
3627    
3628  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3629  Capturing subpattern count = 1  Capturing subpattern count = 1
3630  No options  No options
3631  No first char  No first char
# Line 3606  No need char Line 3634  No need char
3634  Callout 0: last capture = -1  Callout 0: last capture = -1
3635   0: <unset>   0: <unset>
3636  --->123  --->123
3637      ^  ^      ^  ^    )
3638   0: 123   0: 123
3639   1: 123   1: 123
3640      123456\C+      123456\C+
3641  Callout 0: last capture = -1  Callout 0: last capture = -1
3642   0: <unset>   0: <unset>
3643  --->123456  --->123456
3644      ^  ^      ^  ^       )
3645  Callout 0: last capture = 1  Callout 0: last capture = 1
3646   0: <unset>   0: <unset>
3647   1: 123   1: 123
3648  --->123456  --->123456
3649      ^     ^      ^     ^    )
3650   0: 123456   0: 123456
3651   1: 456   1: 456
3652      123456789\C+      123456789\C+
3653  Callout 0: last capture = -1  Callout 0: last capture = -1
3654   0: <unset>   0: <unset>
3655  --->123456789  --->123456789
3656      ^  ^      ^  ^          )
3657  Callout 0: last capture = 1  Callout 0: last capture = 1
3658   0: <unset>   0: <unset>
3659   1: 123   1: 123
3660  --->123456789  --->123456789
3661      ^     ^      ^     ^       )
3662  Callout 0: last capture = 1  Callout 0: last capture = 1
3663   0: <unset>   0: <unset>
3664   1: 456   1: 456
3665  --->123456789  --->123456789
3666      ^        ^      ^        ^    )
3667   0: 123456789   0: 123456789
3668   1: 789   1: 789
3669    
3670  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3671  Capturing subpattern count = 2  Capturing subpattern count = 2
3672  No options  No options
3673  First char = 'x'  First char = 'x'
# Line 3650  Callout 0: last capture = 2 Line 3678  Callout 0: last capture = 2
3678   1: <unset>   1: <unset>
3679   2: xyz   2: xyz
3680  --->xyzabc  --->xyzabc
3681      ^  ^      ^  ^       p
3682  Callout 1: last capture = -1  Callout 1: last capture = -1
3683   0: <unset>   0: <unset>
3684  --->xyzabc  --->xyzabc
3685      ^      ^          x
3686   0: xyzabc   0: xyzabc
3687   1: xyzabc   1: xyzabc
3688    
3689  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3690  Capturing subpattern count = 3  Capturing subpattern count = 3
3691  No options  No options
3692  First char = 'X'  First char = 'X'
# Line 3670  Callout 0: last capture = 3 Line 3698  Callout 0: last capture = 3
3698   2: <unset>   2: <unset>
3699   3: xyz   3: xyz
3700  --->Xxyzabc  --->Xxyzabc
3701      ^   ^      ^   ^       p
3702  Callout 1: last capture = 1  Callout 1: last capture = 1
3703   0: <unset>   0: <unset>
3704   1: X   1: X
3705  --->Xxyzabc  --->Xxyzabc
3706      ^^      ^^          x
3707   0: Xxyzabc   0: Xxyzabc
3708   1: X   1: X
3709   2: xyzabc   2: xyzabc
3710    
3711  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3712  Capturing subpattern count = 1  Capturing subpattern count = 1
3713  No options  No options
3714  First char = 'a'  First char = 'a'
# Line 3690  Callout 0: last capture = 1 Line 3718  Callout 0: last capture = 1
3718   0: <unset>   0: <unset>
3719   1: abc   1: abc
3720  --->abcdef  --->abcdef
3721      ^      ^          a
3722   0: abcdef   0: abcdef
3723   1: abc   1: abc
3724    
3725  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3726  Capturing subpattern count = 1  Capturing subpattern count = 1
3727  No options  No options
3728  First char = 'a'  First char = 'a'
3729  Need char = 'z'  Need char = 'z'
3730      abcxyz\C+      abcxyz\C+
3731  Callout 1: last capture = 1  Callout 1: last capture = 1
3732   0: <unset>   0: <unset>
3733   1: abc   1: abc
3734  --->abcxyz  --->abcxyz
3735      ^  ^      ^  ^       d
3736  Callout 2: last capture = -1  Callout 2: last capture = -1
3737   0: <unset>   0: <unset>
3738  --->abcxyz  --->abcxyz
3739      ^      ^          a
3740   0: abcxyz   0: abcxyz
3741    
3742  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3743  Capturing subpattern count = 1  Capturing subpattern count = 1
3744  No options  No options
3745  First char = 'x'  First char = 'x'
# Line 3721  Callout 0: last capture = 1 Line 3749  Callout 0: last capture = 1
3749   0: <unset>   0: <unset>
3750   1: abc   1: abc
3751  --->abcxyz  --->abcxyz
3752         ^         ^       )
3753   0: xyz   0: xyz
3754   1: abc   1: abc
3755    
3756  /(?C)abc/  /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  Capturing subpattern count = 0
3808  No options  No options
3809  First char = 'a'  First char = 'a'
3810  Need char = 'c'  Need char = 'c'
3811    
3812  /(?C)^abc/  /(?C)^abc/I
3813  Capturing subpattern count = 0  Capturing subpattern count = 0
3814  Options: anchored  Options: anchored
3815  No first char  No first char
3816  No need char  No need char
3817    
3818  /(?C)a|b/S  /(?C)a|b/IS
3819  Capturing subpattern count = 0  Capturing subpattern count = 0
3820  No options  No options
3821  No first char  No first char
3822  No need char  No need char
3823  Study size = 40  Starting byte set: a b
 Starting character set: a b  
3824    
3825  /(?R)/  /(?R)/I
3826  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3827    
3828  /(a|(?R))/  /(a|(?R))/I
3829  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3830    
3831  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3832  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3833    
3834  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3835  Capturing subpattern count = 3  Capturing subpattern count = 3
3836  No options  No options
3837  First char = 'x'  First char = 'x'
# Line 3783  No need char Line 3860  No need char
3860   3: xxab   3: xxab
3861      *** Failers      *** Failers
3862  No match  No match
3863      xyab      xyab
3864  No match  No match
3865    
3866  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3867  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3868    
3869  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3870  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3871    
3872  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3873  Capturing subpattern count = 1  Capturing subpattern count = 1
3874  Options: anchored  Options: anchored
3875  No first char  No first char
# Line 3803  No need char Line 3880  No need char
3880      a(b)c      a(b)c
3881   0: a(b)c   0: a(b)c
3882   1: c   1: c
3883      a(b(c))d      a(b(c))d
3884   0: a(b(c))d   0: a(b(c))d
3885   1: d   1: d
3886      *** Failers)      *** Failers)
3887  No match  No match
3888      a(b(c)d      a(b(c)d
3889  No match  No match
3890    
3891  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3892  Capturing subpattern count = 1  Capturing subpattern count = 1
3893  Options: anchored  Options: anchored
3894  No first char  No first char
# Line 3826  Need char = '<' Line 3903  Need char = '<'
3903   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3904   1: (1(2)3)   1: (1(2)3)
3905    
3906  /(a(?1)b)/D  /(a(?1)b)/DZ
3907  ------------------------------------------------------------------  ------------------------------------------------------------------
3908    0  18 Bra 0          Bra
3909    3  12 Bra 1          CBra 1
3910    6   1 a          a
3911    9   3 Recurse          Once
3912   12   1 b          Recurse
3913   15  12 Ket          Ket
3914   18  18 Ket          b
3915   21     End          Ket
3916            Ket
3917            End
3918  ------------------------------------------------------------------  ------------------------------------------------------------------
3919  Capturing subpattern count = 1  Capturing subpattern count = 1
3920  No options  No options
3921  First char = 'a'  First char = 'a'
3922  Need char = 'b'  Need char = 'b'
3923    
3924  /(a(?1)+b)/D  /(a(?1)+b)/DZ
3925  ------------------------------------------------------------------  ------------------------------------------------------------------
3926    0  24 Bra 0          Bra
3927    3  18 Bra 1          CBra 1
3928    6   1 a          a
3929    9   6 Bra 0          Once
3930   12   3 Recurse          Recurse
3931   15   6 KetRmax          KetRmax
3932   18   1 b          b
3933   21  18 Ket          Ket
3934   24  24 Ket          Ket
3935   27     End          End
3936  ------------------------------------------------------------------  ------------------------------------------------------------------
3937  Capturing subpattern count = 1  Capturing subpattern count = 1
3938  No options  No options
3939  First char = 'a'  First char = 'a'
3940  Need char = 'b'  Need char = 'b'
3941    
3942  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii
3943  Capturing subpattern count = 4  Capturing subpattern count = 4
3944  Max back reference = 4  Max back reference = 4
3945  Options: anchored caseless  Options: anchored caseless
# Line 3882  No need char Line 3961  No need char
3961   2: <unset>   2: <unset>
3962   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
3963   4: A   4: A
3964      Able was I ere I saw Elba.      Able was I ere I saw Elba.
3965   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
3966   1: <unset>   1: <unset>
3967   2: <unset>   2: <unset>
# Line 3890  No need char Line 3969  No need char
3969   4: A   4: A
3970      *** Failers      *** Failers
3971  No match  No match
3972      The quick brown fox      The quick brown fox
3973  No match  No match
3974    
3975  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3976  Capturing subpattern count = 2  Capturing subpattern count = 2
3977  Options: anchored  Options: anchored
3978  No first char  No first char
# Line 3912  No need char Line 3991  No need char
3991  No match  No match
3992      ((2+2)*-3)-7)      ((2+2)*-3)-7)
3993  No match  No match
3994    
3995  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
3996  Capturing subpattern count = 2  Capturing subpattern count = 2
3997  Options: anchored  Options: anchored
3998  No first char  No first char
# Line 3922  No need char Line 4001  No need char
4001   0: xyz   0: xyz
4002   1: xyz   1: xyz
4003   2: y   2: y
4004      xxyzxyzz      xxyzxyzz
4005   0: xxyzxyzz   0: xxyzxyzz
4006   1: xxyzxyzz   1: xxyzxyzz
4007   2: xyzxyz   2: xyzxyz
# Line 3930  No need char Line 4009  No need char
4009  No match  No match
4010      xxyzz      xxyzz
4011  No match  No match
4012      xxyzxyzxyzz      xxyzxyzxyzz
4013  No match  No match
4014    
4015  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4016  Capturing subpattern count = 2  Capturing subpattern count = 2
4017  Options: extended  Options: extended
4018  First char = '<'  First char = '<'
# Line 3954  Need char = '>' Line 4033  Need char = '>'
4033   0: <def>   0: <def>
4034   1: <def>   1: <def>
4035   2: <def>   2: <def>
4036      <abc<>def>      <abc<>def>
4037   0: <abc<>def>   0: <abc<>def>
4038   1: <abc<>def>   1: <abc<>def>
4039   2: <abc<>def>   2: <abc<>def>
4040      <abc<>      <abc<>
4041   0: <>   0: <>
4042   1: <>   1: <>
4043   2: <>   2: <>
# Line 3967  No match Line 4046  No match
4046      <abc      <abc
4047  No match  No match
4048    
4049  /(?1)/  /(?1)/I
4050  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4051    
4052  /((?2)(abc)/  /((?2)(abc)/I
4053  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4054    
4055  /^(abc)def(?1)/  /^(abc)def(?1)/I
4056  Capturing subpattern count = 1  Capturing subpattern count = 1
4057  Options: anchored  Options: anchored
4058  No first char  No first char
# Line 3982  No need char Line 4061  No need char
4061   0: abcdefabc   0: abcdefabc
4062   1: abc   1: abc
4063    
4064  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4065  Capturing subpattern count = 1  Capturing subpattern count = 1
4066  Options: anchored  Options: anchored
4067  No first char  No first char
# Line 3993  No need char Line 4072  No need char
4072      a=b      a=b
4073   0: a=b   0: a=b
4074   1: a   1: a
4075      a=bc      a=bc
4076   0: a=bc   0: a=bc
4077   1: a   1: a
4078    
4079  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4080  Capturing subpattern count = 2  Capturing subpattern count = 2
4081  Options: anchored  Options: anchored
4082  No first char  No first char
# Line 4010  No need char Line 4089  No need char
4089   0: a=b   0: a=b
4090   1: a   1: a
4091   2: b   2: b
4092      a=bc      a=bc
4093   0: a=bc   0: a=bc
4094   1: a   1: a
4095   2: c   2: c
4096    
4097  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4098  ------------------------------------------------------------------  ------------------------------------------------------------------
4099    0  33 Bra 0          Bra
4100    3   1 a          a
4101    6   6 Bra 1          CBra 1
4102    9   1 b          b
4103   12   6 Alt          Alt
4104   15   1 c          c
4105   18  12 Ket          Ket
4106   21   1 d          d
4107   24   6 Bra 2          CBra 2
4108   27   1 e          e
4109   30   6 Ket          Ket
4110   33  33 Ket          Ket
4111   36     End          End
4112  ------------------------------------------------------------------  ------------------------------------------------------------------
4113  Capturing subpattern count = 2  Capturing subpattern count = 2
4114  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4042  Need char = 'e' Line 4121  Need char = 'e'
4121   0: abde   0: abde
4122   1: b   1: b
4123   2: e   2: e
4124      acde      acde
4125   0: acde   0: acde
4126   1: c   1: c
4127   2: e   2: e
4128    
4129  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4130  ------------------------------------------------------------------  ------------------------------------------------------------------
4131    0  39 Bra 0          Bra
4132    3  24 Bra 0          Bra
4133    6   1 a          a
4134    9  15 Bra 1          CBra 1
4135   12   1 c          c
4136   15   6 Bra 2          CBra 2
4137   18   1 d          d
4138   21   6 Ket          Ket
4139   24  15 Ket          Ket
4140   27  24 Ket          Ket
4141   30   6 Bra 3          CBra 3
4142   33   1 a          a
4143   36   6 Ket          Ket
4144   39  39 Ket          Ket
4145   42     End          End
4146  ------------------------------------------------------------------  ------------------------------------------------------------------
4147  Capturing subpattern count = 3  Capturing subpattern count = 3
4148  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4074  No options Line 4153  No options
4153  First char = 'a'  First char = 'a'
4154  Need char = 'a'  Need char = 'a'
4155    
4156  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4157  ------------------------------------------------------------------  ------------------------------------------------------------------
4158    0  29 Bra 0          Bra
4159    3   6 Bra 1          CBra 1
4160    6   1 a          a
4161    9   6 Ket          Ket
4162   12     Any          Any
4163   13     Any          Any
4164   14     Any          Any
4165   15     \1          \1
4166   18   3 bbb          bbb
4167   23   3 Recurse          Once
4168   26   1 d          Recurse
4169   29  29 Ket          Ket
4170   32     End          d
4171            Ket
4172            End
4173  ------------------------------------------------------------------  ------------------------------------------------------------------
4174  Capturing subpattern count = 1  Capturing subpattern count = 1
4175  Max back reference = 1  Max back reference = 1
# Line 4098  No options Line 4179  No options
4179  First char = 'a'  First char = 'a'
4180  Need char = 'd'  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*$/i  /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
4183  Capturing subpattern count = 4  Capturing subpattern count = 4
4184  Max back reference = 4  Max back reference = 4
4185  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4125  No need char Line 4206  No need char
4206   2: <unset>   2: <unset>
4207   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4208   4: A   4: A
4209      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4210   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4211   1: <unset>   1: <unset>
4212   2: <unset>   2: <unset>
# Line 4133  No need char Line 4214  No need char
4214   4: A   4: A
4215      *** Failers      *** Failers
4216  No match  No match
4217      The quick brown fox      The quick brown fox
4218  No match  No match
4219    
4220  /((?(R)a|b))\1(?1)?/  /((?(R)a|b))\1(?1)?/I
4221  Capturing subpattern count = 1  Capturing subpattern count = 1
4222  Max back reference = 1  Max back reference = 1
4223  No options  No options
# Line 4145  No need char Line 4226  No need char
4226    bb    bb
4227   0: bb   0: bb
4228   1: b   1: b
4229    bbaa    bbaa
4230   0: bba   0: bba
4231   1: b   1: b
4232    
4233  /(.*)a/sI  /(.*)a/Is
4234  Capturing subpattern count = 1  Capturing subpattern count = 1
4235  Options: anchored dotall  Options: anchored dotall
4236  No first char  No first char
4237  Need char = 'a'  Need char = 'a'
4238    
4239  /(.*)a\1/sI  /(.*)a\1/Is
4240  Capturing subpattern count = 1  Capturing subpattern count = 1
4241  Max back reference = 1  Max back reference = 1
4242  Options: dotall  Options: dotall
4243  No first char  No first char
4244  Need char = 'a'  Need char = 'a'
4245    
4246  /(.*)a(b)\2/sI