/[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 71 by nigel, Sat Feb 24 21:40:24 2007 UTC revision 192 by ph10, Mon Jul 30 11:23:21 2007 UTC
# Line 1  Line 1 
1  PCRE version 4.4 21-August-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    Partial matching not supported
44  No options  No options
45  First char = 'a'  First char = 'a'
46  Need char = 'c'  Need char = 'c'
47    
48  /a*bc/  /a*bc/I
49  Capturing subpattern count = 0  Capturing subpattern count = 0
50    Partial matching not supported
51  No options  No options
52  No first char  No first char
53  Need char = 'c'  Need char = 'c'
54    
55  /a{3}bc/  /a{3}bc/I
56  Capturing subpattern count = 0  Capturing subpattern count = 0
57    Partial matching not supported
58  No options  No options
59  First char = 'a'  First char = 'a'
60  Need char = 'c'  Need char = 'c'
61    
62  /(abc|a+z)/  /(abc|a+z)/I
63  Capturing subpattern count = 1  Capturing subpattern count = 1
64    Partial matching not supported
65  No options  No options
66  First char = 'a'  First char = 'a'
67  No need char  No need char
68    
69  /^abc$/  /^abc$/I
70  Capturing subpattern count = 0  Capturing subpattern count = 0
71  Options: anchored  Options: anchored
72  No first char  No first char
# Line 76  No match Line 78  No match
78      def\nabc      def\nabc
79  No match  No match
80    
81  /ab\gdef/X  /ab\idef/X
82  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
83    
84  /(?X)ab\gdef/X  /(?X)ab\idef/X
85  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
86    
87  /x{5,4}/  /x{5,4}/
# Line 109  Failed: missing ) after comment at offse Line 111  Failed: missing ) after comment at offse
111  /(?z)abc/  /(?z)abc/
112  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? at offset 2
113    
114  /.*b/  /.*b/I
115  Capturing subpattern count = 0  Capturing subpattern count = 0
116    Partial matching not supported
117  No options  No options
118  First char at start or follows \n  First char at start or follows newline
119  Need char = 'b'  Need char = 'b'
120    
121  /.*?b/  /.*?b/I
122  Capturing subpattern count = 0  Capturing subpattern count = 0
123    Partial matching not supported
124  No options  No options
125  First char at start or follows \n  First char at start or follows newline
126  Need char = 'b'  Need char = 'b'
127    
128  /cat|dog|elephant/  /cat|dog|elephant/I
129  Capturing subpattern count = 0  Capturing subpattern count = 0
130  No options  No options
131  No first char  No first char
# Line 131  No need char Line 135  No need char
135      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
136   0: elephant   0: elephant
137    
138  /cat|dog|elephant/S  /cat|dog|elephant/IS
139  Capturing subpattern count = 0  Capturing subpattern count = 0
140  No options  No options
141  No first char  No first char
142  No need char  No need char
143  Starting character set: c d e  Starting byte set: c d e
144      this sentence eventually mentions a cat      this sentence eventually mentions a cat
145   0: cat   0: cat
146      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
147   0: elephant   0: elephant
148    
149  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
150  Capturing subpattern count = 0  Capturing subpattern count = 0
151  Options: caseless  Options: caseless
152  No first char  No first char
153  No need char  No need char
154  Starting character set: C D E c d e  Starting byte set: C D E c d e
155      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
156   0: CAT   0: CAT
157      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
158   0: elephant   0: elephant
159    
160  /a|[bcd]/S  /a|[bcd]/IS
161  Capturing subpattern count = 0  Capturing subpattern count = 0
162  No options  No options
163  No first char  No first char
164  No need char  No need char
165  Starting character set: a b c d  Starting byte set: a b c d
166    
167  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
168  Capturing subpattern count = 1  Capturing subpattern count = 1
169  No options  No options
170  No first char  No first char
171  No need char  No need char
172  Starting character set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
173    \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
174    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
175    ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d    ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d
# Line 180  Starting character set: \x00 \x01 \x02 \ Line 184  Starting character set: \x00 \x01 \x02 \
184    \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
185    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
186    
187  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
188  Capturing subpattern count = 1  Capturing subpattern count = 1
189  No options  No options
190  No first char  No first char
191  No need char  No need char
192  Starting character set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
193    
194  /(ab\2)/  /(ab\2)/
195  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
# Line 193  Failed: reference to non-existent subpat Line 197  Failed: reference to non-existent subpat
197  /{4,5}abc/  /{4,5}abc/
198  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
199    
200  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
201  Capturing subpattern count = 3  Capturing subpattern count = 3
202  Max back reference = 2  Max back reference = 2
203  No options  No options
# Line 218  Matched, but too many substrings Line 222  Matched, but too many substrings
222   0: abcb   0: abcb
223   1: a   1: a
224   2: b   2: b
225      \O12abcb      \O12abcb
226   0: abcb   0: abcb
227   1: a   1: a
228   2: b   2: b
229   3: c   3: c
230    
231  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
232  Capturing subpattern count = 3  Capturing subpattern count = 3
233  Max back reference = 2  Max back reference = 2
234  No options  No options
# Line 266  Matched, but too many substrings Line 270  Matched, but too many substrings
270   2: a   2: a
271   3: b   3: b
272    
273  /abc$/E  /abc$/IE
274  Capturing subpattern count = 0  Capturing subpattern count = 0
275  Options: dollar_endonly  Options: dollar_endonly
276  First char = 'a'  First char = 'a'
# Line 283  No match Line 287  No match
287  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
288  Failed: reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
289    
290  /the quick brown fox/  /the quick brown fox/I
291  Capturing subpattern count = 0  Capturing subpattern count = 0
292  No options  No options
293  First char = 't'  First char = 't'
# Line 293  Need char = 'x' Line 297  Need char = 'x'
297      this is a line with the quick brown fox      this is a line with the quick brown fox
298   0: the quick brown fox   0: the quick brown fox
299    
300  /the quick brown fox/A  /the quick brown fox/IA
301  Capturing subpattern count = 0  Capturing subpattern count = 0
302  Options: anchored  Options: anchored
303  No first char  No first char
# Line 308  No match Line 312  No match
312  /ab(?z)cd/  /ab(?z)cd/
313  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? at offset 4
314    
315  /^abc|def/  /^abc|def/I
316  Capturing subpattern count = 0  Capturing subpattern count = 0
317  No options  No options
318  No first char  No first char
# Line 318  No need char Line 322  No need char
322      abcdef\B      abcdef\B
323   0: def   0: def
324    
325  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
326  Capturing subpattern count = 3  Capturing subpattern count = 3
327    Partial matching not supported
328  No options  No options
329  First char at start or follows \n  First char at start or follows newline
330  No need char  No need char
331      defabc      defabc
332   0: defabc   0: defabc
# Line 333  No need char Line 338  No need char
338   2: <unset>   2: <unset>
339   3: def   3: def
340    
341  /abc/P  /abc/IP
342      abc      abc
343   0: abc   0: abc
344      *** Failers      *** Failers
345  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
346    
347  /^abc|def/P  /^abc|def/IP
348      abcdef      abcdef
349   0: abc   0: abc
350      abcdef\B      abcdef\B
351   0: def   0: def
352    
353  /.*((abc)$|(def))/P  /.*((abc)$|(def))/IP
354      defabc      defabc
355   0: defabc   0: defabc
356   1: abc   1: abc
# Line 354  No match: POSIX code 17: match failed Line 359  No match: POSIX code 17: match failed
359   0: def   0: def
360   1: def   1: def
361   3: def   3: def
362    
363  /the quick brown fox/P  /the quick brown fox/IP
364      the quick brown fox      the quick brown fox
365   0: the quick brown fox   0: the quick brown fox
366      *** Failers      *** Failers
367  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
368      The Quick Brown Fox      The Quick Brown Fox
369  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
370    
371  /the quick brown fox/Pi  /the quick brown fox/IPi
372      the quick brown fox      the quick brown fox
373   0: the quick brown fox   0: the quick brown fox
374      The Quick Brown Fox      The Quick Brown Fox
375   0: The Quick Brown Fox   0: The Quick Brown Fox
376    
377  /abc.def/P  /abc.def/IP
378      *** Failers      *** Failers
379  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
380      abc\ndef      abc\ndef
381  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
382    
383  /abc$/P  /abc$/IP
384      abc      abc
385   0: abc   0: abc
386      abc\n      abc\n
387   0: abc   0: abc
388    
389  /(abc)\2/P  /(abc)\2/IP
390  Failed: POSIX code 15: bad back reference at offset 7  Failed: POSIX code 15: bad back reference at offset 7
391    
392  /(abc\1)/P  /(abc\1)/IP
393      abc      abc
394  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
395    
# Line 394  Failed: unmatched parentheses at offset Line 399  Failed: unmatched parentheses at offset
399  /a[]b/  /a[]b/
400  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
401    
402  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
403  Capturing subpattern count = 0  Capturing subpattern count = 0
404    Partial matching not supported
405  No options  No options
406  No first char  No first char
407  No need char  No need char
408      co-processors, and for      co-processors, and for
409   0: -pr   0: -pr
410    
411  /<.*>/  /<.*>/I
412  Capturing subpattern count = 0  Capturing subpattern count = 0
413    Partial matching not supported
414  No options  No options
415  First char = '<'  First char = '<'
416  Need char = '>'  Need char = '>'
417      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
418   0: <def>ghi<klm>   0: <def>ghi<klm>
419    
420  /<.*?>/  /<.*?>/I
421  Capturing subpattern count = 0  Capturing subpattern count = 0
422    Partial matching not supported
423  No options  No options
424  First char = '<'  First char = '<'
425  Need char = '>'  Need char = '>'
426      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
427   0: <def>   0: <def>
428    
429  /<.*>/U  /<.*>/IU
430  Capturing subpattern count = 0  Capturing subpattern count = 0
431    Partial matching not supported
432  Options: ungreedy  Options: ungreedy
433  First char = '<'  First char = '<'
434  Need char = '>'  Need char = '>'
435      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
436   0: <def>   0: <def>
437    
438  /(?U)<.*>/  /(?U)<.*>/I
439  Capturing subpattern count = 0  Capturing subpattern count = 0
440    Partial matching not supported
441  Options: ungreedy  Options: ungreedy
442  First char = '<'  First char = '<'
443  Need char = '>'  Need char = '>'
444      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
445   0: <def>   0: <def>
446    
447  /<.*?>/U  /<.*?>/IU
448  Capturing subpattern count = 0  Capturing subpattern count = 0
449    Partial matching not supported
450  Options: ungreedy  Options: ungreedy
451  First char = '<'  First char = '<'
452  Need char = '>'  Need char = '>'
453      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
454   0: <def>ghi<klm>   0: <def>ghi<klm>
455    
456  /={3,}/U  /={3,}/IU
457  Capturing subpattern count = 0  Capturing subpattern count = 0
458    Partial matching not supported
459  Options: ungreedy  Options: ungreedy
460  First char = '='  First char = '='
461  Need char = '='  Need char = '='
462      abc========def      abc========def
463   0: ===   0: ===
464    
465  /(?U)={3,}?/  /(?U)={3,}?/I
466  Capturing subpattern count = 0  Capturing subpattern count = 0
467    Partial matching not supported
468  Options: ungreedy  Options: ungreedy
469  First char = '='  First char = '='
470  Need char = '='  Need char = '='
471      abc========def      abc========def
472   0: ========   0: ========
473    
474  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
475  Capturing subpattern count = 0  Capturing subpattern count = 0
476  No options  No options
477  First char = 'f'  First char = 'f'
478  Need char = 'o'  Need char = 'o'
479      foo      foo
480   0: foo   0: foo
481      catfoo      catfoo
482   0: foo   0: foo
483      *** Failers      *** Failers
484  No match  No match
485      the barfoo      the barfoo
486  No match  No match
487      and cattlefoo      and cattlefoo
488  No match  No match
489    
490  /(?<=a+)b/  /(?<=a+)b/
# Line 483  Failed: lookbehind assertion is not fixe Line 496  Failed: lookbehind assertion is not fixe
496  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
497  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
498    
499  /(?i)abc/  /(?i)abc/I
500  Capturing subpattern count = 0  Capturing subpattern count = 0
501  Options: caseless  Options: caseless
502  First char = 'a' (caseless)  First char = 'a' (caseless)
503  Need char = 'c' (caseless)  Need char = 'c' (caseless)
504    
505  /(a|(?m)a)/  /(a|(?m)a)/I
506  Capturing subpattern count = 1  Capturing subpattern count = 1
507  No options  No options
508  First char = 'a'  First char = 'a'
509  No need char  No need char
510    
511  /(?i)^1234/  /(?i)^1234/I
512  Capturing subpattern count = 0  Capturing subpattern count = 0
513  Options: anchored caseless  Options: anchored caseless
514  No first char  No first char
515  No need char  No need char
516    
517  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
518  Capturing subpattern count = 1  Capturing subpattern count = 1
519  Options: anchored  Options: anchored
 Case state changes  
520  No first char  No first char
521  No need char  No need char
522    
523  /(?s).*/  /(?s).*/I
524  Capturing subpattern count = 0  Capturing subpattern count = 0
525    Partial matching not supported
526  Options: anchored dotall  Options: anchored dotall
527  No first char  No first char
528  No need char  No need char
529    
530  /[abcd]/S  /[abcd]/IS
531  Capturing subpattern count = 0  Capturing subpattern count = 0
532  No options  No options
533  No first char  No first char
534  No need char  No need char
535  Starting character set: a b c d  Starting byte set: a b c d
536    
537  /(?i)[abcd]/S  /(?i)[abcd]/IS
538  Capturing subpattern count = 0  Capturing subpattern count = 0
539  Options: caseless  Options: caseless
540  No first char  No first char
541  No need char  No need char
542  Starting character set: A B C D a b c d  Starting byte set: A B C D a b c d
543    
544  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
545  Capturing subpattern count = 1  Capturing subpattern count = 1
546  Options: multiline  Options: multiline
547  No first char  No first char
548  No need char  No need char
549  Starting character set: b c x y  Starting byte set: b c x y
550    
551  /(^a|^b)/m  /(^a|^b)/Im
552  Capturing subpattern count = 1  Capturing subpattern count = 1
553  Options: multiline  Options: multiline
554  First char at start or follows \n  First char at start or follows newline
555  No need char  No need char
556    
557  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
558  Capturing subpattern count = 1  Capturing subpattern count = 1
559  Options: caseless multiline  Options: caseless multiline
560  First char at start or follows \n  First char at start or follows newline
561  No need char  No need char
562    
563  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 554  Failed: conditional group contains more Line 567  Failed: conditional group contains more
567  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
568    
569  /(?(1a)/  /(?(1a)/
570  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
571    
572    /(?(1a))/
573    Failed: reference to non-existent subpattern at offset 6
574    
575  /(?(?i))/  /(?(?i))/
576  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
577    
578  /(?(abc))/  /(?(abc))/
579  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
580    
581  /(?(?<ab))/  /(?(?<ab))/
582  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
583    
584  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
585  Capturing subpattern count = 1  Capturing subpattern count = 1
586  Max back reference = 1  Max back reference = 1
587    Partial matching not supported
588  No options  No options
589  First char = 'b'  First char = 'b'
590  Need char = 'h'  Need char = 'h'
591    
592  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
593  Capturing subpattern count = 1  Capturing subpattern count = 1
594  Max back reference = 1  Max back reference = 1
595    Partial matching not supported
596  No options  No options
 Case state changes  
597  First char = 'b' (caseless)  First char = 'b' (caseless)
598  Need char = 'h' (caseless)  Need char = 'h' (caseless)
599    
600  /((?i)b)/DS  /((?i)b)/IDZS
601  ------------------------------------------------------------------  ------------------------------------------------------------------
602    0  16 Bra 0          Bra
603    3   8 Bra 1          CBra 1
604    6  01 Opt       01 Opt
605    8   1 b       NC b
606   11   8 Ket          Ket
607   14  00 Opt       00 Opt
608   16  16 Ket          Ket
609   19     End          End
610  ------------------------------------------------------------------  ------------------------------------------------------------------
611  Capturing subpattern count = 1  Capturing subpattern count = 1
612  No options  No options
 Case state changes  
613  First char = 'b' (caseless)  First char = 'b' (caseless)
614  No need char  No need char
615  Study returned NULL  Study returned NULL
616    
617  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
618  Capturing subpattern count = 1  Capturing subpattern count = 1
619    Partial matching not supported
620  No options  No options
 Case state changes  
621  No first char  No first char
622  No need char  No need char
623  Starting character set: C a b c d  Starting byte set: C a b c d
624    
625  /a$/  /a$/I
626  Capturing subpattern count = 0  Capturing subpattern count = 0
627  No options  No options
628  First char = 'a'  First char = 'a'
# Line 615  No need char Line 631  No need char
631   0: a   0: a
632      a\n      a\n
633   0: a   0: a
634      *** Failers      *** Failers
635  No match  No match
636      \Za      \Za
637  No match  No match
638      \Za\n      \Za\n
639  No match  No match
640    
641  /a$/m  /a$/Im
642  Capturing subpattern count = 0  Capturing subpattern count = 0
643  Options: multiline  Options: multiline
644  First char = 'a'  First char = 'a'
# Line 631  No need char Line 647  No need char
647   0: a   0: a
648      a\n      a\n
649   0: a   0: a
650      \Za\n      \Za\n
651   0: a   0: a
652      *** Failers      *** Failers
653  No match  No match
654      \Za      \Za
655  No match  No match
656    
657  /\Aabc/m  /\Aabc/Im
658  Capturing subpattern count = 0  Capturing subpattern count = 0
659  Options: anchored multiline  Options: anchored multiline
660  No first char  No first char
661  No need char  No need char
662    
663  /^abc/m  /^abc/Im
664  Capturing subpattern count = 0  Capturing subpattern count = 0
665  Options: multiline  Options: multiline
666  First char at start or follows \n  First char at start or follows newline
667  Need char = 'c'  Need char = 'c'
668    
669  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
670  Capturing subpattern count = 5  Capturing subpattern count = 5
671    Partial matching not supported
672  Options: anchored  Options: anchored
673  No first char  No first char
674  No need char  No need char
# Line 663  No need char Line 680  No need char
680   4: bbbbccccc   4: bbbbccccc
681   5: def   5: def
682    
683  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
684  Capturing subpattern count = 0  Capturing subpattern count = 0
685  No options  No options
686  No first char  No first char
687  No need char  No need char
688  Starting character set: a b  Starting byte set: a b
689    
690  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
691  Capturing subpattern count = 1  Capturing subpattern count = 1
692  No options  No options
693  No first char  No first char
694  Need char = 'a'  Need char = 'a'
695  Starting character set: a o  Starting byte set: a o
696    
697  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
698  Capturing subpattern count = 0  Capturing subpattern count = 0
699  No options  No options
700  No first char  No first char
701  No need char  No need char
702  Starting character set: a b  Starting byte set: a b
703    
704    /(?<=foo\n)^bar/Im
705    Capturing subpattern count = 0
706    Options: multiline
707    No first char
708    Need char = 'r'
709        foo\nbarbar
710     0: bar
711        ***Failers
712    No match
713        rhubarb
714    No match
715        barbell
716    No match
717        abc\nbarton
718    No match
719    
720  /(?<=foo\n)^bar/m  /^(?<=foo\n)bar/Im
721  Capturing subpattern count = 0  Capturing subpattern count = 0
722  Options: multiline  Options: multiline
723  First char at start or follows \n  First char at start or follows newline
724  Need char = 'r'  Need char = 'r'
725        foo\nbarbar
726     0: bar
727        ***Failers
728    No match
729        rhubarb
730    No match
731        barbell
732    No match
733        abc\nbarton
734    No match
735    
736  /(?>^abc)/m  /(?>^abc)/Im
737  Capturing subpattern count = 0  Capturing subpattern count = 0
738  Options: multiline  Options: multiline
739  First char at start or follows \n  First char at start or follows newline
740  Need char = 'c'  Need char = 'c'
741      abc      abc
742   0: abc   0: abc
# Line 701  Need char = 'c' Line 744  Need char = 'c'
744   0: abc   0: abc
745      *** Failers      *** Failers
746  No match  No match
747      defabc      defabc
748  No match  No match
749    
750  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 714  Failed: lookbehind assertion is not fixe Line 757  Failed: lookbehind assertion is not fixe
757  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
758    
759  /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'  
760    
761  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
762  Capturing subpattern count = 0  Capturing subpattern count = 0
763  No options  No options
764  First char = '-'  First char = '-'
# Line 732  Need char = 't' Line 771  Need char = 't'
771  No match  No match
772      cart      cart
773  No match  No match
774      horse-and-cart      horse-and-cart
775  No match  No match
776    
777  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
778  Capturing subpattern count = 0  Capturing subpattern count = 0
779  No options  No options
 Case state changes  
780  No first char  No first char
781  No need char  No need char
782    
783  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
784  Capturing subpattern count = 2  Capturing subpattern count = 2
785    Partial matching not supported
786  No options  No options
787  First char at start or follows \n  First char at start or follows newline
788  No need char  No need char
789      alphabetabcd      alphabetabcd
790   0: alphabetabcd   0: alphabetabcd
# Line 755  No need char Line 794  No need char
794   1: <unset>   1: <unset>
795   2: xyz   2: xyz
796    
797  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
798  Capturing subpattern count = 0  Capturing subpattern count = 0
799  No options  No options
 Case state changes  
800  First char = 'Z'  First char = 'Z'
801  Need char = 'Z'  Need char = 'Z'
802      abxyZZ      abxyZZ
# Line 771  Need char = 'Z' Line 809  Need char = 'Z'
809   0: ZZ   0: ZZ
810      bZZ      bZZ
811   0: ZZ   0: ZZ
812      BZZ      BZZ
813   0: ZZ   0: ZZ
814      *** Failers      *** Failers
815  No match  No match
816      ZZ      ZZ
817  No match  No match
818      abXYZZ      abXYZZ
819  No match  No match
820      zzz      zzz
821  No match  No match
822      bzz      bzz
823  No match  No match
824    
825  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
826  Capturing subpattern count = 1  Capturing subpattern count = 1
827  No options  No options
828  First char = 'b'  First char = 'b'
829  Need char = 'r'  Need char = 'r'
830      bar      bar
831   0: bar   0: bar
832      foobbar      foobbar
833   0: bar   0: bar
834      *** Failers      *** Failers
835  No match  No match
836      fooabar      fooabar
837  No match  No match
838    
839  /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
840  Capturing subpattern count = 0  Capturing subpattern count = 0
841  No options  No options
842  First char = 'T'  First char = 'T'
843  Need char = 't'  Need char = 't'
844    
845  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
846  Capturing subpattern count = 1  Capturing subpattern count = 1
847  Options: anchored  Options: anchored
848  No first char  No first char
849  No need char  No need char
850      *** Failers      *** Failers
851  No match  No match
852      a      a
853  No match  No match
854    
855  /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
856  Capturing subpattern count = 0  Capturing subpattern count = 0
857  No options  No options
858  First char = 'T'  First char = 'T'
859  Need char = 'g'  Need char = 'g'
860    
861  /^(a\1?){4}$/  /^(a\1?){4}$/I
862  Capturing subpattern count = 1  Capturing subpattern count = 1
863  Max back reference = 1  Max back reference = 1
864  Options: anchored  Options: anchored
# Line 829  No need char Line 867  No need char
867      aaaaaa      aaaaaa
868   0: aaaaaa   0: aaaaaa
869   1: aa   1: aa
870    
871  /These are syntax tests from Perl 5.005/  /These are syntax tests from Perl 5.005/I
872  Capturing subpattern count = 0  Capturing subpattern count = 0
873  No options  No options
874  First char = 'T'  First char = 'T'
# Line 872  Failed: reference to non-existent subpat Line 910  Failed: reference to non-existent subpat
910  /(a)|\2/  /(a)|\2/
911  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
912    
913  /a[b-a]/i  /a[b-a]/Ii
914  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
915    
916  /a[]b/i  /a[]b/Ii
917  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
918    
919  /a[/i  /a[/Ii
920  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
921    
922  /*a/i  /*a/Ii
923  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
924    
925  /(*)b/i  /(*)b/Ii
926  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
927    
928  /abc)/i  /abc)/Ii
929  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
930    
931  /(abc/i  /(abc/Ii
932  Failed: missing ) at offset 4  Failed: missing ) at offset 4
933    
934  /a**/i  /a**/Ii
935  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
936    
937  /)(/i  /)(/Ii
938  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
939    
940  /:(?:/  /:(?:/
# Line 921  Failed: unrecognized character after (? Line 959  Failed: unrecognized character after (?
959  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? at offset 3
960    
961  /(?(1?)a|b)/  /(?(1?)a|b)/
962  Failed: malformed number after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
963    
964  /(?(1)a|b|c)/  /(?(1)a|b|c)/
965  Failed: conditional group contains more than two branches at offset 10  Failed: conditional group contains more than two branches at offset 10
# Line 944  Failed: POSIX code 9: bad escape sequenc Line 982  Failed: POSIX code 9: bad escape sequenc
982  /abc/\i  /abc/\i
983  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
984    
985  /(a)bc(d)/  /(a)bc(d)/I
986  Capturing subpattern count = 2  Capturing subpattern count = 2
987  No options  No options
988  First char = 'a'  First char = 'a'
# Line 963  Need char = 'd' Line 1001  Need char = 'd'
1001   1: a   1: a
1002   2: d   2: d
1003  copy substring 5 failed -7  copy substring 5 failed -7
1004    
1005  /(.{20})/  /(.{20})/I
1006  Capturing subpattern count = 1  Capturing subpattern count = 1
1007    Partial matching not supported
1008  No options  No options
1009  No first char  No first char
1010  No need char  No need char
# Line 975  No need char Line 1014  No need char
1014      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1015   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1016   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1017  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1018      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1019   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1020   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1021   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1022    
1023  /(.{15})/  /(.{15})/I
1024  Capturing subpattern count = 1  Capturing subpattern count = 1
1025    Partial matching not supported
1026  No options  No options
1027  No first char  No first char
1028  No need char  No need char
# Line 995  No need char Line 1035  No need char
1035   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1036   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1037    
1038  /(.{16})/  /(.{16})/I
1039  Capturing subpattern count = 1  Capturing subpattern count = 1
1040    Partial matching not supported
1041  No options  No options
1042  No first char  No first char
1043  No need char  No need char
# Line 1006  No need char Line 1047  No need char
1047      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1048   0: abcdefghijklmnop   0: abcdefghijklmnop
1049   1: abcdefghijklmnop   1: abcdefghijklmnop
1050  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1051   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1052   0L abcdefghijklmnop   0L abcdefghijklmnop
1053   1L abcdefghijklmnop   1L abcdefghijklmnop
1054    
1055  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1056  Capturing subpattern count = 3  Capturing subpattern count = 3
1057  Options: anchored  Options: anchored
1058  No first char  No first char
1059  No need char  No need char
1060      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1061   0: adef   0: adef
1062   1: a   1: a
1063   2: <unset>   2: <unset>
# Line 1029  get substring 4 failed -7 Line 1070  get substring 4 failed -7
1070   1L a   1L a
1071   2L   2L
1072   3L f   3L f
1073      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1074   0: bcdef   0: bcdef
1075   1: bc   1: bc
1076   2: bc   2: bc
# Line 1042  get substring 4 failed -7 Line 1083  get substring 4 failed -7
1083   1L bc   1L bc
1084   2L bc   2L bc
1085   3L f   3L f
1086      adefghijk\C0      adefghijk\C0
1087   0: adef   0: adef
1088   1: a   1: a
1089   2: <unset>   2: <unset>
1090   3: f   3: f
1091   0C adef (4)   0C adef (4)
1092    
1093  /^abc\00def/  /^abc\00def/I
1094  Capturing subpattern count = 0  Capturing subpattern count = 0
1095  Options: anchored  Options: anchored
1096  No first char  No first char
1097  No need char  No need char
1098      abc\00def\L\C0      abc\00def\L\C0
1099   0: abc\x00def   0: abc\x00def
1100   0C abc (7)   0C abc (7)
1101   0L abc   0L abc
1102    
1103  /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]+
1104  )((?:[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]+
1105  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 428  
1106  Capturing subpattern count = 8  Capturing subpattern count = 8
1107    Partial matching not supported
1108  No options  No options
1109  First char = 'w'  First char = 'w'
1110  Need char = 'd'  Need char = 'd'
1111    
1112  /.*X/D  /.*X/IDZ
1113  ------------------------------------------------------------------  ------------------------------------------------------------------
1114    0   8 Bra 0          Bra
1115    3     Any*          Any*
1116    5   1 X          X
1117    8   8 Ket          Ket
1118   11     End          End
1119  ------------------------------------------------------------------  ------------------------------------------------------------------
1120  Capturing subpattern count = 0  Capturing subpattern count = 0
1121    Partial matching not supported
1122  No options  No options
1123  First char at start or follows \n  First char at start or follows newline
1124  Need char = 'X'  Need char = 'X'
1125    
1126  /.*X/Ds  /.*X/IDZs
1127  ------------------------------------------------------------------  ------------------------------------------------------------------
1128    0   8 Bra 0          Bra
1129    3     Any*          Any*
1130    5   1 X          X
1131    8   8 Ket          Ket
1132   11     End          End
1133  ------------------------------------------------------------------  ------------------------------------------------------------------
1134  Capturing subpattern count = 0  Capturing subpattern count = 0
1135    Partial matching not supported
1136  Options: anchored dotall  Options: anchored dotall
1137  No first char  No first char
1138  Need char = 'X'  Need char = 'X'
1139    
1140  /(.*X|^B)/D  /(.*X|^B)/IDZ
1141  ------------------------------------------------------------------  ------------------------------------------------------------------
1142    0  21 Bra 0          Bra
1143    3   8 Bra 1          CBra 1
1144    6     Any*          Any*
1145    8   1 X          X
1146   11   7 Alt          Alt
1147   14     ^          ^
1148   15   1 B          B
1149   18  15 Ket          Ket
1150   21  21 Ket          Ket
1151   24     End          End
1152  ------------------------------------------------------------------  ------------------------------------------------------------------
1153  Capturing subpattern count = 1  Capturing subpattern count = 1
1154    Partial matching not supported
1155  No options  No options
1156  First char at start or follows \n  First char at start or follows newline
1157  No need char  No need char
1158    
1159  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1160  ------------------------------------------------------------------  ------------------------------------------------------------------
1161    0  21 Bra 0          Bra
1162    3   8 Bra 1          CBra 1
1163    6     Any*          Any*
1164    8   1 X          X
1165   11   7 Alt          Alt
1166   14     ^          ^
1167   15   1 B          B
1168   18  15 Ket          Ket
1169   21  21 Ket          Ket
1170   24     End          End
1171  ------------------------------------------------------------------  ------------------------------------------------------------------
1172  Capturing subpattern count = 1  Capturing subpattern count = 1
1173    Partial matching not supported
1174  Options: anchored dotall  Options: anchored dotall
1175  No first char  No first char
1176  No need char  No need char
1177    
1178  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1179  ------------------------------------------------------------------  ------------------------------------------------------------------
1180    0  21 Bra 0          Bra
1181    3   8 Bra 1          CBra 1
1182    6     Any*          Any*
1183    8   1 X          X
1184   11   7 Alt          Alt
1185   14     ^          ^
1186   15   1 B          B
1187   18  15 Ket          Ket
1188   21  21 Ket          Ket
1189   24     End          End
1190  ------------------------------------------------------------------  ------------------------------------------------------------------
1191  Capturing subpattern count = 1  Capturing subpattern count = 1
1192    Partial matching not supported
1193  Options: anchored dotall  Options: anchored dotall
1194  No first char  No first char
1195  No need char  No need char
1196    
1197  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1198  ------------------------------------------------------------------  ------------------------------------------------------------------
1199    0  27 Bra 0          Bra
1200    3  10 Bra 0          Bra
1201    6  04 Opt       04 Opt
1202    8     Any*          Any*
1203   10   1 X          X
1204   13   9 Alt          Alt
1205   16  04 Opt       04 Opt
1206   18     ^          ^
1207   19   1 B          B
1208   22  19 Ket          Ket
1209   25  00 Opt       00 Opt
1210   27  27 Ket          Ket
1211   30     End          End
1212  ------------------------------------------------------------------  ------------------------------------------------------------------
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214    Partial matching not supported
1215  No options  No options
1216  First char at start or follows \n  First char at start or follows newline
1217  No need char  No need char
1218    
1219  /\Biss\B/+  /\Biss\B/I+
1220  Capturing subpattern count = 0  Capturing subpattern count = 0
1221  No options  No options
1222  First char = 'i'  First char = 'i'
# Line 1178  Need char = 's' Line 1225  Need char = 's'
1225   0: iss   0: iss
1226   0+ issippi   0+ issippi
1227    
1228  /\Biss\B/+P  /\Biss\B/I+P
1229      Mississippi      Mississippi
1230   0: iss   0: iss
1231   0+ issippi   0+ issippi
1232    
1233  /iss/G+  /iss/IG+
1234  Capturing subpattern count = 0  Capturing subpattern count = 0
1235  No options  No options
1236  First char = 'i'  First char = 'i'
# Line 1194  Need char = 's' Line 1241  Need char = 's'
1241   0: iss   0: iss
1242   0+ ippi   0+ ippi
1243    
1244  /\Biss\B/G+  /\Biss\B/IG+
1245  Capturing subpattern count = 0  Capturing subpattern count = 0
1246  No options  No options
1247  First char = 'i'  First char = 'i'
# Line 1203  Need char = 's' Line 1250  Need char = 's'
1250   0: iss   0: iss
1251   0+ issippi   0+ issippi
1252    
1253  /\Biss\B/g+  /\Biss\B/Ig+
1254  Capturing subpattern count = 0  Capturing subpattern count = 0
1255  No options  No options
1256  First char = 'i'  First char = 'i'
# Line 1218  No match Line 1265  No match
1265      Mississippi\A      Mississippi\A
1266  No match  No match
1267    
1268  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1269  Capturing subpattern count = 0  Capturing subpattern count = 0
1270  No options  No options
1271  First char = 'i'  First char = 'i'
# Line 1229  Need char = 's' Line 1276  Need char = 's'
1276   0: iss   0: iss
1277   0+ ippi   0+ ippi
1278    
1279  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1280  Capturing subpattern count = 0  Capturing subpattern count = 0
1281  No options  No options
1282  First char = 'i'  First char = 'i'
# Line 1238  Need char = 's' Line 1285  Need char = 's'
1285   0: iss   0: iss
1286   0+ issippi   0+ issippi
1287    
1288  /^iss/g+  /^iss/Ig+
1289  Capturing subpattern count = 0  Capturing subpattern count = 0
1290  Options: anchored  Options: anchored
1291  No first char  No first char
# Line 1246  No need char Line 1293  No need char
1293      ississippi      ississippi
1294   0: iss   0: iss
1295   0+ issippi   0+ issippi
1296    
1297  /.*iss/g+  /.*iss/Ig+
1298  Capturing subpattern count = 0  Capturing subpattern count = 0
1299    Partial matching not supported
1300  No options  No options
1301  First char at start or follows \n  First char at start or follows newline
1302  Need char = 's'  Need char = 's'
1303      abciss\nxyzisspqr      abciss\nxyzisspqr
1304   0: abciss   0: abciss
1305   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1306   0: xyziss   0: xyziss
1307   0+ pqr   0+ pqr
1308    
1309  /.i./+g  /.i./I+g
1310  Capturing subpattern count = 0  Capturing subpattern count = 0
1311  No options  No options
1312  No first char  No first char
# Line 1284  Need char = 'i' Line 1332  Need char = 'i'
1332   0+ river   0+ river
1333   0: riv   0: riv
1334   0+ er   0+ er
1335      Missouri river\A      Missouri river\A
1336   0: Mis   0: Mis
1337   0+ souri river   0+ souri river
1338    
1339  /^.is/+g  /^.is/I+g
1340  Capturing subpattern count = 0  Capturing subpattern count = 0
1341  Options: anchored  Options: anchored
1342  No first char  No first char
# Line 1297  No need char Line 1345  No need char
1345   0: Mis   0: Mis
1346   0+ sissippi   0+ sissippi
1347    
1348  /^ab\n/g+  /^ab\n/Ig+
1349  Capturing subpattern count = 0  Capturing subpattern count = 0
1350  Options: anchored  Options: anchored
1351  No first char  No first char
# Line 1306  No need char Line 1354  No need char
1354   0: ab\x0a   0: ab\x0a
1355   0+ ab\x0acd   0+ ab\x0acd
1356    
1357  /^ab\n/mg+  /^ab\n/Img+
1358  Capturing subpattern count = 0  Capturing subpattern count = 0
1359  Options: multiline  Options: multiline
1360  First char at start or follows \n  First char at start or follows newline
1361  Need char = 10  Need char = 10
1362      ab\nab\ncd      ab\nab\ncd
1363   0: ab\x0a   0: ab\x0a
# Line 1317  Need char = 10 Line 1365  Need char = 10
1365   0: ab\x0a   0: ab\x0a
1366   0+ cd   0+ cd
1367    
1368  /abc/  /abc/I
1369  Capturing subpattern count = 0  Capturing subpattern count = 0
1370  No options  No options
1371  First char = 'a'  First char = 'a'
1372  Need char = 'c'  Need char = 'c'
1373    
1374  /abc|bac/  /abc|bac/I
1375  Capturing subpattern count = 0  Capturing subpattern count = 0
1376  No options  No options
1377  No first char  No first char
1378  Need char = 'c'  Need char = 'c'
1379    
1380  /(abc|bac)/  /(abc|bac)/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 = 'c'  Need char = 'c'
1385    
1386  /(abc|(c|dc))/  /(abc|(c|dc))/I
1387  Capturing subpattern count = 2  Capturing subpattern count = 2
1388  No options  No options
1389  No first char  No first char
1390  Need char = 'c'  Need char = 'c'
1391    
1392  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1393  Capturing subpattern count = 2  Capturing subpattern count = 2
1394  No options  No options
1395  No first char  No first char
1396  Need char = 'c'  Need char = 'c'
1397    
1398  /a*/  /a*/I
1399  Capturing subpattern count = 0  Capturing subpattern count = 0
1400    Partial matching not supported
1401  No options  No options
1402  No first char  No first char
1403  No need char  No need char
1404    
1405  /a+/  /a+/I
1406  Capturing subpattern count = 0  Capturing subpattern count = 0
1407    Partial matching not supported
1408  No options  No options
1409  First char = 'a'  First char = 'a'
1410  No need char  No need char
1411    
1412  /(baa|a+)/  /(baa|a+)/I
1413  Capturing subpattern count = 1  Capturing subpattern count = 1
1414    Partial matching not supported
1415  No options  No options
1416  No first char  No first char
1417  Need char = 'a'  Need char = 'a'
1418    
1419  /a{0,3}/  /a{0,3}/I
1420  Capturing subpattern count = 0  Capturing subpattern count = 0
1421    Partial matching not supported
1422  No options  No options
1423  No first char  No first char
1424  No need char  No need char
1425    
1426  /baa{3,}/  /baa{3,}/I
1427  Capturing subpattern count = 0  Capturing subpattern count = 0
1428    Partial matching not supported
1429  No options  No options
1430  First char = 'b'  First char = 'b'
1431  Need char = 'a'  Need char = 'a'
1432    
1433  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1434  Capturing subpattern count = 1  Capturing subpattern count = 1
1435    Partial matching not supported
1436  No options  No options
1437  First char = '"'  First char = '"'
1438  Need char = '"'  Need char = '"'
1439    
1440  /(abc|ab[cd])/  /(abc|ab[cd])/I
1441  Capturing subpattern count = 1  Capturing subpattern count = 1
1442  No options  No options
1443  First char = 'a'  First char = 'a'
1444  No need char  No need char
1445    
1446  /(a|.)/  /(a|.)/I
1447  Capturing subpattern count = 1  Capturing subpattern count = 1
1448  No options  No options
1449  No first char  No first char
1450  No need char  No need char
1451    
1452  /a|ba|\w/  /a|ba|\w/I
1453  Capturing subpattern count = 0  Capturing subpattern count = 0
1454  No options  No options
1455  No first char  No first char
1456  No need char  No need char
1457    
1458  /abc(?=pqr)/  /abc(?=pqr)/I
1459  Capturing subpattern count = 0  Capturing subpattern count = 0
1460  No options  No options
1461  First char = 'a'  First char = 'a'
1462  Need char = 'r'  Need char = 'r'
1463    
1464  /...(?<=abc)/  /...(?<=abc)/I
1465  Capturing subpattern count = 0  Capturing subpattern count = 0
1466  No options  No options
1467  No first char  No first char
1468  No need char  No need char
1469    
1470  /abc(?!pqr)/  /abc(?!pqr)/I
1471  Capturing subpattern count = 0  Capturing subpattern count = 0
1472  No options  No options
1473  First char = 'a'  First char = 'a'
1474  Need char = 'c'  Need char = 'c'
1475    
1476  /ab./  /ab./I
1477  Capturing subpattern count = 0  Capturing subpattern count = 0
1478  No options  No options
1479  First char = 'a'  First char = 'a'
1480  Need char = 'b'  Need char = 'b'
1481    
1482  /ab[xyz]/  /ab[xyz]/I
1483  Capturing subpattern count = 0  Capturing subpattern count = 0
1484  No options  No options
1485  First char = 'a'  First char = 'a'
1486  Need char = 'b'  Need char = 'b'
1487    
1488  /abc*/  /abc*/I
1489  Capturing subpattern count = 0  Capturing subpattern count = 0
1490    Partial matching not supported
1491  No options  No options
1492  First char = 'a'  First char = 'a'
1493  Need char = 'b'  Need char = 'b'
1494    
1495  /ab.c*/  /ab.c*/I
1496  Capturing subpattern count = 0  Capturing subpattern count = 0
1497    Partial matching not supported
1498  No options  No options
1499  First char = 'a'  First char = 'a'
1500  Need char = 'b'  Need char = 'b'
1501    
1502  /a.c*/  /a.c*/I
1503  Capturing subpattern count = 0  Capturing subpattern count = 0
1504    Partial matching not supported
1505  No options  No options
1506  First char = 'a'  First char = 'a'
1507  No need char  No need char
1508    
1509  /.c*/  /.c*/I
1510  Capturing subpattern count = 0  Capturing subpattern count = 0
1511    Partial matching not supported
1512  No options  No options
1513  No first char  No first char
1514  No need char  No need char
1515    
1516  /ac*/  /ac*/I
1517  Capturing subpattern count = 0  Capturing subpattern count = 0
1518    Partial matching not supported
1519  No options  No options
1520  First char = 'a'  First char = 'a'
1521  No need char  No need char
1522    
1523  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1524  Capturing subpattern count = 1  Capturing subpattern count = 1
1525    Partial matching not supported
1526  No options  No options
1527  No first char  No first char
1528  No need char  No need char
1529    
1530  /a.c*|aba/  /a.c*|aba/I
1531  Capturing subpattern count = 0  Capturing subpattern count = 0
1532    Partial matching not supported
1533  No options  No options
1534  First char = 'a'  First char = 'a'
1535  No need char  No need char
1536    
1537  /.+a/  /.+a/I
1538  Capturing subpattern count = 0  Capturing subpattern count = 0
1539    Partial matching not supported
1540  No options  No options
1541  No first char  No first char
1542  Need char = 'a'  Need char = 'a'
1543    
1544  /(?=abcda)a.*/  /(?=abcda)a.*/I
1545  Capturing subpattern count = 0  Capturing subpattern count = 0
1546    Partial matching not supported
1547  No options  No options
1548  First char = 'a'  First char = 'a'
1549  Need char = 'a'  Need char = 'a'
1550    
1551  /(?=a)a.*/  /(?=a)a.*/I
1552  Capturing subpattern count = 0  Capturing subpattern count = 0
1553    Partial matching not supported
1554  No options  No options
1555  First char = 'a'  First char = 'a'
1556  No need char  No need char
1557    
1558  /a(b)*/  /a(b)*/I
1559  Capturing subpattern count = 1  Capturing subpattern count = 1
1560  No options  No options
1561  First char = 'a'  First char = 'a'
1562  No need char  No need char
1563    
1564  /a\d*/  /a\d*/I
1565  Capturing subpattern count = 0  Capturing subpattern count = 0
1566    Partial matching not supported
1567  No options  No options
1568  First char = 'a'  First char = 'a'
1569  No need char  No need char
1570    
1571  /ab\d*/  /ab\d*/I
1572  Capturing subpattern count = 0  Capturing subpattern count = 0
1573    Partial matching not supported
1574  No options  No options
1575  First char = 'a'  First char = 'a'
1576  Need char = 'b'  Need char = 'b'
1577    
1578  /a(\d)*/  /a(\d)*/I
1579  Capturing subpattern count = 1  Capturing subpattern count = 1
1580  No options  No options
1581  First char = 'a'  First char = 'a'
1582  No need char  No need char
1583    
1584  /abcde{0,0}/  /abcde{0,0}/I
1585  Capturing subpattern count = 0  Capturing subpattern count = 0
1586  No options  No options
1587  First char = 'a'  First char = 'a'
1588  Need char = 'd'  Need char = 'd'
1589    
1590  /ab\d+/  /ab\d+/I
1591  Capturing subpattern count = 0  Capturing subpattern count = 0
1592    Partial matching not supported
1593  No options  No options
1594  First char = 'a'  First char = 'a'
1595  Need char = 'b'  Need char = 'b'
1596    
1597  /a(?(1)b)/  /a(?(1)b)/I
1598  Capturing subpattern count = 0  Capturing subpattern count = 0
1599  No options  No options
1600  First char = 'a'  First char = 'a'
1601  No need char  No need char
1602    
1603  /a(?(1)bag|big)/  /a(?(1)bag|big)/I
1604  Capturing subpattern count = 0  Capturing subpattern count = 0
1605  No options  No options
1606  First char = 'a'  First char = 'a'
1607  Need char = 'g'  Need char = 'g'
1608    
1609  /a(?(1)bag|big)*/  /a(?(1)bag|big)*/I
1610  Capturing subpattern count = 0  Capturing subpattern count = 0
1611  No options  No options
1612  First char = 'a'  First char = 'a'
1613  No need char  No need char
1614    
1615  /a(?(1)bag|big)+/  /a(?(1)bag|big)+/I
1616  Capturing subpattern count = 0  Capturing subpattern count = 0
1617  No options  No options
1618  First char = 'a'  First char = 'a'
1619  Need char = 'g'  Need char = 'g'
1620    
1621  /a(?(1)b..|b..)/  /a(?(1)b..|b..)/I
1622  Capturing subpattern count = 0  Capturing subpattern count = 0
1623  No options  No options
1624  First char = 'a'  First char = 'a'
1625  Need char = 'b'  Need char = 'b'
1626    
1627  /ab\d{0}e/  /ab\d{0}e/I
1628  Capturing subpattern count = 0  Capturing subpattern count = 0
1629  No options  No options
1630  First char = 'a'  First char = 'a'
1631  Need char = 'e'  Need char = 'e'
1632    
1633  /a?b?/  /a?b?/I
1634  Capturing subpattern count = 0  Capturing subpattern count = 0
1635  No options  No options
1636  No first char  No first char
# Line 1578  No need char Line 1645  No need char
1645   0:   0:
1646      *** Failers      *** Failers
1647   0:   0:
1648      \N      \N
1649  No match  No match
1650    
1651  /|-/  /|-/I
1652  Capturing subpattern count = 0  Capturing subpattern count = 0
1653  No options  No options
1654  No first char  No first char
# Line 1594  No need char Line 1661  No need char
1661   0: -   0: -
1662      *** Failers      *** Failers
1663   0:   0:
1664      \Nabc      \Nabc
1665  No match  No match
1666    
1667  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/IP
1668      aaaabbbbzzzz      aaaabbbbzzzz
1669   0: aaaabbbbzz   0: aaaabbbbzz
1670   1: bbbb   1: bbbb
# Line 1623  No match Line 1690  No match
1690   1: bbbb   1: bbbb
1691   2: z   2: z
1692   3: z   3: z
1693    
1694  /^.?abcd/S  /^.?abcd/IS
1695  Capturing subpattern count = 0  Capturing subpattern count = 0
1696  Options: anchored  Options: anchored
1697  No first char  No first char
# Line 1638  Study returned NULL Line 1705  Study returned NULL
1705    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1706    )*            # Zero or more contents    )*            # Zero or more contents
1707    \)            # Closing )    \)            # Closing )
1708    /x    /Ix
1709  Capturing subpattern count = 0  Capturing subpattern count = 0
1710    Partial matching not supported
1711  Options: extended  Options: extended
1712  First char = '('  First char = '('
1713  Need char = ')'  Need char = ')'
# Line 1649  Need char = ')' Line 1717  Need char = ')'
1717   0: (abcd)   0: (abcd)
1718      xyz(abcd)      xyz(abcd)
1719   0: (abcd)   0: (abcd)
1720      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1721   0: (ab(xy)cd)   0: (ab(xy)cd)
1722      (ab(xycd)pqr      (ab(xycd)pqr
1723   0: (xycd)   0: (xycd)
1724      () abc ()      () abc ()
1725   0: ()   0: ()
1726      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1727   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1728      *** Failers      *** Failers
1729  No match  No match
1730      abcd      abcd
1731  No match  No match
1732      abcd)      abcd)
1733  No match  No match
1734      (abcd      (abcd
1735  No match  No match
1736    
1737  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1738  Capturing subpattern count = 1  Capturing subpattern count = 1
1739    Partial matching not supported
1740  Options: extended  Options: extended
1741  First char = '('  First char = '('
1742  Need char = ')'  Need char = ')'
1743      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1744   0: (ab(xy)cd)   0: (ab(xy)cd)
1745   1: cd   1: cd
1746      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1680  Need char = ')' Line 1749  Need char = ')'
1749   0: (x(y)z)   0: (x(y)z)
1750   1: z   1: z
1751    
1752  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1753  Capturing subpattern count = 0  Capturing subpattern count = 0
1754    Partial matching not supported
1755  Options: extended  Options: extended
1756  First char = '('  First char = '('
1757  Need char = ')'  Need char = ')'
# Line 1689  Need char = ')' Line 1759  Need char = ')'
1759   0: (abcd)   0: (abcd)
1760      (ab(xy)cd)      (ab(xy)cd)
1761   0: (xy)   0: (xy)
1762      (a(b(c)d)e)      (a(b(c)d)e)
1763   0: (c)   0: (c)
1764      ((ab))      ((ab))
1765   0: ((ab))   0: ((ab))
1766      *** Failers      *** Failers
1767  No match  No match
1768      ()      ()
1769  No match  No match
1770    
1771  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1772  Capturing subpattern count = 0  Capturing subpattern count = 0
1773    Partial matching not supported
1774  Options: extended  Options: extended
1775  First char = '('  First char = '('
1776  Need char = ')'  Need char = ')'
# Line 1708  Need char = ')' Line 1779  Need char = ')'
1779      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1780   0: (fsh)   0: (fsh)
1781    
1782  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1783  Capturing subpattern count = 1  Capturing subpattern count = 1
1784    Partial matching not supported
1785  Options: extended  Options: extended
1786  First char = '('  First char = '('
1787  Need char = ')'  Need char = ')'
# Line 1717  Need char = ')' Line 1789  Need char = ')'
1789   0: (ab(xy)cd)   0: (ab(xy)cd)
1790   1: cd   1: cd
1791    
1792  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1793  Capturing subpattern count = 2  Capturing subpattern count = 2
1794    Partial matching not supported
1795  Options: extended  Options: extended
1796  First char = '('  First char = '('
1797  Need char = ')'  Need char = ')'
# Line 1727  Need char = ')' Line 1800  Need char = ')'
1800   1: ab(xy)cd   1: ab(xy)cd
1801   2: cd   2: cd
1802    
1803  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1804  Capturing subpattern count = 3  Capturing subpattern count = 3
1805    Partial matching not supported
1806  Options: extended  Options: extended
1807  First char = '('  First char = '('
1808  Need char = ')'  Need char = ')'
# Line 1743  Need char = ')' Line 1817  Need char = ')'
1817   2: ab(xy)cd   2: ab(xy)cd
1818   3: cd   3: cd
1819    
1820  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1821  Capturing subpattern count = 3  Capturing subpattern count = 3
1822    Partial matching not supported
1823  Options: extended  Options: extended
1824  First char = '('  First char = '('
1825  Need char = ')'  Need char = ')'
# Line 1759  Need char = ')' Line 1834  Need char = ')'
1834   2: 123   2: 123
1835   3: cd   3: cd
1836    
1837  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1838  Capturing subpattern count = 11  Capturing subpattern count = 11
1839    Partial matching not supported
1840  Options: extended  Options: extended
1841  First char = '('  First char = '('
1842  Need char = ')'  Need char = ')'
# Line 1778  Need char = ')' Line 1854  Need char = ')'
1854  10: ab(xy)cd  10: ab(xy)cd
1855  11: cd  11: cd
1856    
1857  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1858  Capturing subpattern count = 3  Capturing subpattern count = 3
1859    Partial matching not supported
1860  Options: extended  Options: extended
1861  First char = '('  First char = '('
1862  Need char = ')'  Need char = ')'
# Line 1789  Need char = ')' Line 1866  Need char = ')'
1866   2: 123   2: 123
1867   3: <unset>   3: <unset>
1868    
1869  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1870  Capturing subpattern count = 3  Capturing subpattern count = 3
1871    Partial matching not supported
1872  Options: extended  Options: extended
1873  First char = '('  First char = '('
1874  Need char = ')'  Need char = ')'
# Line 1805  Need char = ')' Line 1883  Need char = ')'
1883   2: ij   2: ij
1884   3: (cd(ef)gh)   3: (cd(ef)gh)
1885    
1886  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1887    ------------------------------------------------------------------
1888            Bra
1889            ^
1890            [0-9A-Za-z]
1891            Ket
1892            End
1893    ------------------------------------------------------------------
1894    Capturing subpattern count = 0
1895    Options: anchored
1896    No first char
1897    No need char
1898    
1899    /^[[:^alnum:]]/DZ
1900    ------------------------------------------------------------------
1901            Bra
1902            ^
1903            [\x00-/:-@[-`{-\xff]
1904            Ket
1905            End
1906    ------------------------------------------------------------------
1907    Capturing subpattern count = 0
1908    Options: anchored
1909    No first char
1910    No need char
1911    
1912    /^[[:alpha:]]/DZ
1913    ------------------------------------------------------------------
1914            Bra
1915            ^
1916            [A-Za-z]
1917            Ket
1918            End
1919    ------------------------------------------------------------------
1920    Capturing subpattern count = 0
1921    Options: anchored
1922    No first char
1923    No need char
1924    
1925    /^[[:^alpha:]]/DZ
1926    ------------------------------------------------------------------
1927            Bra
1928            ^
1929            [\x00-@[-`{-\xff]
1930            Ket
1931            End
1932    ------------------------------------------------------------------
1933    Capturing subpattern count = 0
1934    Options: anchored
1935    No first char
1936    No need char
1937    
1938    /[_[:alpha:]]/IS
1939    Capturing subpattern count = 0
1940    No options
1941    No first char
1942    No need char
1943    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
1944      _ 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
1945    
1946    /^[[:ascii:]]/DZ
1947  ------------------------------------------------------------------  ------------------------------------------------------------------
1948    0  37 Bra 0          Bra
1949    3     ^          ^
1950    4     [0-9A-Za-z]          [\x00-\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  /^[[:alpha:]]/D  /^[[:^ascii:]]/DZ
1960  ------------------------------------------------------------------  ------------------------------------------------------------------
1961    0  37 Bra 0          Bra
1962    3     ^          ^
1963    4     [A-Za-z]          [\x80-\xff]
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  /^[[:ascii:]]/D  /^[[:blank:]]/DZ
1973  ------------------------------------------------------------------  ------------------------------------------------------------------
1974    0  37 Bra 0          Bra
1975    3     ^          ^
1976    4     [\x00-\x7f]          [\x09 ]
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  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1986  ------------------------------------------------------------------  ------------------------------------------------------------------
1987    0  37 Bra 0          Bra
1988    3     ^          ^
1989    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff]
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  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
1999    Capturing subpattern count = 0
2000    No options
2001    No first char
2002    No need char
2003    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2004    
2005    /^[[:cntrl:]]/DZ
2006  ------------------------------------------------------------------  ------------------------------------------------------------------
2007    0  37 Bra 0          Bra
2008    3     ^          ^
2009    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
2010   37  37 Ket          Ket
2011   40     End          End
2012  ------------------------------------------------------------------  ------------------------------------------------------------------
2013  Capturing subpattern count = 0  Capturing subpattern count = 0
2014  Options: anchored  Options: anchored
2015  No first char  No first char
2016  No need char  No need char
2017    
2018  /^[[:digit:]]/D  /^[[:digit:]]/DZ
2019  ------------------------------------------------------------------  ------------------------------------------------------------------
2020    0  37 Bra 0          Bra
2021    3     ^          ^
2022    4     [0-9]          [0-9]
2023   37  37 Ket          Ket
2024   40     End          End
2025  ------------------------------------------------------------------  ------------------------------------------------------------------
2026  Capturing subpattern count = 0  Capturing subpattern count = 0
2027  Options: anchored  Options: anchored
2028  No first char  No first char
2029  No need char  No need char
2030    
2031  /^[[:graph:]]/D  /^[[:graph:]]/DZ
2032  ------------------------------------------------------------------  ------------------------------------------------------------------
2033    0  37 Bra 0          Bra
2034    3     ^          ^
2035    4     [!-~]          [!-~]
2036   37  37 Ket          Ket
2037   40     End          End
2038  ------------------------------------------------------------------  ------------------------------------------------------------------
2039  Capturing subpattern count = 0  Capturing subpattern count = 0
2040  Options: anchored  Options: anchored
2041  No first char  No first char
2042  No need char  No need char
2043    
2044  /^[[:lower:]]/D  /^[[:lower:]]/DZ
2045  ------------------------------------------------------------------  ------------------------------------------------------------------
2046    0  37 Bra 0          Bra
2047    3     ^          ^
2048    4     [a-z]          [a-z]
2049   37  37 Ket          Ket
2050   40     End          End
2051  ------------------------------------------------------------------  ------------------------------------------------------------------
2052  Capturing subpattern count = 0  Capturing subpattern count = 0
2053  Options: anchored  Options: anchored
2054  No first char  No first char
2055  No need char  No need char
2056    
2057  /^[[:print:]]/D  /^[[:print:]]/DZ
2058  ------------------------------------------------------------------  ------------------------------------------------------------------
2059    0  37 Bra 0          Bra
2060    3     ^          ^
2061    4     [ -~]          [ -~]
2062   37  37 Ket          Ket
2063   40     End          End
2064  ------------------------------------------------------------------  ------------------------------------------------------------------
2065  Capturing subpattern count = 0  Capturing subpattern count = 0
2066  Options: anchored  Options: anchored
2067  No first char  No first char
2068  No need char  No need char
2069    
2070  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2071  ------------------------------------------------------------------  ------------------------------------------------------------------
2072    0  37 Bra 0          Bra
2073    3     ^          ^
2074    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2075   37  37 Ket          Ket
2076   40     End          End
2077  ------------------------------------------------------------------  ------------------------------------------------------------------
2078  Capturing subpattern count = 0  Capturing subpattern count = 0
2079  Options: anchored  Options: anchored
2080  No first char  No first char
2081  No need char  No need char
2082    
2083  /^[[:space:]]/D  /^[[:space:]]/DZ
2084  ------------------------------------------------------------------  ------------------------------------------------------------------
2085    0  37 Bra 0          Bra
2086    3     ^          ^
2087    4     [\x09-\x0d ]          [\x09-\x0d ]
2088   37  37 Ket          Ket
2089   40     End          End
2090  ------------------------------------------------------------------  ------------------------------------------------------------------
2091  Capturing subpattern count = 0  Capturing subpattern count = 0
2092  Options: anchored  Options: anchored
2093  No first char  No first char
2094  No need char  No need char
2095    
2096  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2097  ------------------------------------------------------------------  ------------------------------------------------------------------
2098    0  37 Bra 0          Bra
2099    3     ^          ^
2100    4     [A-Z]          [A-Z]
2101   37  37 Ket          Ket
2102   40     End          End
2103  ------------------------------------------------------------------  ------------------------------------------------------------------
2104  Capturing subpattern count = 0  Capturing subpattern count = 0
2105  Options: anchored  Options: anchored
2106  No first char  No first char
2107  No need char  No need char
2108    
2109  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2110  ------------------------------------------------------------------  ------------------------------------------------------------------
2111    0  37 Bra 0          Bra
2112    3     ^          ^
2113    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2114   37  37 Ket          Ket
2115   40     End          End
2116  ------------------------------------------------------------------  ------------------------------------------------------------------
2117  Capturing subpattern count = 0  Capturing subpattern count = 0
2118  Options: anchored  Options: anchored
2119  No first char  No first char
2120  No need char  No need char
2121    
2122  /^[[:word:]]/D  /^[[:word:]]/DZ
2123  ------------------------------------------------------------------  ------------------------------------------------------------------
2124    0  37 Bra 0          Bra
2125    3     ^          ^
2126    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2127   37  37 Ket          Ket
2128   40     End          End
2129  ------------------------------------------------------------------  ------------------------------------------------------------------
2130  Capturing subpattern count = 0  Capturing subpattern count = 0
2131  Options: anchored  Options: anchored
2132  No first char  No first char
2133  No need char  No need char
2134    
2135  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2136  ------------------------------------------------------------------  ------------------------------------------------------------------
2137    0  37 Bra 0          Bra
2138    3     ^          ^
2139    4     [ -~\x80-\xff]          [ -~\x80-\xff]
2140   37  37 Ket          Ket
2141   40     End          End
2142  ------------------------------------------------------------------  ------------------------------------------------------------------
2143  Capturing subpattern count = 0  Capturing subpattern count = 0
2144  Options: anchored  Options: anchored
2145  No first char  No first char
2146  No need char  No need char
2147    
2148  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2149  ------------------------------------------------------------------  ------------------------------------------------------------------
2150    0  37 Bra 0          Bra
2151    3     ^          ^
2152    4     [\x00-/1-2:-\xff]          [\x00-/12:-\xff]
2153   37  37 Ket          Ket
2154   40     End          End
2155  ------------------------------------------------------------------  ------------------------------------------------------------------
2156  Capturing subpattern count = 0  Capturing subpattern count = 0
2157  Options: anchored  Options: anchored
2158  No first char  No first char
2159  No need char  No need char
2160    
2161  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2162  ------------------------------------------------------------------  ------------------------------------------------------------------
2163    0  37 Bra 0          Bra
2164    3     ^          ^
2165    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff]
2166   37  37 Ket          Ket
2167   40     End          End
2168  ------------------------------------------------------------------  ------------------------------------------------------------------
2169  Capturing subpattern count = 0  Capturing subpattern count = 0
2170  Options: anchored  Options: anchored
2171  No first char  No first char
2172  No need char  No need char
2173    
2174  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2175  ------------------------------------------------------------------  ------------------------------------------------------------------
2176    0  36 Bra 0          Bra
2177    3     [%0-1A-Za-z]          [%01A-Za-z]
2178   36  36 Ket          Ket
2179   39     End          End
2180  ------------------------------------------------------------------  ------------------------------------------------------------------
2181  Capturing subpattern count = 0  Capturing subpattern count = 0
2182  No options  No options
2183  No first char  No first char
2184  No need char  No need char
2185    
2186  /[[.ch.]]/  /[[.ch.]]/I
2187  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2188    
2189  /[[=ch=]]/  /[[=ch=]]/I
2190  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2191    
2192  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2193  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2194    
2195  /[[:upper:]]/i  /[[:upper:]]/Ii
2196  Capturing subpattern count = 0  Capturing subpattern count = 0
2197  Options: caseless  Options: caseless
2198  No first char  No first char
2199  No need char  No need char
2200      A      A
2201   0: A   0: A
2202      a      a
2203   0: a   0: a
2204    
2205  /[[:lower:]]/i  /[[:lower:]]/Ii
2206  Capturing subpattern count = 0  Capturing subpattern count = 0
2207  Options: caseless  Options: caseless
2208  No first char  No first char
2209  No need char  No need char
2210      A      A
2211   0: A   0: A
2212      a      a
2213   0: a   0: a
2214    
2215  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2216  Capturing subpattern count = 1  Capturing subpattern count = 1
2217  Options: caseless  Options: caseless
 Case state changes  
2218  No first char  No first char
2219  No need char  No need char
2220      ab      ab
# Line 2084  No need char Line 2228  No need char
2228   1: a   1: a
2229      Ab      Ab
2230  No match  No match
2231      AB      AB
2232  No match  No match
2233    
2234  /[\200-\410]/  /[\200-\110]/I
2235  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2236    
2237  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2238  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2239    
2240  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2241  Capturing subpattern count = 0  Capturing subpattern count = 0
2242  No options  No options
2243  First char = 'T'  First char = 'T'
2244  Need char = 'd'  Need char = 'd'
2245    
2246  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2247  Capturing subpattern count = 271  Capturing subpattern count = 271
2248  Max back reference = 270  Max back reference = 270
2249    Partial matching not supported
2250  No options  No options
2251  No first char  No first char
2252  No need char  No need char
# Line 2379  No need char Line 2524  No need char
2524  270: ABC  270: ABC
2525  271: ABC  271: ABC
2526    
2527  /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
2528  Capturing subpattern count = 0  Capturing subpattern count = 0
2529  No options  No options
2530  First char = 'T'  First char = 'T'
2531  Need char = 't'  Need char = 't'
2532    
2533  /(main(O)?)+/  /(main(O)?)+/I
2534  Capturing subpattern count = 2  Capturing subpattern count = 2
2535  No options  No options
2536  First char = 'm'  First char = 'm'
# Line 2397  Need char = 'n' Line 2542  Need char = 'n'
2542   0: mainOmain   0: mainOmain
2543   1: main   1: main
2544   2: O   2: O
2545    
2546  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2547  Capturing subpattern count = 1  Capturing subpattern count = 1
2548  No options  No options
2549  First char = 'T'  First char = 'T'
2550  Need char = 's'  Need char = 's'
2551    
2552  /^(a(b)?)+$/  /^(a(b)?)+$/I
2553  Capturing subpattern count = 2  Capturing subpattern count = 2
2554  Options: anchored  Options: anchored
2555  No first char  No first char
# Line 2413  No need char Line 2558  No need char
2558   0: aba   0: aba
2559   1: a   1: a
2560   2: b   2: b
2561    
2562  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2563  Capturing subpattern count = 2  Capturing subpattern count = 2
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: aa   1: aa
2570   2: bb   2: bb
2571    
2572  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2573  Capturing subpattern count = 2  Capturing subpattern count = 2
2574  Options: anchored  Options: anchored
2575  No first char  No first char
2576  No need char  No need char
2577      aabbaa      aabbaa
2578   0: aabbaa   0: aabbaa
2579   1: aa   1: aa
2580   2: bb   2: bb
2581    
2582  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2583  Capturing subpattern count = 2  Capturing subpattern count = 2
2584  Options: anchored  Options: anchored
2585  No first char  No first char
2586  No need char  No need char
2587      aabbaa      aabbaa
2588   0: aabbaa   0: aabbaa
2589   1: aa   1: aa
2590   2: bb   2: bb
2591    
2592  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2593  Capturing subpattern count = 1  Capturing subpattern count = 1
2594  Options: anchored  Options: anchored
2595  No first char  No first char
2596  No need char  No need char
2597      aabbaa      aabbaa
2598   0: aabbaa   0: aabbaa
2599   1: bb   1: bb
2600    
2601  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2602  Capturing subpattern count = 3  Capturing subpattern count = 3
2603  Options: anchored  Options: anchored
2604  No first char  No first char
2605  No need char  No need char
2606      aabbaa      aabbaa
2607   0: aabbaa   0: aabbaa
2608   1: aa   1: aa
2609   2: bb   2: bb
2610   3: b   3: b
2611    
2612  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2613  Capturing subpattern count = 2  Capturing subpattern count = 2
2614  Options: anchored  Options: anchored
2615  No first char  No first char
2616  No need char  No need char
2617      aabbaa      aabbaa
2618   0: aabbaa   0: aabbaa
2619   1: bb   1: bb
2620   2: b   2: b
2621    
2622  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2623  Capturing subpattern count = 1  Capturing subpattern count = 1
2624  Options: anchored  Options: anchored
2625  No first char  No first char
2626  No need char  No need char
2627      aabbaa      aabbaa
2628   0: aabbaa   0: aabbaa
2629   1: bb   1: bb
2630    
2631  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2632  Capturing subpattern count = 1  Capturing subpattern count = 1
2633  Options: anchored  Options: anchored
2634  No first char  No first char
2635  No need char  No need char
2636      aabbbaa      aabbbaa
2637   0: aabbbaa   0: aabbbaa
2638   1: bbb   1: bbb
2639    
2640  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2641  Capturing subpattern count = 1  Capturing subpattern count = 1
2642  Options: anchored  Options: anchored
2643  No first char  No first char
2644  No need char  No need char
2645      aabbbaa      aabbbaa
2646   0: aabbbaa   0: aabbbaa
2647   1: bbb   1: bbb
2648    
2649  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2650  Capturing subpattern count = 1  Capturing subpattern count = 1
2651  Options: anchored  Options: anchored
2652  No first char  No first char
2653  No need char  No need char
2654      aabbaa      aabbaa
2655   0: aabbaa   0: aabbaa
2656   1: b   1: b
2657    
2658  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2659  Capturing subpattern count = 1  Capturing subpattern count = 1
2660  Options: anchored  Options: anchored
2661  No first char  No first char
2662  No need char  No need char
2663      aabbbaa      aabbbaa
2664   0: aabbbaa   0: aabbbaa
2665   1: bb   1: bb
2666    
2667  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2668  Capturing subpattern count = 3  Capturing subpattern count = 3
2669  Options: anchored  Options: anchored
2670  No first char  No first char
2671  No need char  No need char
2672      aabbbaa      aabbbaa
2673   0: aabbbaa   0: aabbbaa
2674   1: aa   1: aa
2675   2: bbb   2: bbb
2676   3: bb   3: bb
2677    
2678  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2679  Capturing subpattern count = 3  Capturing subpattern count = 3
2680  Options: anchored  Options: anchored
2681  No first char  No first char
2682  No need char  No need char
2683      aabbbbaa      aabbbbaa
2684   0: aabbbbaa   0: aabbbbaa
2685   1: aa   1: aa
2686   2: bbbb   2: bbbb
2687   3: bb   3: bb
2688    
2689  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2690  Capturing subpattern count = 0  Capturing subpattern count = 0
2691  No options  No options
2692  First char = '-'  First char = '-'
2693  Need char = '-'  Need char = '-'
2694    
2695  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2696  ------------------------------------------------------------------  ------------------------------------------------------------------
2697    0   3 Bra 0          Bra
2698    3   3 Ket          Ket
2699    6     End          End
2700  ------------------------------------------------------------------  ------------------------------------------------------------------
2701  Capturing subpattern count = 0  Capturing subpattern count = 0
2702  Options: extended  Options: extended
2703  No first char  No first char
2704  No need char  No need char
2705    
2706  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 13  
2707  ------------------------------------------------------------------  ------------------------------------------------------------------
2708    0   6 Bra 0          Bra
2709    3   1 a          a
2710    6   6 Ket          Ket
2711    9     End          End
2712  ------------------------------------------------------------------  ------------------------------------------------------------------
2713  Capturing subpattern count = 0  Capturing subpattern count = 0
2714  Options: extended  Options: extended
2715  First char = 'a'  First char = 'a'
2716  No need char  No need char
2717    
2718  /[\s]/D  /[\s]/DZ
2719  ------------------------------------------------------------------  ------------------------------------------------------------------
2720    0  36 Bra 0          Bra
2721    3     [\x09-\x0a\x0c-\x0d ]          [\x09\x0a\x0c\x0d ]
2722   36  36 Ket          Ket
2723   39     End          End
2724  ------------------------------------------------------------------  ------------------------------------------------------------------
2725  Capturing subpattern count = 0  Capturing subpattern count = 0
2726  No options  No options
2727  No first char  No first char
2728  No need char  No need char
2729    
2730  /[\S]/D  /[\S]/DZ
2731  ------------------------------------------------------------------  ------------------------------------------------------------------
2732    0  36 Bra 0          Bra
2733    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff]
2734   36  36 Ket          Ket
2735   39     End          End
2736  ------------------------------------------------------------------  ------------------------------------------------------------------
2737  Capturing subpattern count = 0  Capturing subpattern count = 0
2738  No options  No options
2739  No first char  No first char
2740  No need char  No need char
2741    
2742  /a(?i)b/D  /a(?i)b/DZ
2743  ------------------------------------------------------------------  ------------------------------------------------------------------
2744    0  11 Bra 0          Bra
2745    3   1 a          a
2746    6  01 Opt       01 Opt
2747    8   1 b       NC b
2748   11  11 Ket          Ket
2749   14     End          End
2750  ------------------------------------------------------------------  ------------------------------------------------------------------
2751  Capturing subpattern count = 0  Capturing subpattern count = 0
2752  No options  No options
 Case state changes  
2753  First char = 'a'  First char = 'a'
2754  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2755      ab      ab
2756   0: ab   0: ab
2757      aB      aB
2758   0: aB   0: aB
2759      *** Failers      *** Failers
2760  No match  No match
2761      AB      AB
2762  No match  No match
2763    
2764  /(a(?i)b)/D  /(a(?i)b)/DZ
2765  ------------------------------------------------------------------  ------------------------------------------------------------------
2766    0  19 Bra 0          Bra
2767    3  11 Bra 1          CBra 1
2768    6   1 a          a
2769    9  01 Opt       01 Opt
2770   11   1 b       NC b
2771   14  11 Ket          Ket
2772   17  00 Opt       00 Opt
2773   19  19 Ket          Ket
2774   22     End          End
2775  ------------------------------------------------------------------  ------------------------------------------------------------------
2776  Capturing subpattern count = 1  Capturing subpattern count = 1
2777  No options  No options
 Case state changes  
2778  First char = 'a'  First char = 'a'
2779  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2780      ab      ab
# Line 2642  Need char = 'b' (caseless) Line 2783  Need char = 'b' (caseless)
2783      aB      aB
2784   0: aB   0: aB
2785   1: aB   1: aB
2786      *** Failers      *** Failers
2787  No match  No match
2788      AB      AB
2789  No match  No match
2790    
2791  /   (?i)abc/xD  /   (?i)abc/IxDZ
2792  ------------------------------------------------------------------  ------------------------------------------------------------------
2793    0   8 Bra 0          Bra
2794    3   3 abc       NC abc
2795    8   8 Ket          Ket
2796   11     End          End
2797  ------------------------------------------------------------------  ------------------------------------------------------------------
2798  Capturing subpattern count = 0  Capturing subpattern count = 0
2799  Options: caseless extended  Options: caseless extended
# Line 2660  First char = 'a' (caseless) Line 2801  First char = 'a' (caseless)
2801  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2802    
2803  /#this is a comment  /#this is a comment
2804    (?i)abc/xD    (?i)abc/IxDZ
2805  ------------------------------------------------------------------  ------------------------------------------------------------------
2806    0   8 Bra 0          Bra
2807    3   3 abc       NC abc
2808    8   8 Ket          Ket
2809   11     End          End
2810  ------------------------------------------------------------------  ------------------------------------------------------------------
2811  Capturing subpattern count = 0  Capturing subpattern count = 0
2812  Options: caseless extended  Options: caseless extended
2813  First char = 'a' (caseless)  First char = 'a' (caseless)
2814  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2815    
2816  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2817  ------------------------------------------------------------------  ------------------------------------------------------------------
2818    0 307 Bra 0          Bra
2819    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2820  255  50 12345678901234567890123456789012345678901234567890          Ket
2821  307 307 Ket          End
 310     End  
2822  ------------------------------------------------------------------  ------------------------------------------------------------------
2823  Capturing subpattern count = 0  Capturing subpattern count = 0
2824  No options  No options
2825  First char = '1'  First char = '1'
2826  Need char = '0'  Need char = '0'
2827    
2828  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2829  ------------------------------------------------------------------  ------------------------------------------------------------------
2830    0 307 Bra 0          Bra
2831    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2832  255  50 12345678901234567890123456789012345678901234567890          Ket
2833  307 307 Ket          End
 310     End  
2834  ------------------------------------------------------------------  ------------------------------------------------------------------
2835  Capturing subpattern count = 0  Capturing subpattern count = 0
2836  No options  No options
2837  First char = '1'  First char = '1'
2838  Need char = '0'  Need char = '0'
2839    
2840  /\Q\E/D  /\Q\E/DZ
2841  ------------------------------------------------------------------  ------------------------------------------------------------------
2842    0   3 Bra 0          Bra
2843    3   3 Ket          Ket
2844    6     End          End
2845  ------------------------------------------------------------------  ------------------------------------------------------------------
2846  Capturing subpattern count = 0  Capturing subpattern count = 0
2847  No options  No options
# Line 2711  No need char Line 2850  No need char
2850      \      \
2851   0:   0:
2852    
2853  /\Q\Ex/D  /\Q\Ex/DZ
2854  ------------------------------------------------------------------  ------------------------------------------------------------------
2855    0   6 Bra 0          Bra
2856    3   1 x          x
2857    6   6 Ket          Ket
2858    9     End          End
2859  ------------------------------------------------------------------  ------------------------------------------------------------------
2860  Capturing subpattern count = 0  Capturing subpattern count = 0
2861  No options  No options
2862  First char = 'x'  First char = 'x'
2863  No need char  No need char
2864    
2865  / \Q\E/D  / \Q\E/DZ
2866  ------------------------------------------------------------------  ------------------------------------------------------------------
2867    0   6 Bra 0          Bra
2868    3   1  
2869    6   6 Ket          Ket
2870    9     End          End
2871  ------------------------------------------------------------------  ------------------------------------------------------------------
2872  Capturing subpattern count = 0  Capturing subpattern count = 0
2873  No options  No options
2874  First char = ' '  First char = ' '
2875  No need char  No need char
2876    
2877  /a\Q\E/D  /a\Q\E/DZ
2878  ------------------------------------------------------------------  ------------------------------------------------------------------
2879    0   6 Bra 0          Bra
2880    3   1 a          a
2881    6   6 Ket          Ket
2882    9     End          End
2883  ------------------------------------------------------------------  ------------------------------------------------------------------
2884  Capturing subpattern count = 0  Capturing subpattern count = 0
2885  No options  No options
# Line 2750  No need char Line 2889  No need char
2889   0: a   0: a
2890    bca    bca
2891   0: a   0: a
2892    bac    bac
2893   0: a   0: a
2894    
2895  /a\Q\Eb/D  /a\Q\Eb/DZ
2896  ------------------------------------------------------------------  ------------------------------------------------------------------
2897    0   9 Bra 0          Bra
2898    3   1 a          ab
2899    6   1 b          Ket
2900    9   9 Ket          End
  12     End  
2901  ------------------------------------------------------------------  ------------------------------------------------------------------
2902  Capturing subpattern count = 0  Capturing subpattern count = 0
2903  No options  No options
# Line 2768  Need char = 'b' Line 2906  Need char = 'b'
2906    abc    abc
2907   0: ab   0: ab
2908    
2909  /\Q\Eabc/D  /\Q\Eabc/DZ
2910  ------------------------------------------------------------------  ------------------------------------------------------------------
2911    0   8 Bra 0          Bra
2912    3   3 abc          abc
2913    8   8 Ket          Ket
2914   11     End          End
2915  ------------------------------------------------------------------  ------------------------------------------------------------------
2916  Capturing subpattern count = 0  Capturing subpattern count = 0
2917  No options  No options
2918  First char = 'a'  First char = 'a'
2919  Need char = 'c'  Need char = 'c'
2920    
2921  /x*+\w/D  /x*+\w/DZ
2922  ------------------------------------------------------------------  ------------------------------------------------------------------
2923    0  12 Bra 0          Bra
2924    3   5 Once          x*+
2925    6     x*          \w
2926    8   5 Ket          Ket
2927   11     \w          End
  12  12 Ket  
  15     End  
2928  ------------------------------------------------------------------  ------------------------------------------------------------------
2929  Capturing subpattern count = 0  Capturing subpattern count = 0
2930    Partial matching not supported
2931  No options  No options
2932  No first char  No first char
2933  No need char  No need char
# Line 2798  No need char Line 2935  No need char
2935   0: F   0: F
2936      xxxxx      xxxxx
2937  No match  No match
2938    
2939  /x?+/D  /x?+/DZ
2940  ------------------------------------------------------------------  ------------------------------------------------------------------
2941    0  11 Bra 0          Bra
2942    3   5 Once          x?+
2943    6     x?          Ket
2944    8   5 Ket          End
  11  11 Ket  
  14     End  
2945  ------------------------------------------------------------------  ------------------------------------------------------------------
2946  Capturing subpattern count = 0  Capturing subpattern count = 0
2947  No options  No options
2948  No first char  No first char
2949  No need char  No need char
2950    
2951  /x++/D  /x++/DZ
2952  ------------------------------------------------------------------  ------------------------------------------------------------------
2953    0  11 Bra 0          Bra
2954    3   5 Once          x++
2955    6     x+          Ket
2956    8   5 Ket          End
  11  11 Ket  
  14     End  
2957  ------------------------------------------------------------------  ------------------------------------------------------------------
2958  Capturing subpattern count = 0  Capturing subpattern count = 0
2959    Partial matching not supported
2960  No options  No options
2961  First char = 'x'  First char = 'x'
2962  No need char  No need char
2963    
2964  /x{1,3}+/D  /x{1,3}+/DZ
2965  ------------------------------------------------------------------  ------------------------------------------------------------------
2966    0  16 Bra 0          Bra
2967    3  10 Once          Once
2968    6   1 x          x
2969    9     x{,2}          x{0,2}
2970   13  10 Ket          Ket
2971   16  16 Ket          Ket
2972   19     End          End
2973  ------------------------------------------------------------------  ------------------------------------------------------------------
2974  Capturing subpattern count = 0  Capturing subpattern count = 0
2975    Partial matching not supported
2976  No options  No options
2977  First char = 'x'  First char = 'x'
2978  No need char  No need char
2979    
2980  /(x)*+/D  /(x)*+/DZ
2981  ------------------------------------------------------------------  ------------------------------------------------------------------
2982    0  19 Bra 0          Bra
2983    3  13 Once          Once
2984    6     Brazero          Brazero
2985    7   6 Bra 1          CBra 1
2986   10   1 x          x
2987   13   6 KetRmax          KetRmax
2988   16  13 Ket          Ket
2989   19  19 Ket          Ket
2990   22     End          End
2991  ------------------------------------------------------------------  ------------------------------------------------------------------
2992  Capturing subpattern count = 1  Capturing subpattern count = 1
2993  No options  No options
2994  No first char  No first char
2995  No need char  No need char
2996    
2997  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2998  Capturing subpattern count = 1  Capturing subpattern count = 1
2999    Partial matching not supported
3000  Options: anchored  Options: anchored
3001  No first char  No first char
3002  No need char  No need char
# Line 2871  No need char Line 3007  No need char
3007  No match  No match
3008      this is not a line with only words and spaces!      this is not a line with only words and spaces!
3009  No match  No match
3010    
3011  /(\d++)(\w)/  /(\d++)(\w)/I
3012  Capturing subpattern count = 2  Capturing subpattern count = 2
3013    Partial matching not supported
3014  No options  No options
3015  No first char  No first char
3016  No need char  No need char
# Line 2883  No need char Line 3020  No need char
3020   2: a   2: a
3021      *** Failers      *** Failers
3022  No match  No match
3023      12345+      12345+
3024  No match  No match
3025    
3026  /a++b/  /a++b/I
3027  Capturing subpattern count = 0  Capturing subpattern count = 0
3028    Partial matching not supported
3029  No options  No options
3030  First char = 'a'  First char = 'a'
3031  Need char = 'b'  Need char = 'b'
3032      aaab      aaab
3033   0: aaab   0: aaab
3034    
3035  /(a++b)/  /(a++b)/I
3036  Capturing subpattern count = 1  Capturing subpattern count = 1
3037    Partial matching not supported
3038  No options  No options
3039  First char = 'a'  First char = 'a'
3040  Need char = 'b'  Need char = 'b'
# Line 2903  Need char = 'b' Line 3042  Need char = 'b'
3042   0: aaab   0: aaab
3043   1: aaab   1: aaab
3044    
3045  /(a++)b/  /(a++)b/I
3046  Capturing subpattern count = 1  Capturing subpattern count = 1
3047    Partial matching not supported
3048  No options  No options
3049  First char = 'a'  First char = 'a'
3050  Need char = 'b'  Need char = 'b'
# Line 2912  Need char = 'b' Line 3052  Need char = 'b'
3052   0: aaab   0: aaab
3053   1: aaa   1: aaa
3054    
3055  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3056  Capturing subpattern count = 1  Capturing subpattern count = 1
3057    Partial matching not supported
3058  No options  No options
3059  No first char  No first char
3060  No need char  No need char
3061      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3062   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3063   1: x   1: x
3064    
3065  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3066  Capturing subpattern count = 1  Capturing subpattern count = 1
3067    Partial matching not supported
3068  No options  No options
3069  First char = '('  First char = '('
3070  Need char = ')'  Need char = ')'
# Line 2934  Need char = ')' Line 3076  Need char = ')'
3076   1: xyz   1: xyz
3077      *** Failers      *** Failers
3078  No match  No match
3079      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3080  No match  No match
3081    
3082  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3083  ------------------------------------------------------------------  ------------------------------------------------------------------
3084    0  50 Bra 0          Bra
3085    3  44 Once          Once
3086    6   8 Bra 1          CBra 1
3087    9   3 abc          abc
3088   14   8 Ket          Ket
3089   17     Brazero          Brazero
3090   18  26 Bra 0          Bra
3091   21   8 Bra 1          CBra 1
3092   24   3 abc          abc
3093   29   8 Ket          Ket
3094   32     Brazero          Brazero
3095   33   8 Bra 1          CBra 1
3096   36   3 abc          abc
3097   41   8 Ket          Ket
3098   44  26 Ket          Ket
3099   47  44 Ket          Ket
3100   50  50 Ket          Ket
3101   53     End          End
3102  ------------------------------------------------------------------  ------------------------------------------------------------------
3103  Capturing subpattern count = 1  Capturing subpattern count = 1
3104  No options  No options
3105  First char = 'a'  First char = 'a'
3106  Need char = 'c'  Need char = 'c'
3107    
3108  /a+?+/  /a+?+/I
3109  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3110    
3111  /a{2,3}?+b/  /a{2,3}?+b/I
3112  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3113    
3114  /(?U)a+?+/  /(?U)a+?+/I
3115  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3116    
3117  /a{2,3}?+b/U  /a{2,3}?+b/IU
3118  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3119    
3120  /x(?U)a++b/D  /x(?U)a++b/DZ
3121  ------------------------------------------------------------------  ------------------------------------------------------------------
3122    0  17 Bra 0          Bra
3123    3   1 x          x
3124    6   5 Once          a++
3125    9     a+          b
3126   11   5 Ket          Ket
3127   14   1 b          End
  17  17 Ket  
  20     End  
3128  ------------------------------------------------------------------  ------------------------------------------------------------------
3129  Capturing subpattern count = 0  Capturing subpattern count = 0
3130    Partial matching not supported
3131  No options  No options
3132  First char = 'x'  First char = 'x'
3133  Need char = 'b'  Need char = 'b'
3134      xaaaab      xaaaab
3135   0: xaaaab   0: xaaaab
3136    
3137  /(?U)xa++b/D  /(?U)xa++b/DZ
3138  ------------------------------------------------------------------  ------------------------------------------------------------------
3139    0  17 Bra 0          Bra
3140    3   1 x          x
3141    6   5 Once          a++
3142    9     a+          b
3143   11   5 Ket          Ket
3144   14   1 b          End
  17  17 Ket  
  20     End  
3145  ------------------------------------------------------------------  ------------------------------------------------------------------
3146  Capturing subpattern count = 0  Capturing subpattern count = 0
3147    Partial matching not supported
3148  Options: ungreedy  Options: ungreedy
3149  First char = 'x'  First char = 'x'
3150  Need char = 'b'  Need char = 'b'
3151      xaaaab      xaaaab
3152   0: xaaaab   0: xaaaab
3153    
3154  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3155  ------------------------------------------------------------------  ------------------------------------------------------------------
3156    0 106 Bra 0          Bra
3157    3     ^          ^
3158    4  99 Bra 1          CBra 1
3159    7   5 Bra 2          CBra 2
3160   10     a+          a+
3161   12   5 Ket          Ket
3162   15  37 Bra 3          CBra 3
3163   18     [a-b]+?          [ab]+?
3164   52  37 Ket          Ket
3165   55  37 Bra 4          CBra 4
3166   58     [b-c]+          [bc]+
3167   92  37 Ket          Ket
3168   95   5 Bra 5          CBra 5
3169   98     \w*          \w*
3170  100   5 Ket          Ket
3171  103  99 Ket          Ket
3172  106 106 Ket          Ket
3173  109     End          End
3174  ------------------------------------------------------------------  ------------------------------------------------------------------
3175  Capturing subpattern count = 5  Capturing subpattern count = 5
3176    Partial matching not supported
3177  Options: anchored  Options: anchored
3178  No first char  No first char
3179  No need char  No need char
3180    
3181  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3182  ------------------------------------------------------------------  ------------------------------------------------------------------
3183    0  12 Bra 0          Bra
3184    3     ^          ^
3185    4   1 x          x
3186    7     a+?          a++
3187    9   1 b          b
3188   12  12 Ket          Ket
3189   15     End          End
3190  ------------------------------------------------------------------  ------------------------------------------------------------------
3191  Capturing subpattern count = 0  Capturing subpattern count = 0
3192    Partial matching not supported
3193  Options: anchored  Options: anchored
3194  No first char  No first char
3195  Need char = 'b'  Need char = 'b'
3196    
3197  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3198  ------------------------------------------------------------------  ------------------------------------------------------------------
3199    0  18 Bra 0          Bra
3200    3     ^          ^
3201    4   1 x          x
3202    7   5 Bra 1          CBra 1
3203   10     a+?          a+?
3204   12   5 Ket          Ket
3205   15   1 b          b
3206   18  18 Ket          Ket
3207   21     End          End
3208  ------------------------------------------------------------------  ------------------------------------------------------------------
3209  Capturing subpattern count = 1  Capturing subpattern count = 1
3210    Partial matching not supported
3211  Options: anchored  Options: anchored
3212  No first char  No first char
3213  Need char = 'b'  Need char = 'b'
3214    
3215  /[.x.]/  /[.x.]/I
3216  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3217    
3218  /[=x=]/  /[=x=]/I
3219  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3220    
3221  /[:x:]/  /[:x:]/I
3222  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
3223    
3224  /\l/  /\l/I
3225  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  
3226    
3227  /\pP/  /\L/I
3228  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
3229    
3230  /\PP/  /\N{name}/I
3231  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
3232    
3233  /\p{prop}/  /\u/I
3234  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
3235    
3236  /\P{prop}/  /\U/I
3237  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
3238    
3239  /\u/  /[/I
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\U/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\X/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /[/  
3240  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3241    
3242  /[a-/  /[a-/I
3243  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3244    
3245  /[[:space:]/  /[[:space:]/I
3246  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3247    
3248  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3249  ------------------------------------------------------------------  ------------------------------------------------------------------
3250    0  36 Bra 0          Bra
3251    3     [\x09-\x0a\x0c-\x0d ]          [\x09\x0a\x0c\x0d ]
3252   36  36 Ket          Ket
3253   39     End          End
3254  ------------------------------------------------------------------  ------------------------------------------------------------------
3255  Capturing subpattern count = 0  Capturing subpattern count = 0
3256  No options  No options
3257  No first char  No first char
3258  No need char  No need char
3259    
3260  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3261  ------------------------------------------------------------------  ------------------------------------------------------------------
3262    0  36 Bra 0          Bra
3263    3     [\x09-\x0d ]          [\x09-\x0d ]
3264   36  36 Ket          Ket
3265   39     End          End
3266  ------------------------------------------------------------------  ------------------------------------------------------------------
3267  Capturing subpattern count = 0  Capturing subpattern count = 0
3268  No options  No options
3269  No first char  No first char
3270  No need char  No need char
3271    
3272  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3273  ------------------------------------------------------------------  ------------------------------------------------------------------
3274    0  36 Bra 0          Bra
3275    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3276   36  36 Ket          Ket
3277   39     End          End
3278  ------------------------------------------------------------------  ------------------------------------------------------------------
3279  Capturing subpattern count = 0  Capturing subpattern count = 0
3280  No options  No options
3281  No first char  No first char
3282  No need char  No need char
3283    
3284  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3285  Capturing subpattern count = 0  Capturing subpattern count = 0
3286    Partial matching not supported
3287  Options: extended  Options: extended
3288  First char = '<'  First char = '<'
3289  Need char = '>'  Need char = '>'
# Line 3169  Need char = '>' Line 3295  Need char = '>'
3295   0: <abc <123> hij>   0: <abc <123> hij>
3296      <abc <def> hij>      <abc <def> hij>
3297   0: <def>   0: <def>
3298      <abc<>def>      <abc<>def>
3299   0: <abc<>def>   0: <abc<>def>
3300      <abc<>      <abc<>
3301   0: <>   0: <>
3302      *** Failers      *** Failers
3303  No match  No match
3304      <abc      <abc
3305  No match  No match
3306    
3307  |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  
3308  ------------------------------------------------------------------  ------------------------------------------------------------------
3309    0 417 Bra 0          Bra
3310    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
3311  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
3312  416     \b          Ket
3313  417 417 Ket          End
 420     End  
3314  ------------------------------------------------------------------  ------------------------------------------------------------------
3315  Capturing subpattern count = 0  Capturing subpattern count = 0
3316  No options  No options
3317  First char = '8'  First char = '8'
3318  Need char = 'X'  Need char = 'X'
3319    
3320  |\$\<\.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  
3321  ------------------------------------------------------------------  ------------------------------------------------------------------
3322    0 412 Bra 0          Bra
3323    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
3324  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
3325  411     \b          Ket
3326  412 412 Ket          End
 415     End  
3327  ------------------------------------------------------------------  ------------------------------------------------------------------
3328  Capturing subpattern count = 0  Capturing subpattern count = 0
3329  No options  No options
# Line 3211  Need char = 'X' Line 3333  Need char = 'X'
3333  /(.*)\d+\1/I  /(.*)\d+\1/I
3334  Capturing subpattern count = 1  Capturing subpattern count = 1
3335  Max back reference = 1  Max back reference = 1
3336    Partial matching not supported
3337  No options  No options
3338  No first char  No first char
3339  No need char  No need char
3340    
3341  /(.*)\d+/I  /(.*)\d+/I
3342  Capturing subpattern count = 1  Capturing subpattern count = 1
3343    Partial matching not supported
3344  No options  No options
3345  First char at start or follows \n  First char at start or follows newline
3346  No need char  No need char
3347    
3348  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3349  Capturing subpattern count = 1  Capturing subpattern count = 1
3350  Max back reference = 1  Max back reference = 1
3351    Partial matching not supported
3352  Options: dotall  Options: dotall
3353  No first char  No first char
3354  No need char  No need char
3355    
3356  /(.*)\d+/Is  /(.*)\d+/Is
3357  Capturing subpattern count = 1  Capturing subpattern count = 1
3358    Partial matching not supported
3359  Options: anchored dotall  Options: anchored dotall
3360  No first char  No first char
3361  No need char  No need char
# Line 3237  No need char Line 3363  No need char
3363  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3364  Capturing subpattern count = 2  Capturing subpattern count = 2
3365  Max back reference = 2  Max back reference = 2
3366    Partial matching not supported
3367  No options  No options
3368  First char at start or follows \n  First char at start or follows newline
3369  Need char = 'z'  Need char = 'z'
3370    
3371  /((.*))\d+\1/I  /((.*))\d+\1/I
3372  Capturing subpattern count = 2  Capturing subpattern count = 2
3373  Max back reference = 1  Max back reference = 1
3374    Partial matching not supported
3375  No options  No options
3376  No first char  No first char
3377  No need char  No need char
# Line 3251  No need char Line 3379  No need char
3379   0: bc123bc   0: bc123bc
3380   1: bc   1: bc
3381   2: bc   2: bc
3382    
3383  /a[b]/I  /a[b]/I
3384  Capturing subpattern count = 0  Capturing subpattern count = 0
3385  No options  No options
# Line 3260  Need char = 'b' Line 3388  Need char = 'b'
3388    
3389  /(?=a).*/I  /(?=a).*/I
3390  Capturing subpattern count = 0  Capturing subpattern count = 0
3391    Partial matching not supported
3392  No options  No options
3393  First char = 'a'  First char = 'a'
3394  No need char  No need char
3395    
3396  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3397  Capturing subpattern count = 0  Capturing subpattern count = 0
3398  Options: caseless  Options: caseless
3399  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3273  Need char = 'z' (caseless) Line 3402  Need char = 'z' (caseless)
3402  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3403  Capturing subpattern count = 0  Capturing subpattern count = 0
3404  No options  No options
 Case state changes  
3405  First char = 'a'  First char = 'a'
3406  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3407    
# Line 3366  Capturing subpattern count = 0 Line 3494  Capturing subpattern count = 0
3494  No options  No options
3495  No first char  No first char
3496  No need char  No need char
3497  Starting character set: a b  Starting byte set: a b
3498    
3499  /[^a]/I  /[^a]/I
3500  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3385  Capturing subpattern count = 0 Line 3513  Capturing subpattern count = 0
3513  No options  No options
3514  No first char  No first char
3515  Need char = '6'  Need char = '6'
3516  Starting character set: 0 1 2 3 4 5 6 7 8 9  Starting byte set: 0 1 2 3 4 5 6 7 8 9
3517    
3518  /a^b/I  /a^b/I
3519  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3393  No options Line 3521  No options
3521  First char = 'a'  First char = 'a'
3522  Need char = 'b'  Need char = 'b'
3523    
3524  /^a/mI  /^a/Im
3525  Capturing subpattern count = 0  Capturing subpattern count = 0
3526  Options: multiline  Options: multiline
3527  First char at start or follows \n  First char at start or follows newline
3528  Need char = 'a'  Need char = 'a'
3529    abcde    abcde
3530   0: a   0: a
3531    xy\nabc    xy\nabc
3532   0: a   0: a
3533    *** Failers    *** Failers
3534  No match  No match
3535    xyabc    xyabc
3536  No match  No match
3537    
3538  /c|abc/I  /c|abc/I
# Line 3418  Capturing subpattern count = 0 Line 3546  Capturing subpattern count = 0
3546  Options: caseless  Options: caseless
3547  No first char  No first char
3548  No need char  No need char
3549  Starting character set: A B a b  Starting byte set: A B a b
3550    
3551  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3552  Capturing subpattern count = 0  Capturing subpattern count = 0
3553  No options  No options
 Case state changes  
3554  No first char  No first char
3555  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3556  Starting character set: a b  Starting byte set: a b
3557    
3558  /abc(?C)def/  /abc(?C)def/I
3559  Capturing subpattern count = 0  Capturing subpattern count = 0
3560  No options  No options
3561  First char = 'a'  First char = 'a'
3562  Need char = 'f'  Need char = 'f'
3563      abcdef      abcdef
3564  --->abcdef  --->abcdef
3565    0 ^  ^    0 ^  ^       d
3566   0: abcdef   0: abcdef
3567      1234abcdef      1234abcdef
3568  --->1234abcdef  --->1234abcdef
3569    0     ^  ^    0     ^  ^       d
3570   0: abcdef   0: abcdef
3571      *** Failers      *** Failers
3572  No match  No match
3573      abcxyz      abcxyz
3574  No match  No match
3575      abcxyzf      abcxyzf
3576  --->abcxyzf  --->abcxyzf
3577    0 ^  ^    0 ^  ^        d
3578  No match  No match
3579    
3580  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3581  Capturing subpattern count = 0  Capturing subpattern count = 0
3582  No options  No options
3583  First char = 'a'  First char = 'a'
3584  Need char = 'f'  Need char = 'f'
3585      123abcdef      123abcdef
3586  --->123abcdef  --->123abcdef
3587    0    ^  ^    0    ^  ^       d
3588    1    ^    ^    1    ^    ^     f
3589   0: abcdef   0: abcdef
3590    
3591  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3592  Capturing subpattern count = 0  Capturing subpattern count = 0
3593  No options  No options
3594  No first char  No first char
3595  Need char = 'f'  Need char = 'f'
3596      1234abcdef      1234abcdef
3597  --->1234abcdef  --->1234abcdef
3598    1 ^    1 ^              \d
3599    1  ^    1  ^             \d
3600    1   ^    1   ^            \d
3601    1    ^    1    ^           \d
3602    2    ^   ^    2    ^   ^       d
3603   0: 4abcdef   0: 4abcdef
3604      *** Failers      *** Failers
3605  No match  No match
3606      abcdef      abcdef
3607  --->abcdef  --->abcdef
3608    1 ^    1 ^          \d
3609    1  ^    1  ^         \d
3610    1   ^    1   ^        \d
3611    1    ^    1    ^       \d
3612    1     ^    1     ^      \d
3613    1      ^    1      ^     \d
3614  No match  No match
3615    
3616  /(?C255)ab/  /(?C255)ab/I
3617  Capturing subpattern count = 0  Capturing subpattern count = 0
3618  No options  No options
3619  First char = 'a'  First char = 'a'
3620  Need char = 'b'  Need char = 'b'
3621    
3622  /(?C256)ab/  /(?C256)ab/I
3623  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3624    
3625  /(?Cab)xx/  /(?Cab)xx/I
3626  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3627    
3628  /(?C12vr)x/  /(?C12vr)x/I
3629  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3630    
3631  /abc(?C)def/  /abc(?C)def/I
3632  Capturing subpattern count = 0  Capturing subpattern count = 0
3633  No options  No options
3634  First char = 'a'  First char = 'a'
# Line 3510  Need char = 'f' Line 3637  Need char = 'f'
3637  No match  No match
3638      \x83\x0\x61bcdef      \x83\x0\x61bcdef
3639  --->\x83\x00abcdef  --->\x83\x00abcdef
3640    0         ^  ^    0         ^  ^       d
3641   0: abcdef   0: abcdef
3642    
3643  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3644  Capturing subpattern count = 1  Capturing subpattern count = 1
3645  No options  No options
3646  First char = 'a'  First char = 'a'
3647  Need char = 'f'  Need char = 'f'
3648      123abcdef      123abcdef
3649  --->123abcdef  --->123abcdef
3650    0    ^  ^    0    ^  ^       d
3651    1    ^    ^    1    ^    ^     f
3652   0: abcdef   0: abcdef
3653   1: abc   1: abc
3654      123abcdef\C+      123abcdef\C+
3655  Callout 0: last capture = 1  Callout 0: last capture = 1
3656   0: <unset>   0: <unset>
3657   1: abc   1: abc
3658  --->123abcdef  --->123abcdef
3659         ^  ^         ^  ^       d
3660  Callout 1: last capture = 1  Callout 1: last capture = 1
3661   0: <unset>   0: <unset>
3662   1: abc   1: abc
3663  --->123abcdef  --->123abcdef
3664         ^    ^         ^    ^     f
3665   0: abcdef   0: abcdef
3666   1: abc   1: abc
3667      123abcdef\C-      123abcdef\C-
3668   0: abcdef   0: abcdef
3669   1: abc   1: abc
3670      *** Failers      *** Failers
3671  No match  No match
3672      123abcdef\C!1      123abcdef\C!1
3673  --->123abcdef  --->123abcdef
3674    0    ^  ^    0    ^  ^       d
3675    1    ^    ^    1    ^    ^     f
3676  No match  No match
3677    
3678  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3679  Capturing subpattern count = 1  Capturing subpattern count = 1
3680  No options  No options
3681  No first char  No first char
3682  No need char  No need char
3683      abcabcabc      abcabcabc
3684  --->abcabcabc  --->abcabcabc
3685    0 ^    0 ^             (abc(?C1))*
3686    1 ^  ^    1 ^  ^          )
3687    1 ^     ^    1 ^     ^       )
3688    1 ^        ^    1 ^        ^    )
3689   0: abcabcabc   0: abcabcabc
3690   1: abc   1: abc
3691      abcabc\C!1!3      abcabc\C!1!3
3692  --->abcabc  --->abcabc
3693    0 ^    0 ^          (abc(?C1))*
3694    1 ^  ^    1 ^  ^       )
3695    1 ^     ^    1 ^     ^    )
3696   0: abcabc   0: abcabc
3697   1: abc   1: abc
3698      *** Failers      *** Failers
3699  --->*** Failers  --->*** Failers
3700    0 ^    0 ^               (abc(?C1))*
3701   0:   0:
3702      abcabcabc\C!1!3      abcabcabc\C!1!3
3703  --->abcabcabc  --->abcabcabc
3704    0 ^    0 ^             (abc(?C1))*
3705    1 ^  ^    1 ^  ^          )
3706    1 ^     ^    1 ^     ^       )
3707    1 ^        ^    1 ^        ^    )
3708   0: abcabc   0: abcabc
3709   1: abc   1: abc
3710    
3711  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3712  Capturing subpattern count = 1  Capturing subpattern count = 1
3713    Partial matching not supported
3714  No options  No options
3715  No first char  No first char
3716  No need char  No need char
# Line 3590  No need char Line 3718  No need char
3718  Callout 0: last capture = -1  Callout 0: last capture = -1
3719   0: <unset>   0: <unset>
3720  --->123  --->123
3721      ^  ^      ^  ^    )
3722   0: 123   0: 123
3723   1: 123   1: 123
3724      123456\C+      123456\C+
3725  Callout 0: last capture = -1  Callout 0: last capture = -1
3726   0: <unset>   0: <unset>
3727  --->123456  --->123456
3728      ^  ^      ^  ^       )
3729  Callout 0: last capture = 1  Callout 0: last capture = 1
3730   0: <unset>   0: <unset>
3731   1: 123   1: 123
3732  --->123456  --->123456
3733      ^     ^      ^     ^    )
3734   0: 123456   0: 123456
3735   1: 456   1: 456
3736      123456789\C+      123456789\C+
3737  Callout 0: last capture = -1  Callout 0: last capture = -1
3738   0: <unset>   0: <unset>
3739  --->123456789  --->123456789
3740      ^  ^      ^  ^          )
3741  Callout 0: last capture = 1  Callout 0: last capture = 1
3742   0: <unset>   0: <unset>
3743   1: 123   1: 123
3744  --->123456789  --->123456789
3745      ^     ^      ^     ^       )
3746  Callout 0: last capture = 1  Callout 0: last capture = 1
3747   0: <unset>   0: <unset>
3748   1: 456   1: 456
3749  --->123456789  --->123456789
3750      ^        ^      ^        ^    )
3751   0: 123456789   0: 123456789
3752   1: 789   1: 789
3753    
3754  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3755  Capturing subpattern count = 2  Capturing subpattern count = 2
3756  No options  No options
3757  First char = 'x'  First char = 'x'
# Line 3634  Callout 0: last capture = 2 Line 3762  Callout 0: last capture = 2
3762   1: <unset>   1: <unset>
3763   2: xyz   2: xyz
3764  --->xyzabc  --->xyzabc
3765      ^  ^      ^  ^       p
3766  Callout 1: last capture = -1  Callout 1: last capture = -1
3767   0: <unset>   0: <unset>
3768  --->xyzabc  --->xyzabc
3769      ^      ^          x
3770   0: xyzabc   0: xyzabc
3771   1: xyzabc   1: xyzabc
3772    
3773  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3774  Capturing subpattern count = 3  Capturing subpattern count = 3
3775  No options  No options
3776  First char = 'X'  First char = 'X'
# Line 3654  Callout 0: last capture = 3 Line 3782  Callout 0: last capture = 3
3782   2: <unset>   2: <unset>
3783   3: xyz   3: xyz
3784  --->Xxyzabc  --->Xxyzabc
3785      ^   ^      ^   ^       p
3786  Callout 1: last capture = 1  Callout 1: last capture = 1
3787   0: <unset>   0: <unset>
3788   1: X   1: X
3789  --->Xxyzabc  --->Xxyzabc
3790      ^^      ^^          x
3791   0: Xxyzabc   0: Xxyzabc
3792   1: X   1: X
3793   2: xyzabc   2: xyzabc
3794    
3795  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3796  Capturing subpattern count = 1  Capturing subpattern count = 1
3797  No options  No options
3798  First char = 'a'  First char = 'a'
# Line 3674  Callout 0: last capture = 1 Line 3802  Callout 0: last capture = 1
3802   0: <unset>   0: <unset>
3803   1: abc   1: abc
3804  --->abcdef  --->abcdef
3805      ^      ^          a
3806   0: abcdef   0: abcdef
3807   1: abc   1: abc
3808    
3809  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3810  Capturing subpattern count = 1  Capturing subpattern count = 1
3811  No options  No options
3812  First char = 'a'  First char = 'a'
3813  Need char = 'z'  Need char = 'z'
3814      abcxyz\C+      abcxyz\C+
3815  Callout 1: last capture = 1  Callout 1: last capture = 1
3816   0: <unset>   0: <unset>
3817   1: abc   1: abc
3818  --->abcxyz  --->abcxyz
3819      ^  ^      ^  ^       d
3820  Callout 2: last capture = -1  Callout 2: last capture = -1
3821   0: <unset>   0: <unset>
3822  --->abcxyz  --->abcxyz
3823      ^      ^          a
3824   0: abcxyz   0: abcxyz
3825    
3826  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3827  Capturing subpattern count = 1  Capturing subpattern count = 1
3828  No options  No options
3829  First char = 'x'  First char = 'x'
# Line 3705  Callout 0: last capture = 1 Line 3833  Callout 0: last capture = 1
3833   0: <unset>   0: <unset>
3834   1: abc   1: abc
3835  --->abcxyz  --->abcxyz
3836         ^         ^       )
3837   0: xyz   0: xyz
3838   1: abc   1: abc
3839    
3840  /(?C)abc/  /a(b+)(c*)(?C1)/I
3841    Capturing subpattern count = 2
3842    Partial matching not supported
3843    No options
3844    First char = 'a'
3845    Need char = 'b'
3846        abbbbbccc\C*1
3847    --->abbbbbccc
3848      1 ^        ^
3849    Callout data = 1
3850      1 ^       ^
3851    Callout data = 1
3852      1 ^      ^
3853    Callout data = 1
3854      1 ^     ^
3855    Callout data = 1
3856      1 ^    ^
3857    Callout data = 1
3858      1 ^   ^
3859    Callout data = 1
3860      1 ^  ^
3861    Callout data = 1
3862      1 ^ ^
3863    Callout data = 1
3864    No match
3865    
3866    /a(b+?)(c*?)(?C1)/I
3867    Capturing subpattern count = 2
3868    Partial matching not supported
3869    No options
3870    First char = 'a'
3871    Need char = 'b'
3872        abbbbbccc\C*1
3873    --->abbbbbccc
3874      1 ^ ^
3875    Callout data = 1
3876      1 ^  ^
3877    Callout data = 1
3878      1 ^   ^
3879    Callout data = 1
3880      1 ^    ^
3881    Callout data = 1
3882      1 ^     ^
3883    Callout data = 1
3884      1 ^      ^
3885    Callout data = 1
3886      1 ^       ^
3887    Callout data = 1
3888      1 ^        ^
3889    Callout data = 1
3890    No match
3891    
3892    /(?C)abc/I
3893  Capturing subpattern count = 0  Capturing subpattern count = 0
3894  No options  No options
3895  First char = 'a'  First char = 'a'
3896  Need char = 'c'  Need char = 'c'
3897    
3898  /(?C)^abc/  /(?C)^abc/I
3899  Capturing subpattern count = 0  Capturing subpattern count = 0
3900  Options: anchored  Options: anchored
3901  No first char  No first char
3902  No need char  No need char
3903    
3904  /(?C)a|b/S  /(?C)a|b/IS
3905  Capturing subpattern count = 0  Capturing subpattern count = 0
3906  No options  No options
3907  No first char  No first char
3908  No need char  No need char
3909  Starting character set: a b  Starting byte set: a b
3910    
3911  /(?R)/  /(?R)/I
3912  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3913    
3914  /(a|(?R))/  /(a|(?R))/I
3915  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3916    
3917  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3918  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3919    
3920  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3921  Capturing subpattern count = 3  Capturing subpattern count = 3
3922  No options  No options
3923  First char = 'x'  First char = 'x'
# Line 3766  No need char Line 3946  No need char
3946   3: xxab   3: xxab
3947      *** Failers      *** Failers
3948  No match  No match
3949      xyab      xyab
3950  No match  No match
3951    
3952  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3953  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3954    
3955  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3956  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3957    
3958  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3959  Capturing subpattern count = 1  Capturing subpattern count = 1
3960  Options: anchored  Options: anchored
3961  No first char  No first char
# Line 3786  No need char Line 3966  No need char
3966      a(b)c      a(b)c
3967   0: a(b)c   0: a(b)c
3968   1: c   1: c
3969      a(b(c))d      a(b(c))d
3970   0: a(b(c))d   0: a(b(c))d
3971   1: d   1: d
3972      *** Failers)      *** Failers)
3973  No match  No match
3974      a(b(c)d      a(b(c)d
3975  No match  No match
3976    
3977  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3978  Capturing subpattern count = 1  Capturing subpattern count = 1
3979  Options: anchored  Options: anchored
3980  No first char  No first char
# Line 3809  Need char = '<' Line 3989  Need char = '<'
3989   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3990   1: (1(2)3)   1: (1(2)3)
3991    
3992  /(a(?1)b)/D  /(a(?1)b)/DZ
3993  ------------------------------------------------------------------  ------------------------------------------------------------------
3994    0  18 Bra 0          Bra
3995    3  12 Bra 1          CBra 1
3996    6   1 a          a
3997    9   3 Recurse          Once
3998   12   1 b          Recurse
3999   15  12 Ket          Ket
4000   18  18 Ket          b
4001   21     End          Ket
4002            Ket
4003            End
4004  ------------------------------------------------------------------  ------------------------------------------------------------------
4005  Capturing subpattern count = 1  Capturing subpattern count = 1
4006  No options  No options
4007  First char = 'a'  First char = 'a'
4008  Need char = 'b'  Need char = 'b'
4009    
4010  /(a(?1)+b)/D  /(a(?1)+b)/DZ
4011  ------------------------------------------------------------------  ------------------------------------------------------------------
4012    0  24 Bra 0          Bra
4013    3  18 Bra 1          CBra 1
4014    6   1 a          a
4015    9   6 Bra 0          Once
4016   12   3 Recurse          Recurse
4017   15   6 KetRmax          KetRmax
4018   18   1 b          b
4019   21  18 Ket          Ket
4020   24  24 Ket          Ket
4021   27     End          End
4022  ------------------------------------------------------------------  ------------------------------------------------------------------
4023  Capturing subpattern count = 1  Capturing subpattern count = 1
4024  No options  No options
4025  First char = 'a'  First char = 'a'
4026  Need char = 'b'  Need char = 'b'
4027    
4028  /^\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
4029  Capturing subpattern count = 4  Capturing subpattern count = 4
4030  Max back reference = 4  Max back reference = 4
4031    Partial matching not supported
4032  Options: anchored caseless  Options: anchored caseless
4033  No first char  No first char
4034  No need char  No need char
# Line 3865  No need char Line 4048  No need char
4048   2: <unset>   2: <unset>
4049   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4050   4: A   4: A
4051      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4052   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4053   1: <unset>   1: <unset>
4054   2: <unset>   2: <unset>
# Line 3873  No need char Line 4056  No need char
4056   4: A   4: A
4057      *** Failers      *** Failers
4058  No match  No match
4059      The quick brown fox      The quick brown fox
4060  No match  No match
4061    
4062  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4063  Capturing subpattern count = 2  Capturing subpattern count = 2
4064    Partial matching not supported
4065  Options: anchored  Options: anchored
4066  No first char  No first char
4067  No need char  No need char
# Line 3895  No need char Line 4079  No need char
4079  No match  No match
4080      ((2+2)*-3)-7)      ((2+2)*-3)-7)
4081  No match  No match
4082    
4083  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
4084  Capturing subpattern count = 2  Capturing subpattern count = 2
4085  Options: anchored  Options: anchored
4086  No first char  No first char
# Line 3905  No need char Line 4089  No need char
4089   0: xyz   0: xyz
4090   1: xyz   1: xyz
4091   2: y   2: y
4092      xxyzxyzz      xxyzxyzz
4093   0: xxyzxyzz   0: xxyzxyzz
4094   1: xxyzxyzz   1: xxyzxyzz
4095   2: xyzxyz   2: xyzxyz
# Line 3913  No need char Line 4097  No need char
4097  No match  No match
4098      xxyzz      xxyzz
4099  No match  No match
4100      xxyzxyzxyzz      xxyzxyzxyzz
4101  No match  No match
4102    
4103  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4104  Capturing subpattern count = 2  Capturing subpattern count = 2
4105    Partial matching not supported
4106  Options: extended  Options: extended
4107  First char = '<'  First char = '<'
4108  Need char = '>'  Need char = '>'
# Line 3937  Need char = '>' Line 4122  Need char = '>'
4122   0: <def>   0: <def>
4123   1: <def>   1: <def>
4124   2: <def>   2: <def>
4125      <abc<>def>      <abc<>def>
4126   0: <abc<>def>   0: <abc<>def>
4127   1: <abc<>def>   1: <abc<>def>
4128   2: <abc<>def>   2: <abc<>def>
4129      <abc<>      <abc<>
4130   0: <>   0: <>