/[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 73 by nigel, Sat Feb 24 21:40:30 2007 UTC revision 264 by ph10, Tue Nov 13 11:07:16 2007 UTC
# Line 1  Line 1 
1  PCRE version 4.5 01-December-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    Contains explicit CR or LF match
707    Options: multiline
708    No first char
709    Need char = 'r'
710        foo\nbarbar
711     0: bar
712        ***Failers
713    No match
714        rhubarb
715    No match
716        barbell
717    No match
718        abc\nbarton
719    No match
720    
721  /(?<=foo\n)^bar/m  /^(?<=foo\n)bar/Im
722  Capturing subpattern count = 0  Capturing subpattern count = 0
723    Contains explicit CR or LF match
724  Options: multiline  Options: multiline
725  First char at start or follows \n  First char at start or follows newline
726  Need char = 'r'  Need char = 'r'
727        foo\nbarbar
728     0: bar
729        ***Failers
730    No match
731        rhubarb
732    No match
733        barbell
734    No match
735        abc\nbarton
736    No match
737    
738  /(?>^abc)/m  /(?>^abc)/Im
739  Capturing subpattern count = 0  Capturing subpattern count = 0
740  Options: multiline  Options: multiline
741  First char at start or follows \n  First char at start or follows newline
742  Need char = 'c'  Need char = 'c'
743      abc      abc
744   0: abc   0: abc
# Line 701  Need char = 'c' Line 746  Need char = 'c'
746   0: abc   0: abc
747      *** Failers      *** Failers
748  No match  No match
749      defabc      defabc
750  No match  No match
751    
752  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 714  Failed: lookbehind assertion is not fixe Line 759  Failed: lookbehind assertion is not fixe
759  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
760    
761  /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'  
762    
763  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
764  Capturing subpattern count = 0  Capturing subpattern count = 0
765  No options  No options
766  First char = '-'  First char = '-'
# Line 732  Need char = 't' Line 773  Need char = 't'
773  No match  No match
774      cart      cart
775  No match  No match
776      horse-and-cart      horse-and-cart
777  No match  No match
778    
779  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
780  Capturing subpattern count = 0  Capturing subpattern count = 0
781  No options  No options
 Case state changes  
782  No first char  No first char
783  No need char  No need char
784    
785  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
786  Capturing subpattern count = 2  Capturing subpattern count = 2
787    Partial matching not supported
788  No options  No options
789  First char at start or follows \n  First char at start or follows newline
790  No need char  No need char
791      alphabetabcd      alphabetabcd
792   0: alphabetabcd   0: alphabetabcd
# Line 755  No need char Line 796  No need char
796   1: <unset>   1: <unset>
797   2: xyz   2: xyz
798    
799  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
800  Capturing subpattern count = 0  Capturing subpattern count = 0
801  No options  No options
 Case state changes  
802  First char = 'Z'  First char = 'Z'
803  Need char = 'Z'  Need char = 'Z'
804      abxyZZ      abxyZZ
# Line 771  Need char = 'Z' Line 811  Need char = 'Z'
811   0: ZZ   0: ZZ
812      bZZ      bZZ
813   0: ZZ   0: ZZ
814      BZZ      BZZ
815   0: ZZ   0: ZZ
816      *** Failers      *** Failers
817  No match  No match
818      ZZ      ZZ
819  No match  No match
820      abXYZZ      abXYZZ
821  No match  No match
822      zzz      zzz
823  No match  No match
824      bzz      bzz
825  No match  No match
826    
827  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
828  Capturing subpattern count = 1  Capturing subpattern count = 1
829  No options  No options
830  First char = 'b'  First char = 'b'
831  Need char = 'r'  Need char = 'r'
832      bar      bar
833   0: bar   0: bar
834      foobbar      foobbar
835   0: bar   0: bar
836      *** Failers      *** Failers
837  No match  No match
838      fooabar      fooabar
839  No match  No match
840    
841  /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
842  Capturing subpattern count = 0  Capturing subpattern count = 0
843  No options  No options
844  First char = 'T'  First char = 'T'
845  Need char = 't'  Need char = 't'
846    
847  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
848  Capturing subpattern count = 1  Capturing subpattern count = 1
849  Options: anchored  Options: anchored
850  No first char  No first char
851  No need char  No need char
852      *** Failers      *** Failers
853  No match  No match
854      a      a
855  No match  No match
856    
857  /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
858  Capturing subpattern count = 0  Capturing subpattern count = 0
859  No options  No options
860  First char = 'T'  First char = 'T'
861  Need char = 'g'  Need char = 'g'
862    
863  /^(a\1?){4}$/  /^(a\1?){4}$/I
864  Capturing subpattern count = 1  Capturing subpattern count = 1
865  Max back reference = 1  Max back reference = 1
866  Options: anchored  Options: anchored
# Line 829  No need char Line 869  No need char
869      aaaaaa      aaaaaa
870   0: aaaaaa   0: aaaaaa
871   1: aa   1: aa
872    
873  /These are syntax tests from Perl 5.005/  /These are syntax tests from Perl 5.005/I
874  Capturing subpattern count = 0  Capturing subpattern count = 0
875  No options  No options
876  First char = 'T'  First char = 'T'
# Line 872  Failed: reference to non-existent subpat Line 912  Failed: reference to non-existent subpat
912  /(a)|\2/  /(a)|\2/
913  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
914    
915  /a[b-a]/i  /a[b-a]/Ii
916  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
917    
918  /a[]b/i  /a[]b/Ii
919  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
920    
921  /a[/i  /a[/Ii
922  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
923    
924  /*a/i  /*a/Ii
925  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
926    
927  /(*)b/i  /(*)b/Ii
928  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
929    
930  /abc)/i  /abc)/Ii
931  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
932    
933  /(abc/i  /(abc/Ii
934  Failed: missing ) at offset 4  Failed: missing ) at offset 4
935    
936  /a**/i  /a**/Ii
937  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
938    
939  /)(/i  /)(/Ii
940  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
941    
942  /:(?:/  /:(?:/
# Line 921  Failed: unrecognized character after (? Line 961  Failed: unrecognized character after (?
961  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? at offset 3
962    
963  /(?(1?)a|b)/  /(?(1?)a|b)/
964  Failed: malformed number after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
965    
966  /(?(1)a|b|c)/  /(?(1)a|b|c)/
967  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 984  Failed: POSIX code 9: bad escape sequenc
984  /abc/\i  /abc/\i
985  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
986    
987  /(a)bc(d)/  /(a)bc(d)/I
988  Capturing subpattern count = 2  Capturing subpattern count = 2
989  No options  No options
990  First char = 'a'  First char = 'a'
# Line 963  Need char = 'd' Line 1003  Need char = 'd'
1003   1: a   1: a
1004   2: d   2: d
1005  copy substring 5 failed -7  copy substring 5 failed -7
1006    
1007  /(.{20})/  /(.{20})/I
1008  Capturing subpattern count = 1  Capturing subpattern count = 1
1009    Partial matching not supported
1010  No options  No options
1011  No first char  No first char
1012  No need char  No need char
# Line 975  No need char Line 1016  No need char
1016      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1017   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1018   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1019  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1020      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1021   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1022   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1023   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1024    
1025  /(.{15})/  /(.{15})/I
1026  Capturing subpattern count = 1  Capturing subpattern count = 1
1027    Partial matching not supported
1028  No options  No options
1029  No first char  No first char
1030  No need char  No need char
# Line 995  No need char Line 1037  No need char
1037   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1038   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1039    
1040  /(.{16})/  /(.{16})/I
1041  Capturing subpattern count = 1  Capturing subpattern count = 1
1042    Partial matching not supported
1043  No options  No options
1044  No first char  No first char
1045  No need char  No need char
# Line 1006  No need char Line 1049  No need char
1049      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1050   0: abcdefghijklmnop   0: abcdefghijklmnop
1051   1: abcdefghijklmnop   1: abcdefghijklmnop
1052  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1053   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1054   0L abcdefghijklmnop   0L abcdefghijklmnop
1055   1L abcdefghijklmnop   1L abcdefghijklmnop
1056    
1057  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1058  Capturing subpattern count = 3  Capturing subpattern count = 3
1059  Options: anchored  Options: anchored
1060  No first char  No first char
1061  No need char  No need char
1062      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1063   0: adef   0: adef
1064   1: a   1: a
1065   2: <unset>   2: <unset>
# Line 1029  get substring 4 failed -7 Line 1072  get substring 4 failed -7
1072   1L a   1L a
1073   2L   2L
1074   3L f   3L f
1075      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1076   0: bcdef   0: bcdef
1077   1: bc   1: bc
1078   2: bc   2: bc
# Line 1042  get substring 4 failed -7 Line 1085  get substring 4 failed -7
1085   1L bc   1L bc
1086   2L bc   2L bc
1087   3L f   3L f
1088      adefghijk\C0      adefghijk\C0
1089   0: adef   0: adef
1090   1: a   1: a
1091   2: <unset>   2: <unset>
1092   3: f   3: f
1093   0C adef (4)   0C adef (4)
1094    
1095  /^abc\00def/  /^abc\00def/I
1096  Capturing subpattern count = 0  Capturing subpattern count = 0
1097  Options: anchored  Options: anchored
1098  No first char  No first char
1099  No need char  No need char
1100      abc\00def\L\C0      abc\00def\L\C0
1101   0: abc\x00def   0: abc\x00def
1102   0C abc (7)   0C abc (7)
1103   0L abc   0L abc
1104    
1105  /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]+
1106  )((?:[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]+
1107  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 428  
1108  Capturing subpattern count = 8  Capturing subpattern count = 8
1109    Partial matching not supported
1110    Contains explicit CR or LF match
1111  No options  No options
1112  First char = 'w'  First char = 'w'
1113  Need char = 'd'  Need char = 'd'
1114    
1115  /.*X/D  /.*X/IDZ
1116  ------------------------------------------------------------------  ------------------------------------------------------------------
1117    0   8 Bra 0          Bra
1118    3     Any*          Any*
1119    5   1 X          X
1120    8   8 Ket          Ket
1121   11     End          End
1122  ------------------------------------------------------------------  ------------------------------------------------------------------
1123  Capturing subpattern count = 0  Capturing subpattern count = 0
1124    Partial matching not supported
1125  No options  No options
1126  First char at start or follows \n  First char at start or follows newline
1127  Need char = 'X'  Need char = 'X'
1128    
1129  /.*X/Ds  /.*X/IDZs
1130  ------------------------------------------------------------------  ------------------------------------------------------------------
1131    0   8 Bra 0          Bra
1132    3     Any*          Any*
1133    5   1 X          X
1134    8   8 Ket          Ket
1135   11     End          End
1136  ------------------------------------------------------------------  ------------------------------------------------------------------
1137  Capturing subpattern count = 0  Capturing subpattern count = 0
1138    Partial matching not supported
1139  Options: anchored dotall  Options: anchored dotall
1140  No first char  No first char
1141  Need char = 'X'  Need char = 'X'
1142    
1143  /(.*X|^B)/D  /(.*X|^B)/IDZ
1144  ------------------------------------------------------------------  ------------------------------------------------------------------
1145    0  21 Bra 0          Bra
1146    3   8 Bra 1          CBra 1
1147    6     Any*          Any*
1148    8   1 X          X
1149   11   7 Alt          Alt
1150   14     ^          ^
1151   15   1 B          B
1152   18  15 Ket          Ket
1153   21  21 Ket          Ket
1154   24     End          End
1155  ------------------------------------------------------------------  ------------------------------------------------------------------
1156  Capturing subpattern count = 1  Capturing subpattern count = 1
1157    Partial matching not supported
1158  No options  No options
1159  First char at start or follows \n  First char at start or follows newline
1160  No need char  No need char
1161    
1162  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1163  ------------------------------------------------------------------  ------------------------------------------------------------------
1164    0  21 Bra 0          Bra
1165    3   8 Bra 1          CBra 1
1166    6     Any*          Any*
1167    8   1 X          X
1168   11   7 Alt          Alt
1169   14     ^          ^
1170   15   1 B          B
1171   18  15 Ket          Ket
1172   21  21 Ket          Ket
1173   24     End          End
1174  ------------------------------------------------------------------  ------------------------------------------------------------------
1175  Capturing subpattern count = 1  Capturing subpattern count = 1
1176    Partial matching not supported
1177  Options: anchored dotall  Options: anchored dotall
1178  No first char  No first char
1179  No need char  No need char
1180    
1181  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1182  ------------------------------------------------------------------  ------------------------------------------------------------------
1183    0  21 Bra 0          Bra
1184    3   8 Bra 1          CBra 1
1185    6     Any*          Any*
1186    8   1 X          X
1187   11   7 Alt          Alt
1188   14     ^          ^
1189   15   1 B          B
1190   18  15 Ket          Ket
1191   21  21 Ket          Ket
1192   24     End          End
1193  ------------------------------------------------------------------  ------------------------------------------------------------------
1194  Capturing subpattern count = 1  Capturing subpattern count = 1
1195    Partial matching not supported
1196  Options: anchored dotall  Options: anchored dotall
1197  No first char  No first char
1198  No need char  No need char
1199    
1200  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1201  ------------------------------------------------------------------  ------------------------------------------------------------------
1202    0  27 Bra 0          Bra
1203    3  10 Bra 0          Bra
1204    6  04 Opt       04 Opt
1205    8     Any*          Any*
1206   10   1 X          X
1207   13   9 Alt          Alt
1208   16  04 Opt       04 Opt
1209   18     ^          ^
1210   19   1 B          B
1211   22  19 Ket          Ket
1212   25  00 Opt       00 Opt
1213   27  27 Ket          Ket
1214   30     End          End
1215  ------------------------------------------------------------------  ------------------------------------------------------------------
1216  Capturing subpattern count = 0  Capturing subpattern count = 0
1217    Partial matching not supported
1218  No options  No options
1219  First char at start or follows \n  First char at start or follows newline
1220  No need char  No need char
1221    
1222  /\Biss\B/+  /\Biss\B/I+
1223  Capturing subpattern count = 0  Capturing subpattern count = 0
1224  No options  No options
1225  First char = 'i'  First char = 'i'
# Line 1178  Need char = 's' Line 1228  Need char = 's'
1228   0: iss   0: iss
1229   0+ issippi   0+ issippi
1230    
1231  /\Biss\B/+P  /\Biss\B/I+P
1232      Mississippi      Mississippi
1233   0: iss   0: iss
1234   0+ issippi   0+ issippi
1235    
1236  /iss/G+  /iss/IG+
1237  Capturing subpattern count = 0  Capturing subpattern count = 0
1238  No options  No options
1239  First char = 'i'  First char = 'i'
# Line 1194  Need char = 's' Line 1244  Need char = 's'
1244   0: iss   0: iss
1245   0+ ippi   0+ ippi
1246    
1247  /\Biss\B/G+  /\Biss\B/IG+
1248  Capturing subpattern count = 0  Capturing subpattern count = 0
1249  No options  No options
1250  First char = 'i'  First char = 'i'
# Line 1203  Need char = 's' Line 1253  Need char = 's'
1253   0: iss   0: iss
1254   0+ issippi   0+ issippi
1255    
1256  /\Biss\B/g+  /\Biss\B/Ig+
1257  Capturing subpattern count = 0  Capturing subpattern count = 0
1258  No options  No options
1259  First char = 'i'  First char = 'i'
# Line 1218  No match Line 1268  No match
1268      Mississippi\A      Mississippi\A
1269  No match  No match
1270    
1271  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1272  Capturing subpattern count = 0  Capturing subpattern count = 0
1273  No options  No options
1274  First char = 'i'  First char = 'i'
# Line 1229  Need char = 's' Line 1279  Need char = 's'
1279   0: iss   0: iss
1280   0+ ippi   0+ ippi
1281    
1282  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1283  Capturing subpattern count = 0  Capturing subpattern count = 0
1284  No options  No options
1285  First char = 'i'  First char = 'i'
# Line 1238  Need char = 's' Line 1288  Need char = 's'
1288   0: iss   0: iss
1289   0+ issippi   0+ issippi
1290    
1291  /^iss/g+  /^iss/Ig+
1292  Capturing subpattern count = 0  Capturing subpattern count = 0
1293  Options: anchored  Options: anchored
1294  No first char  No first char
# Line 1246  No need char Line 1296  No need char
1296      ississippi      ississippi
1297   0: iss   0: iss
1298   0+ issippi   0+ issippi
1299    
1300  /.*iss/g+  /.*iss/Ig+
1301  Capturing subpattern count = 0  Capturing subpattern count = 0
1302    Partial matching not supported
1303  No options  No options
1304  First char at start or follows \n  First char at start or follows newline
1305  Need char = 's'  Need char = 's'
1306      abciss\nxyzisspqr      abciss\nxyzisspqr
1307   0: abciss   0: abciss
1308   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1309   0: xyziss   0: xyziss
1310   0+ pqr   0+ pqr
1311    
1312  /.i./+g  /.i./I+g
1313  Capturing subpattern count = 0  Capturing subpattern count = 0
1314  No options  No options
1315  No first char  No first char
# Line 1284  Need char = 'i' Line 1335  Need char = 'i'
1335   0+ river   0+ river
1336   0: riv   0: riv
1337   0+ er   0+ er
1338      Missouri river\A      Missouri river\A
1339   0: Mis   0: Mis
1340   0+ souri river   0+ souri river
1341    
1342  /^.is/+g  /^.is/I+g
1343  Capturing subpattern count = 0  Capturing subpattern count = 0
1344  Options: anchored  Options: anchored
1345  No first char  No first char
# Line 1297  No need char Line 1348  No need char
1348   0: Mis   0: Mis
1349   0+ sissippi   0+ sissippi
1350    
1351  /^ab\n/g+  /^ab\n/Ig+
1352  Capturing subpattern count = 0  Capturing subpattern count = 0
1353    Contains explicit CR or LF match
1354  Options: anchored  Options: anchored
1355  No first char  No first char
1356  No need char  No need char
# Line 1306  No need char Line 1358  No need char
1358   0: ab\x0a   0: ab\x0a
1359   0+ ab\x0acd   0+ ab\x0acd
1360    
1361  /^ab\n/mg+  /^ab\n/Img+
1362  Capturing subpattern count = 0  Capturing subpattern count = 0
1363    Contains explicit CR or LF match
1364  Options: multiline  Options: multiline
1365  First char at start or follows \n  First char at start or follows newline
1366  Need char = 10  Need char = 10
1367      ab\nab\ncd      ab\nab\ncd
1368   0: ab\x0a   0: ab\x0a
# Line 1317  Need char = 10 Line 1370  Need char = 10
1370   0: ab\x0a   0: ab\x0a
1371   0+ cd   0+ cd
1372    
1373  /abc/  /abc/I
1374  Capturing subpattern count = 0  Capturing subpattern count = 0
1375  No options  No options
1376  First char = 'a'  First char = 'a'
1377  Need char = 'c'  Need char = 'c'
1378    
1379  /abc|bac/  /abc|bac/I
1380  Capturing subpattern count = 0  Capturing subpattern count = 0
1381  No options  No options
1382  No first char  No first char
1383  Need char = 'c'  Need char = 'c'
1384    
1385  /(abc|bac)/  /(abc|bac)/I
1386  Capturing subpattern count = 1  Capturing subpattern count = 1
1387  No options  No options
1388  No first char  No first char
1389  Need char = 'c'  Need char = 'c'
1390    
1391  /(abc|(c|dc))/  /(abc|(c|dc))/I
1392  Capturing subpattern count = 2  Capturing subpattern count = 2
1393  No options  No options
1394  No first char  No first char
1395  Need char = 'c'  Need char = 'c'
1396    
1397  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1398  Capturing subpattern count = 2  Capturing subpattern count = 2
1399  No options  No options
1400  No first char  No first char
1401  Need char = 'c'  Need char = 'c'
1402    
1403  /a*/  /a*/I
1404  Capturing subpattern count = 0  Capturing subpattern count = 0
1405    Partial matching not supported
1406  No options  No options
1407  No first char  No first char
1408  No need char  No need char
1409    
1410  /a+/  /a+/I
1411  Capturing subpattern count = 0  Capturing subpattern count = 0
1412    Partial matching not supported
1413  No options  No options
1414  First char = 'a'  First char = 'a'
1415  No need char  No need char
1416    
1417  /(baa|a+)/  /(baa|a+)/I
1418  Capturing subpattern count = 1  Capturing subpattern count = 1
1419    Partial matching not supported
1420  No options  No options
1421  No first char  No first char
1422  Need char = 'a'  Need char = 'a'
1423    
1424  /a{0,3}/  /a{0,3}/I
1425  Capturing subpattern count = 0  Capturing subpattern count = 0
1426    Partial matching not supported
1427  No options  No options
1428  No first char  No first char
1429  No need char  No need char
1430    
1431  /baa{3,}/  /baa{3,}/I
1432  Capturing subpattern count = 0  Capturing subpattern count = 0
1433    Partial matching not supported
1434  No options  No options
1435  First char = 'b'  First char = 'b'
1436  Need char = 'a'  Need char = 'a'
1437    
1438  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1439  Capturing subpattern count = 1  Capturing subpattern count = 1
1440    Partial matching not supported
1441  No options  No options
1442  First char = '"'  First char = '"'
1443  Need char = '"'  Need char = '"'
1444    
1445  /(abc|ab[cd])/  /(abc|ab[cd])/I
1446  Capturing subpattern count = 1  Capturing subpattern count = 1
1447  No options  No options
1448  First char = 'a'  First char = 'a'
1449  No need char  No need char
1450    
1451  /(a|.)/  /(a|.)/I
1452  Capturing subpattern count = 1  Capturing subpattern count = 1
1453  No options  No options
1454  No first char  No first char
1455  No need char  No need char
1456    
1457  /a|ba|\w/  /a|ba|\w/I
1458  Capturing subpattern count = 0  Capturing subpattern count = 0
1459  No options  No options
1460  No first char  No first char
1461  No need char  No need char
1462    
1463  /abc(?=pqr)/  /abc(?=pqr)/I
1464  Capturing subpattern count = 0  Capturing subpattern count = 0
1465  No options  No options
1466  First char = 'a'  First char = 'a'
1467  Need char = 'r'  Need char = 'r'
1468    
1469  /...(?<=abc)/  /...(?<=abc)/I
1470  Capturing subpattern count = 0  Capturing subpattern count = 0
1471  No options  No options
1472  No first char  No first char
1473  No need char  No need char
1474    
1475  /abc(?!pqr)/  /abc(?!pqr)/I
1476  Capturing subpattern count = 0  Capturing subpattern count = 0
1477  No options  No options
1478  First char = 'a'  First char = 'a'
1479  Need char = 'c'  Need char = 'c'
1480    
1481  /ab./  /ab./I
1482  Capturing subpattern count = 0  Capturing subpattern count = 0
1483  No options  No options
1484  First char = 'a'  First char = 'a'
1485  Need char = 'b'  Need char = 'b'
1486    
1487  /ab[xyz]/  /ab[xyz]/I
1488  Capturing subpattern count = 0  Capturing subpattern count = 0
1489  No options  No options
1490  First char = 'a'  First char = 'a'
1491  Need char = 'b'  Need char = 'b'
1492    
1493  /abc*/  /abc*/I
1494  Capturing subpattern count = 0  Capturing subpattern count = 0
1495    Partial matching not supported
1496  No options  No options
1497  First char = 'a'  First char = 'a'
1498  Need char = 'b'  Need char = 'b'
1499    
1500  /ab.c*/  /ab.c*/I
1501  Capturing subpattern count = 0  Capturing subpattern count = 0
1502    Partial matching not supported
1503  No options  No options
1504  First char = 'a'  First char = 'a'
1505  Need char = 'b'  Need char = 'b'
1506    
1507  /a.c*/  /a.c*/I
1508  Capturing subpattern count = 0  Capturing subpattern count = 0
1509    Partial matching not supported
1510  No options  No options
1511  First char = 'a'  First char = 'a'
1512  No need char  No need char
1513    
1514  /.c*/  /.c*/I
1515  Capturing subpattern count = 0  Capturing subpattern count = 0
1516    Partial matching not supported
1517  No options  No options
1518  No first char  No first char
1519  No need char  No need char
1520    
1521  /ac*/  /ac*/I
1522  Capturing subpattern count = 0  Capturing subpattern count = 0
1523    Partial matching not supported
1524  No options  No options
1525  First char = 'a'  First char = 'a'
1526  No need char  No need char
1527    
1528  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1529  Capturing subpattern count = 1  Capturing subpattern count = 1
1530    Partial matching not supported
1531  No options  No options
1532  No first char  No first char
1533  No need char  No need char
1534    
1535  /a.c*|aba/  /a.c*|aba/I
1536  Capturing subpattern count = 0  Capturing subpattern count = 0
1537    Partial matching not supported
1538  No options  No options
1539  First char = 'a'  First char = 'a'
1540  No need char  No need char
1541    
1542  /.+a/  /.+a/I
1543  Capturing subpattern count = 0  Capturing subpattern count = 0
1544    Partial matching not supported
1545  No options  No options
1546  No first char  No first char
1547  Need char = 'a'  Need char = 'a'
1548    
1549  /(?=abcda)a.*/  /(?=abcda)a.*/I
1550  Capturing subpattern count = 0  Capturing subpattern count = 0
1551    Partial matching not supported
1552  No options  No options
1553  First char = 'a'  First char = 'a'
1554  Need char = 'a'  Need char = 'a'
1555    
1556  /(?=a)a.*/  /(?=a)a.*/I
1557  Capturing subpattern count = 0  Capturing subpattern count = 0
1558    Partial matching not supported
1559  No options  No options
1560  First char = 'a'  First char = 'a'
1561  No need char  No need char
1562    
1563  /a(b)*/  /a(b)*/I
1564  Capturing subpattern count = 1  Capturing subpattern count = 1
1565  No options  No options
1566  First char = 'a'  First char = 'a'
1567  No need char  No need char
1568    
1569  /a\d*/  /a\d*/I
1570  Capturing subpattern count = 0  Capturing subpattern count = 0
1571    Partial matching not supported
1572  No options  No options
1573  First char = 'a'  First char = 'a'
1574  No need char  No need char
1575    
1576  /ab\d*/  /ab\d*/I
1577  Capturing subpattern count = 0  Capturing subpattern count = 0
1578    Partial matching not supported
1579  No options  No options
1580  First char = 'a'  First char = 'a'
1581  Need char = 'b'  Need char = 'b'
1582    
1583  /a(\d)*/  /a(\d)*/I
1584  Capturing subpattern count = 1  Capturing subpattern count = 1
1585  No options  No options
1586  First char = 'a'  First char = 'a'
1587  No need char  No need char
1588    
1589  /abcde{0,0}/  /abcde{0,0}/I
1590  Capturing subpattern count = 0  Capturing subpattern count = 0
1591  No options  No options
1592  First char = 'a'  First char = 'a'
1593  Need char = 'd'  Need char = 'd'
1594    
1595  /ab\d+/  /ab\d+/I
1596  Capturing subpattern count = 0  Capturing subpattern count = 0
1597    Partial matching not supported
1598  No options  No options
1599  First char = 'a'  First char = 'a'
1600  Need char = 'b'  Need char = 'b'
1601    
1602  /a(?(1)b)/  /a(?(1)b)/I
1603  Capturing subpattern count = 0  Capturing subpattern count = 0
1604  No options  No options
1605  First char = 'a'  First char = 'a'
1606  No need char  No need char
1607    
1608  /a(?(1)bag|big)/  /a(?(1)bag|big)/I
1609  Capturing subpattern count = 0  Capturing subpattern count = 0
1610  No options  No options
1611  First char = 'a'  First char = 'a'
1612  Need char = 'g'  Need char = 'g'
1613    
1614  /a(?(1)bag|big)*/  /a(?(1)bag|big)*/I
1615  Capturing subpattern count = 0  Capturing subpattern count = 0
1616  No options  No options
1617  First char = 'a'  First char = 'a'
1618  No need char  No need char
1619    
1620  /a(?(1)bag|big)+/  /a(?(1)bag|big)+/I
1621  Capturing subpattern count = 0  Capturing subpattern count = 0
1622  No options  No options
1623  First char = 'a'  First char = 'a'
1624  Need char = 'g'  Need char = 'g'
1625    
1626  /a(?(1)b..|b..)/  /a(?(1)b..|b..)/I
1627  Capturing subpattern count = 0  Capturing subpattern count = 0
1628  No options  No options
1629  First char = 'a'  First char = 'a'
1630  Need char = 'b'  Need char = 'b'
1631    
1632  /ab\d{0}e/  /ab\d{0}e/I
1633  Capturing subpattern count = 0  Capturing subpattern count = 0
1634  No options  No options
1635  First char = 'a'  First char = 'a'
1636  Need char = 'e'  Need char = 'e'
1637    
1638  /a?b?/  /a?b?/I
1639  Capturing subpattern count = 0  Capturing subpattern count = 0
1640  No options  No options
1641  No first char  No first char
# Line 1578  No need char Line 1650  No need char
1650   0:   0:
1651      *** Failers      *** Failers
1652   0:   0:
1653      \N      \N
1654  No match  No match
1655    
1656  /|-/  /|-/I
1657  Capturing subpattern count = 0  Capturing subpattern count = 0
1658  No options  No options
1659  No first char  No first char
# Line 1594  No need char Line 1666  No need char
1666   0: -   0: -
1667      *** Failers      *** Failers
1668   0:   0:
1669      \Nabc      \Nabc
1670  No match  No match
1671    
1672  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/IP
1673      aaaabbbbzzzz      aaaabbbbzzzz
1674   0: aaaabbbbzz   0: aaaabbbbzz
1675   1: bbbb   1: bbbb
# Line 1623  No match Line 1695  No match
1695   1: bbbb   1: bbbb
1696   2: z   2: z
1697   3: z   3: z
1698    
1699  /^.?abcd/S  /^.?abcd/IS
1700  Capturing subpattern count = 0  Capturing subpattern count = 0
1701  Options: anchored  Options: anchored
1702  No first char  No first char
# Line 1638  Study returned NULL Line 1710  Study returned NULL
1710    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1711    )*            # Zero or more contents    )*            # Zero or more contents
1712    \)            # Closing )    \)            # Closing )
1713    /x    /Ix
1714  Capturing subpattern count = 0  Capturing subpattern count = 0
1715    Partial matching not supported
1716  Options: extended  Options: extended
1717  First char = '('  First char = '('
1718  Need char = ')'  Need char = ')'
# Line 1649  Need char = ')' Line 1722  Need char = ')'
1722   0: (abcd)   0: (abcd)
1723      xyz(abcd)      xyz(abcd)
1724   0: (abcd)   0: (abcd)
1725      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1726   0: (ab(xy)cd)   0: (ab(xy)cd)
1727      (ab(xycd)pqr      (ab(xycd)pqr
1728   0: (xycd)   0: (xycd)
1729      () abc ()      () abc ()
1730   0: ()   0: ()
1731      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1732   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1733      *** Failers      *** Failers
1734  No match  No match
1735      abcd      abcd
1736  No match  No match
1737      abcd)      abcd)
1738  No match  No match
1739      (abcd      (abcd
1740  No match  No match
1741    
1742  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1743  Capturing subpattern count = 1  Capturing subpattern count = 1
1744    Partial matching not supported
1745  Options: extended  Options: extended
1746  First char = '('  First char = '('
1747  Need char = ')'  Need char = ')'
1748      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1749   0: (ab(xy)cd)   0: (ab(xy)cd)
1750   1: cd   1: cd
1751      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1680  Need char = ')' Line 1754  Need char = ')'
1754   0: (x(y)z)   0: (x(y)z)
1755   1: z   1: z
1756    
1757  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1758  Capturing subpattern count = 0  Capturing subpattern count = 0
1759    Partial matching not supported
1760  Options: extended  Options: extended
1761  First char = '('  First char = '('
1762  Need char = ')'  Need char = ')'
# Line 1689  Need char = ')' Line 1764  Need char = ')'
1764   0: (abcd)   0: (abcd)
1765      (ab(xy)cd)      (ab(xy)cd)
1766   0: (xy)   0: (xy)
1767      (a(b(c)d)e)      (a(b(c)d)e)
1768   0: (c)   0: (c)
1769      ((ab))      ((ab))
1770   0: ((ab))   0: ((ab))
1771      *** Failers      *** Failers
1772  No match  No match
1773      ()      ()
1774  No match  No match
1775    
1776  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1777  Capturing subpattern count = 0  Capturing subpattern count = 0
1778    Partial matching not supported
1779  Options: extended  Options: extended
1780  First char = '('  First char = '('
1781  Need char = ')'  Need char = ')'
# Line 1708  Need char = ')' Line 1784  Need char = ')'
1784      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1785   0: (fsh)   0: (fsh)
1786    
1787  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1788  Capturing subpattern count = 1  Capturing subpattern count = 1
1789    Partial matching not supported
1790  Options: extended  Options: extended
1791  First char = '('  First char = '('
1792  Need char = ')'  Need char = ')'
# Line 1717  Need char = ')' Line 1794  Need char = ')'
1794   0: (ab(xy)cd)   0: (ab(xy)cd)
1795   1: cd   1: cd
1796    
1797  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1798  Capturing subpattern count = 2  Capturing subpattern count = 2
1799    Partial matching not supported
1800  Options: extended  Options: extended
1801  First char = '('  First char = '('
1802  Need char = ')'  Need char = ')'
# Line 1727  Need char = ')' Line 1805  Need char = ')'
1805   1: ab(xy)cd   1: ab(xy)cd
1806   2: cd   2: cd
1807    
1808  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1809  Capturing subpattern count = 3  Capturing subpattern count = 3
1810    Partial matching not supported
1811  Options: extended  Options: extended
1812  First char = '('  First char = '('
1813  Need char = ')'  Need char = ')'
# Line 1743  Need char = ')' Line 1822  Need char = ')'
1822   2: ab(xy)cd   2: ab(xy)cd
1823   3: cd   3: cd
1824    
1825  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1826  Capturing subpattern count = 3  Capturing subpattern count = 3
1827    Partial matching not supported
1828  Options: extended  Options: extended
1829  First char = '('  First char = '('
1830  Need char = ')'  Need char = ')'
# Line 1759  Need char = ')' Line 1839  Need char = ')'
1839   2: 123   2: 123
1840   3: cd   3: cd
1841    
1842  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1843  Capturing subpattern count = 11  Capturing subpattern count = 11
1844    Partial matching not supported
1845  Options: extended  Options: extended
1846  First char = '('  First char = '('
1847  Need char = ')'  Need char = ')'
# Line 1778  Need char = ')' Line 1859  Need char = ')'
1859  10: ab(xy)cd  10: ab(xy)cd
1860  11: cd  11: cd
1861    
1862  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1863  Capturing subpattern count = 3  Capturing subpattern count = 3
1864    Partial matching not supported
1865  Options: extended  Options: extended
1866  First char = '('  First char = '('
1867  Need char = ')'  Need char = ')'
# Line 1789  Need char = ')' Line 1871  Need char = ')'
1871   2: 123   2: 123
1872   3: <unset>   3: <unset>
1873    
1874  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1875  Capturing subpattern count = 3  Capturing subpattern count = 3
1876    Partial matching not supported
1877  Options: extended  Options: extended
1878  First char = '('  First char = '('
1879  Need char = ')'  Need char = ')'
# Line 1805  Need char = ')' Line 1888  Need char = ')'
1888   2: ij   2: ij
1889   3: (cd(ef)gh)   3: (cd(ef)gh)
1890    
1891  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1892    ------------------------------------------------------------------
1893            Bra
1894            ^
1895            [0-9A-Za-z]
1896            Ket
1897            End
1898    ------------------------------------------------------------------
1899    Capturing subpattern count = 0
1900    Options: anchored
1901    No first char
1902    No need char
1903    
1904    /^[[:^alnum:]]/DZ
1905    ------------------------------------------------------------------
1906            Bra
1907            ^
1908            [\x00-/:-@[-`{-\xff]
1909            Ket
1910            End
1911    ------------------------------------------------------------------
1912    Capturing subpattern count = 0
1913    Options: anchored
1914    No first char
1915    No need char
1916    
1917    /^[[:alpha:]]/DZ
1918    ------------------------------------------------------------------
1919            Bra
1920            ^
1921            [A-Za-z]
1922            Ket
1923            End
1924    ------------------------------------------------------------------
1925    Capturing subpattern count = 0
1926    Options: anchored
1927    No first char
1928    No need char
1929    
1930    /^[[:^alpha:]]/DZ
1931    ------------------------------------------------------------------
1932            Bra
1933            ^
1934            [\x00-@[-`{-\xff]
1935            Ket
1936            End
1937    ------------------------------------------------------------------
1938    Capturing subpattern count = 0
1939    Options: anchored
1940    No first char
1941    No need char
1942    
1943    /[_[:alpha:]]/IS
1944    Capturing subpattern count = 0
1945    No options
1946    No first char
1947    No need char
1948    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
1949      _ 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
1950    
1951    /^[[:ascii:]]/DZ
1952  ------------------------------------------------------------------  ------------------------------------------------------------------
1953    0  37 Bra 0          Bra
1954    3     ^          ^
1955    4     [0-9A-Za-z]          [\x00-\x7f]
1956   37  37 Ket          Ket
1957   40     End          End
1958  ------------------------------------------------------------------  ------------------------------------------------------------------
1959  Capturing subpattern count = 0  Capturing subpattern count = 0
1960  Options: anchored  Options: anchored
1961  No first char  No first char
1962  No need char  No need char
1963    
1964  /^[[:alpha:]]/D  /^[[:^ascii:]]/DZ
1965  ------------------------------------------------------------------  ------------------------------------------------------------------
1966    0  37 Bra 0          Bra
1967    3     ^          ^
1968    4     [A-Za-z]          [\x80-\xff]
1969   37  37 Ket          Ket
1970   40     End          End
1971  ------------------------------------------------------------------  ------------------------------------------------------------------
1972  Capturing subpattern count = 0  Capturing subpattern count = 0
1973  Options: anchored  Options: anchored
1974  No first char  No first char
1975  No need char  No need char
1976    
1977  /^[[:ascii:]]/D  /^[[:blank:]]/DZ
1978  ------------------------------------------------------------------  ------------------------------------------------------------------
1979    0  37 Bra 0          Bra
1980    3     ^          ^
1981    4     [\x00-\x7f]          [\x09 ]
1982   37  37 Ket          Ket
1983   40     End          End
1984  ------------------------------------------------------------------  ------------------------------------------------------------------
1985  Capturing subpattern count = 0  Capturing subpattern count = 0
1986  Options: anchored  Options: anchored
1987  No first char  No first char
1988  No need char  No need char
1989    
1990  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1991  ------------------------------------------------------------------  ------------------------------------------------------------------
1992    0  37 Bra 0          Bra
1993    3     ^          ^
1994    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff]
1995   37  37 Ket          Ket
1996   40     End          End
1997  ------------------------------------------------------------------  ------------------------------------------------------------------
1998  Capturing subpattern count = 0  Capturing subpattern count = 0
1999  Options: anchored  Options: anchored
2000  No first char  No first char
2001  No need char  No need char
2002    
2003  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
2004    Capturing subpattern count = 0
2005    Contains explicit CR or LF match
2006    No options
2007    No first char
2008    No need char
2009    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2010    
2011    /^[[:cntrl:]]/DZ
2012  ------------------------------------------------------------------  ------------------------------------------------------------------
2013    0  37 Bra 0          Bra
2014    3     ^          ^
2015    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
2016   37  37 Ket          Ket
2017   40     End          End
2018  ------------------------------------------------------------------  ------------------------------------------------------------------
2019  Capturing subpattern count = 0  Capturing subpattern count = 0
2020  Options: anchored  Options: anchored
2021  No first char  No first char
2022  No need char  No need char
2023    
2024  /^[[:digit:]]/D  /^[[:digit:]]/DZ
2025  ------------------------------------------------------------------  ------------------------------------------------------------------
2026    0  37 Bra 0          Bra
2027    3     ^          ^
2028    4     [0-9]          [0-9]
2029   37  37 Ket          Ket
2030   40     End          End
2031  ------------------------------------------------------------------  ------------------------------------------------------------------
2032  Capturing subpattern count = 0  Capturing subpattern count = 0
2033  Options: anchored  Options: anchored
2034  No first char  No first char
2035  No need char  No need char
2036    
2037  /^[[:graph:]]/D  /^[[:graph:]]/DZ
2038  ------------------------------------------------------------------  ------------------------------------------------------------------
2039    0  37 Bra 0          Bra
2040    3     ^          ^
2041    4     [!-~]          [!-~]
2042   37  37 Ket          Ket
2043   40     End          End
2044  ------------------------------------------------------------------  ------------------------------------------------------------------
2045  Capturing subpattern count = 0  Capturing subpattern count = 0
2046  Options: anchored  Options: anchored
2047  No first char  No first char
2048  No need char  No need char
2049    
2050  /^[[:lower:]]/D  /^[[:lower:]]/DZ
2051  ------------------------------------------------------------------  ------------------------------------------------------------------
2052    0  37 Bra 0          Bra
2053    3     ^          ^
2054    4     [a-z]          [a-z]
2055   37  37 Ket          Ket
2056   40     End          End
2057  ------------------------------------------------------------------  ------------------------------------------------------------------
2058  Capturing subpattern count = 0  Capturing subpattern count = 0
2059  Options: anchored  Options: anchored
2060  No first char  No first char
2061  No need char  No need char
2062    
2063  /^[[:print:]]/D  /^[[:print:]]/DZ
2064  ------------------------------------------------------------------  ------------------------------------------------------------------
2065    0  37 Bra 0          Bra
2066    3     ^          ^
2067    4     [ -~]          [ -~]
2068   37  37 Ket          Ket
2069   40     End          End
2070  ------------------------------------------------------------------  ------------------------------------------------------------------
2071  Capturing subpattern count = 0  Capturing subpattern count = 0
2072  Options: anchored  Options: anchored
2073  No first char  No first char
2074  No need char  No need char
2075    
2076  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2077  ------------------------------------------------------------------  ------------------------------------------------------------------
2078    0  37 Bra 0          Bra
2079    3     ^          ^
2080    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2081   37  37 Ket          Ket
2082   40     End          End
2083  ------------------------------------------------------------------  ------------------------------------------------------------------
2084  Capturing subpattern count = 0  Capturing subpattern count = 0
2085  Options: anchored  Options: anchored
2086  No first char  No first char
2087  No need char  No need char
2088    
2089  /^[[:space:]]/D  /^[[:space:]]/DZ
2090  ------------------------------------------------------------------  ------------------------------------------------------------------
2091    0  37 Bra 0          Bra
2092    3     ^          ^
2093    4     [\x09-\x0d ]          [\x09-\x0d ]
2094   37  37 Ket          Ket
2095   40     End          End
2096  ------------------------------------------------------------------  ------------------------------------------------------------------
2097  Capturing subpattern count = 0  Capturing subpattern count = 0
2098  Options: anchored  Options: anchored
2099  No first char  No first char
2100  No need char  No need char
2101    
2102  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2103  ------------------------------------------------------------------  ------------------------------------------------------------------
2104    0  37 Bra 0          Bra
2105    3     ^          ^
2106    4     [A-Z]          [A-Z]
2107   37  37 Ket          Ket
2108   40     End          End
2109  ------------------------------------------------------------------  ------------------------------------------------------------------
2110  Capturing subpattern count = 0  Capturing subpattern count = 0
2111  Options: anchored  Options: anchored
2112  No first char  No first char
2113  No need char  No need char
2114    
2115  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2116  ------------------------------------------------------------------  ------------------------------------------------------------------
2117    0  37 Bra 0          Bra
2118    3     ^          ^
2119    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2120   37  37 Ket          Ket
2121   40     End          End
2122  ------------------------------------------------------------------  ------------------------------------------------------------------
2123  Capturing subpattern count = 0  Capturing subpattern count = 0
2124  Options: anchored  Options: anchored
2125  No first char  No first char
2126  No need char  No need char
2127    
2128  /^[[:word:]]/D  /^[[:word:]]/DZ
2129  ------------------------------------------------------------------  ------------------------------------------------------------------
2130    0  37 Bra 0          Bra
2131    3     ^          ^
2132    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2133   37  37 Ket          Ket
2134   40     End          End
2135  ------------------------------------------------------------------  ------------------------------------------------------------------
2136  Capturing subpattern count = 0  Capturing subpattern count = 0
2137  Options: anchored  Options: anchored
2138  No first char  No first char
2139  No need char  No need char
2140    
2141  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2142  ------------------------------------------------------------------  ------------------------------------------------------------------
2143    0  37 Bra 0          Bra
2144    3     ^          ^
2145    4     [ -~\x80-\xff]          [ -~\x80-\xff]
2146   37  37 Ket          Ket
2147   40     End          End
2148  ------------------------------------------------------------------  ------------------------------------------------------------------
2149  Capturing subpattern count = 0  Capturing subpattern count = 0
2150  Options: anchored  Options: anchored
2151  No first char  No first char
2152  No need char  No need char
2153    
2154  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2155  ------------------------------------------------------------------  ------------------------------------------------------------------
2156    0  37 Bra 0          Bra
2157    3     ^          ^
2158    4     [\x00-/1-2:-\xff]          [\x00-/12:-\xff]
2159   37  37 Ket          Ket
2160   40     End          End
2161  ------------------------------------------------------------------  ------------------------------------------------------------------
2162  Capturing subpattern count = 0  Capturing subpattern count = 0
2163  Options: anchored  Options: anchored
2164  No first char  No first char
2165  No need char  No need char
2166    
2167  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2168  ------------------------------------------------------------------  ------------------------------------------------------------------
2169    0  37 Bra 0          Bra
2170    3     ^          ^
2171    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff]
2172   37  37 Ket          Ket
2173   40     End          End
2174  ------------------------------------------------------------------  ------------------------------------------------------------------
2175  Capturing subpattern count = 0  Capturing subpattern count = 0
2176  Options: anchored  Options: anchored
2177  No first char  No first char
2178  No need char  No need char
2179    
2180  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2181  ------------------------------------------------------------------  ------------------------------------------------------------------
2182    0  36 Bra 0          Bra
2183    3     [%0-1A-Za-z]          [%01A-Za-z]
2184   36  36 Ket          Ket
2185   39     End          End
2186  ------------------------------------------------------------------  ------------------------------------------------------------------
2187  Capturing subpattern count = 0  Capturing subpattern count = 0
2188  No options  No options
2189  No first char  No first char
2190  No need char  No need char
2191    
2192  /[[.ch.]]/  /[[.ch.]]/I
2193  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2194    
2195  /[[=ch=]]/  /[[=ch=]]/I
2196  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2197    
2198  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2199  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2200    
2201  /[[:upper:]]/i  /[[:upper:]]/Ii
2202  Capturing subpattern count = 0  Capturing subpattern count = 0
2203  Options: caseless  Options: caseless
2204  No first char  No first char
2205  No need char  No need char
2206      A      A
2207   0: A   0: A
2208      a      a
2209   0: a   0: a
2210    
2211  /[[:lower:]]/i  /[[:lower:]]/Ii
2212  Capturing subpattern count = 0  Capturing subpattern count = 0
2213  Options: caseless  Options: caseless
2214  No first char  No first char
2215  No need char  No need char
2216      A      A
2217   0: A   0: A
2218      a      a
2219   0: a   0: a
2220    
2221  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2222  Capturing subpattern count = 1  Capturing subpattern count = 1
2223  Options: caseless  Options: caseless
 Case state changes  
2224  No first char  No first char
2225  No need char  No need char
2226      ab      ab
# Line 2084  No need char Line 2234  No need char
2234   1: a   1: a
2235      Ab      Ab
2236  No match  No match
2237      AB      AB
2238  No match  No match
2239    
2240  /[\200-\410]/  /[\200-\110]/I
2241  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2242    
2243  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2244  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2245    
2246  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2247  Capturing subpattern count = 0  Capturing subpattern count = 0
2248  No options  No options
2249  First char = 'T'  First char = 'T'
2250  Need char = 'd'  Need char = 'd'
2251    
2252  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2253  Capturing subpattern count = 271  Capturing subpattern count = 271
2254  Max back reference = 270  Max back reference = 270
2255    Partial matching not supported
2256  No options  No options
2257  No first char  No first char
2258  No need char  No need char
# Line 2379  No need char Line 2530  No need char
2530  270: ABC  270: ABC
2531  271: ABC  271: ABC
2532    
2533  /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
2534  Capturing subpattern count = 0  Capturing subpattern count = 0
2535  No options  No options
2536  First char = 'T'  First char = 'T'
2537  Need char = 't'  Need char = 't'
2538    
2539  /(main(O)?)+/  /(main(O)?)+/I
2540  Capturing subpattern count = 2  Capturing subpattern count = 2
2541  No options  No options
2542  First char = 'm'  First char = 'm'
# Line 2397  Need char = 'n' Line 2548  Need char = 'n'
2548   0: mainOmain   0: mainOmain
2549   1: main   1: main
2550   2: O   2: O
2551    
2552  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2553  Capturing subpattern count = 1  Capturing subpattern count = 1
2554  No options  No options
2555  First char = 'T'  First char = 'T'
2556  Need char = 's'  Need char = 's'
2557    
2558  /^(a(b)?)+$/  /^(a(b)?)+$/I
2559  Capturing subpattern count = 2  Capturing subpattern count = 2
2560  Options: anchored  Options: anchored
2561  No first char  No first char
# Line 2413  No need char Line 2564  No need char
2564   0: aba   0: aba
2565   1: a   1: a
2566   2: b   2: b
2567    
2568  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2569  Capturing subpattern count = 2  Capturing subpattern count = 2
2570  Options: anchored  Options: anchored
2571  No first char  No first char
2572  No need char  No need char
2573      aabbaa      aabbaa
2574   0: aabbaa   0: aabbaa
2575   1: aa   1: aa
2576   2: bb   2: bb
2577    
2578  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2579  Capturing subpattern count = 2  Capturing subpattern count = 2
2580  Options: anchored  Options: anchored
2581  No first char  No first char
2582  No need char  No need char
2583      aabbaa      aabbaa
2584   0: aabbaa   0: aabbaa
2585   1: aa   1: aa
2586   2: bb   2: bb
2587    
2588  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2589  Capturing subpattern count = 2  Capturing subpattern count = 2
2590  Options: anchored  Options: anchored
2591  No first char  No first char
2592  No need char  No need char
2593      aabbaa      aabbaa
2594   0: aabbaa   0: aabbaa
2595   1: aa   1: aa
2596   2: bb   2: bb
2597    
2598  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2599  Capturing subpattern count = 1  Capturing subpattern count = 1
2600  Options: anchored  Options: anchored
2601  No first char  No first char
2602  No need char  No need char
2603      aabbaa      aabbaa
2604   0: aabbaa   0: aabbaa
2605   1: bb   1: bb
2606    
2607  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2608  Capturing subpattern count = 3  Capturing subpattern count = 3
2609  Options: anchored  Options: anchored
2610  No first char  No first char
2611  No need char  No need char
2612      aabbaa      aabbaa
2613   0: aabbaa   0: aabbaa
2614   1: aa   1: aa
2615   2: bb   2: bb
2616   3: b   3: b
2617    
2618  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2619  Capturing subpattern count = 2  Capturing subpattern count = 2
2620  Options: anchored  Options: anchored
2621  No first char  No first char
2622  No need char  No need char
2623      aabbaa      aabbaa
2624   0: aabbaa   0: aabbaa
2625   1: bb   1: bb
2626   2: b   2: b
2627    
2628  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2629  Capturing subpattern count = 1  Capturing subpattern count = 1
2630  Options: anchored  Options: anchored
2631  No first char  No first char
2632  No need char  No need char
2633      aabbaa      aabbaa
2634   0: aabbaa   0: aabbaa
2635   1: bb   1: bb
2636    
2637  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2638  Capturing subpattern count = 1  Capturing subpattern count = 1
2639  Options: anchored  Options: anchored
2640  No first char  No first char
2641  No need char  No need char
2642      aabbbaa      aabbbaa
2643   0: aabbbaa   0: aabbbaa
2644   1: bbb   1: bbb
2645    
2646  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2647  Capturing subpattern count = 1  Capturing subpattern count = 1
2648  Options: anchored  Options: anchored
2649  No first char  No first char
2650  No need char  No need char
2651      aabbbaa      aabbbaa
2652   0: aabbbaa   0: aabbbaa
2653   1: bbb   1: bbb
2654    
2655  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2656  Capturing subpattern count = 1  Capturing subpattern count = 1
2657  Options: anchored  Options: anchored
2658  No first char  No first char
2659  No need char  No need char
2660      aabbaa      aabbaa
2661   0: aabbaa   0: aabbaa
2662   1: b   1: b
2663    
2664  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2665  Capturing subpattern count = 1  Capturing subpattern count = 1
2666  Options: anchored  Options: anchored
2667  No first char  No first char
2668  No need char  No need char
2669      aabbbaa      aabbbaa
2670   0: aabbbaa   0: aabbbaa
2671   1: bb   1: bb
2672    
2673  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2674  Capturing subpattern count = 3  Capturing subpattern count = 3
2675  Options: anchored  Options: anchored
2676  No first char  No first char
2677  No need char  No need char
2678      aabbbaa      aabbbaa
2679   0: aabbbaa   0: aabbbaa
2680   1: aa   1: aa
2681   2: bbb   2: bbb
2682   3: bb   3: bb
2683    
2684  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2685  Capturing subpattern count = 3  Capturing subpattern count = 3
2686  Options: anchored  Options: anchored
2687  No first char  No first char
2688  No need char  No need char
2689      aabbbbaa      aabbbbaa
2690   0: aabbbbaa   0: aabbbbaa
2691   1: aa   1: aa
2692   2: bbbb   2: bbbb
2693   3: bb   3: bb
2694    
2695  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2696  Capturing subpattern count = 0  Capturing subpattern count = 0
2697  No options  No options
2698  First char = '-'  First char = '-'
2699  Need char = '-'  Need char = '-'
2700    
2701  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2702  ------------------------------------------------------------------  ------------------------------------------------------------------
2703    0   3 Bra 0          Bra
2704    3   3 Ket          Ket
2705    6     End          End
2706  ------------------------------------------------------------------  ------------------------------------------------------------------
2707  Capturing subpattern count = 0  Capturing subpattern count = 0
2708  Options: extended  Options: extended
2709  No first char  No first char
2710  No need char  No need char
2711    
2712  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 13  
2713  ------------------------------------------------------------------  ------------------------------------------------------------------
2714    0   6 Bra 0          Bra
2715    3   1 a          a
2716    6   6 Ket          Ket
2717    9     End          End
2718  ------------------------------------------------------------------  ------------------------------------------------------------------
2719  Capturing subpattern count = 0  Capturing subpattern count = 0
2720  Options: extended  Options: extended
2721  First char = 'a'  First char = 'a'
2722  No need char  No need char
2723    
2724  /[\s]/D  /[\s]/DZ
2725  ------------------------------------------------------------------  ------------------------------------------------------------------
2726    0  36 Bra 0          Bra
2727    3     [\x09-\x0a\x0c-\x0d ]          [\x09\x0a\x0c\x0d ]
2728   36  36 Ket          Ket
2729   39     End          End
2730  ------------------------------------------------------------------  ------------------------------------------------------------------
2731  Capturing subpattern count = 0  Capturing subpattern count = 0
2732  No options  No options
2733  No first char  No first char
2734  No need char  No need char
2735    
2736  /[\S]/D  /[\S]/DZ
2737  ------------------------------------------------------------------  ------------------------------------------------------------------
2738    0  36 Bra 0          Bra
2739    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2740   36  36 Ket          Ket
2741   39     End          End
2742  ------------------------------------------------------------------  ------------------------------------------------------------------
2743  Capturing subpattern count = 0  Capturing subpattern count = 0
2744  No options  No options
2745  No first char  No first char
2746  No need char  No need char
2747    
2748  /a(?i)b/D  /a(?i)b/DZ
2749  ------------------------------------------------------------------  ------------------------------------------------------------------
2750    0  11 Bra 0          Bra
2751    3   1 a          a
2752    6  01 Opt       01 Opt
2753    8   1 b       NC b
2754   11  11 Ket          Ket
2755   14     End          End
2756  ------------------------------------------------------------------  ------------------------------------------------------------------
2757  Capturing subpattern count = 0  Capturing subpattern count = 0
2758  No options  No options
 Case state changes  
2759  First char = 'a'  First char = 'a'
2760  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2761      ab      ab
2762   0: ab   0: ab
2763      aB      aB
2764   0: aB   0: aB
2765      *** Failers      *** Failers
2766  No match  No match
2767      AB      AB
2768  No match  No match
2769    
2770  /(a(?i)b)/D  /(a(?i)b)/DZ
2771  ------------------------------------------------------------------  ------------------------------------------------------------------
2772    0  19 Bra 0          Bra
2773    3  11 Bra 1          CBra 1
2774    6   1 a          a
2775    9  01 Opt       01 Opt
2776   11   1 b       NC b
2777   14  11 Ket          Ket
2778   17  00 Opt       00 Opt
2779   19  19 Ket          Ket
2780   22     End          End
2781  ------------------------------------------------------------------  ------------------------------------------------------------------
2782  Capturing subpattern count = 1  Capturing subpattern count = 1
2783  No options  No options
 Case state changes  
2784  First char = 'a'  First char = 'a'
2785  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2786      ab      ab
# Line 2642  Need char = 'b' (caseless) Line 2789  Need char = 'b' (caseless)
2789      aB      aB
2790   0: aB   0: aB
2791   1: aB   1: aB
2792      *** Failers      *** Failers
2793  No match  No match
2794      AB      AB
2795  No match  No match
2796    
2797  /   (?i)abc/xD  /   (?i)abc/IxDZ
2798  ------------------------------------------------------------------  ------------------------------------------------------------------
2799    0   8 Bra 0          Bra
2800    3   3 abc       NC abc
2801    8   8 Ket          Ket
2802   11     End          End
2803  ------------------------------------------------------------------  ------------------------------------------------------------------
2804  Capturing subpattern count = 0  Capturing subpattern count = 0
2805  Options: caseless extended  Options: caseless extended
# Line 2660  First char = 'a' (caseless) Line 2807  First char = 'a' (caseless)
2807  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2808    
2809  /#this is a comment  /#this is a comment
2810    (?i)abc/xD    (?i)abc/IxDZ
2811  ------------------------------------------------------------------  ------------------------------------------------------------------
2812    0   8 Bra 0          Bra
2813    3   3 abc       NC abc
2814    8   8 Ket          Ket
2815   11     End          End
2816  ------------------------------------------------------------------  ------------------------------------------------------------------
2817  Capturing subpattern count = 0  Capturing subpattern count = 0
2818  Options: caseless extended  Options: caseless extended
2819  First char = 'a' (caseless)  First char = 'a' (caseless)
2820  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2821    
2822  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2823  ------------------------------------------------------------------  ------------------------------------------------------------------
2824    0 307 Bra 0          Bra
2825    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2826  255  50 12345678901234567890123456789012345678901234567890          Ket
2827  307 307 Ket          End
 310     End  
2828  ------------------------------------------------------------------  ------------------------------------------------------------------
2829  Capturing subpattern count = 0  Capturing subpattern count = 0
2830  No options  No options
2831  First char = '1'  First char = '1'
2832  Need char = '0'  Need char = '0'
2833    
2834  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2835  ------------------------------------------------------------------  ------------------------------------------------------------------
2836    0 307 Bra 0          Bra
2837    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2838  255  50 12345678901234567890123456789012345678901234567890          Ket
2839  307 307 Ket          End
 310     End  
2840  ------------------------------------------------------------------  ------------------------------------------------------------------
2841  Capturing subpattern count = 0  Capturing subpattern count = 0
2842  No options  No options
2843  First char = '1'  First char = '1'
2844  Need char = '0'  Need char = '0'
2845    
2846  /\Q\E/D  /\Q\E/DZ
2847  ------------------------------------------------------------------  ------------------------------------------------------------------
2848    0   3 Bra 0          Bra
2849    3   3 Ket          Ket
2850    6     End          End
2851  ------------------------------------------------------------------  ------------------------------------------------------------------
2852  Capturing subpattern count = 0  Capturing subpattern count = 0
2853  No options  No options
# Line 2711  No need char Line 2856  No need char
2856      \      \
2857   0:   0:
2858    
2859  /\Q\Ex/D  /\Q\Ex/DZ
2860  ------------------------------------------------------------------  ------------------------------------------------------------------
2861    0   6 Bra 0          Bra
2862    3   1 x          x
2863    6   6 Ket          Ket
2864    9     End          End
2865  ------------------------------------------------------------------  ------------------------------------------------------------------
2866  Capturing subpattern count = 0  Capturing subpattern count = 0
2867  No options  No options
2868  First char = 'x'  First char = 'x'
2869  No need char  No need char
2870    
2871  / \Q\E/D  / \Q\E/DZ
2872  ------------------------------------------------------------------  ------------------------------------------------------------------
2873    0   6 Bra 0          Bra
2874    3   1  
2875    6   6 Ket          Ket
2876    9     End          End
2877  ------------------------------------------------------------------  ------------------------------------------------------------------
2878  Capturing subpattern count = 0  Capturing subpattern count = 0
2879  No options  No options
2880  First char = ' '  First char = ' '
2881  No need char  No need char
2882    
2883  /a\Q\E/D  /a\Q\E/DZ
2884  ------------------------------------------------------------------  ------------------------------------------------------------------
2885    0   6 Bra 0          Bra
2886    3   1 a          a
2887    6   6 Ket          Ket
2888    9     End          End
2889  ------------------------------------------------------------------  ------------------------------------------------------------------
2890  Capturing subpattern count = 0  Capturing subpattern count = 0
2891  No options  No options
# Line 2750  No need char Line 2895  No need char
2895   0: a   0: a
2896    bca    bca
2897   0: a   0: a
2898    bac    bac
2899   0: a   0: a
2900    
2901  /a\Q\Eb/D  /a\Q\Eb/DZ
2902  ------------------------------------------------------------------  ------------------------------------------------------------------
2903    0   9 Bra 0          Bra
2904    3   1 a          ab
2905    6   1 b          Ket
2906    9   9 Ket          End
  12     End  
2907  ------------------------------------------------------------------  ------------------------------------------------------------------
2908  Capturing subpattern count = 0  Capturing subpattern count = 0
2909  No options  No options
# Line 2768  Need char = 'b' Line 2912  Need char = 'b'
2912    abc    abc
2913   0: ab   0: ab
2914    
2915  /\Q\Eabc/D  /\Q\Eabc/DZ
2916  ------------------------------------------------------------------  ------------------------------------------------------------------
2917    0   8 Bra 0          Bra
2918    3   3 abc          abc
2919    8   8 Ket          Ket
2920   11     End          End
2921  ------------------------------------------------------------------  ------------------------------------------------------------------
2922  Capturing subpattern count = 0  Capturing subpattern count = 0
2923  No options  No options
2924  First char = 'a'  First char = 'a'
2925  Need char = 'c'  Need char = 'c'
2926    
2927  /x*+\w/D  /x*+\w/DZ
2928  ------------------------------------------------------------------  ------------------------------------------------------------------
2929    0  12 Bra 0          Bra
2930    3   5 Once          x*+
2931    6     x*          \w
2932    8   5 Ket          Ket
2933   11     \w          End
  12  12 Ket  
  15     End  
2934  ------------------------------------------------------------------  ------------------------------------------------------------------
2935  Capturing subpattern count = 0  Capturing subpattern count = 0
2936    Partial matching not supported
2937  No options  No options
2938  No first char  No first char
2939  No need char  No need char
# Line 2798  No need char Line 2941  No need char
2941   0: F   0: F
2942      xxxxx      xxxxx
2943  No match  No match
2944    
2945  /x?+/D  /x?+/DZ
2946  ------------------------------------------------------------------  ------------------------------------------------------------------
2947    0  11 Bra 0          Bra
2948    3   5 Once          x?+
2949    6     x?          Ket
2950    8   5 Ket          End
  11  11 Ket  
  14     End  
2951  ------------------------------------------------------------------  ------------------------------------------------------------------
2952  Capturing subpattern count = 0  Capturing subpattern count = 0
2953  No options  No options
2954  No first char  No first char
2955  No need char  No need char
2956    
2957  /x++/D  /x++/DZ
2958  ------------------------------------------------------------------  ------------------------------------------------------------------
2959    0  11 Bra 0          Bra
2960    3   5 Once          x++
2961    6     x+          Ket
2962    8   5 Ket          End
  11  11 Ket  
  14     End  
2963  ------------------------------------------------------------------  ------------------------------------------------------------------
2964  Capturing subpattern count = 0  Capturing subpattern count = 0
2965    Partial matching not supported
2966  No options  No options
2967  First char = 'x'  First char = 'x'
2968  No need char  No need char
2969    
2970  /x{1,3}+/D  /x{1,3}+/DZ
2971  ------------------------------------------------------------------  ------------------------------------------------------------------
2972    0  16 Bra 0          Bra
2973    3  10 Once          Once
2974    6   1 x          x
2975    9     x{,2}          x{0,2}
2976   13  10 Ket          Ket
2977   16  16 Ket          Ket
2978   19     End          End
2979  ------------------------------------------------------------------  ------------------------------------------------------------------
2980  Capturing subpattern count = 0  Capturing subpattern count = 0
2981    Partial matching not supported
2982  No options  No options
2983  First char = 'x'  First char = 'x'
2984  No need char  No need char
2985    
2986  /(x)*+/D  /(x)*+/DZ
2987  ------------------------------------------------------------------  ------------------------------------------------------------------
2988    0  19 Bra 0          Bra
2989    3  13 Once          Once
2990    6     Brazero          Brazero
2991    7   6 Bra 1          CBra 1
2992   10   1 x          x
2993   13   6 KetRmax          KetRmax
2994   16  13 Ket          Ket
2995   19  19 Ket          Ket
2996   22     End          End
2997  ------------------------------------------------------------------  ------------------------------------------------------------------
2998  Capturing subpattern count = 1  Capturing subpattern count = 1
2999  No options  No options
3000  No first char  No first char
3001  No need char  No need char
3002    
3003  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
3004  Capturing subpattern count = 1  Capturing subpattern count = 1
3005    Partial matching not supported
3006  Options: anchored  Options: anchored
3007  No first char  No first char
3008  No need char  No need char
# Line 2871  No need char Line 3013  No need char
3013  No match  No match
3014      this is not a line with only words and spaces!      this is not a line with only words and spaces!
3015  No match  No match
3016    
3017  /(\d++)(\w)/  /(\d++)(\w)/I
3018  Capturing subpattern count = 2  Capturing subpattern count = 2
3019    Partial matching not supported
3020  No options  No options
3021  No first char  No first char
3022  No need char  No need char
# Line 2883  No need char Line 3026  No need char
3026   2: a   2: a
3027      *** Failers      *** Failers
3028  No match  No match
3029      12345+      12345+
3030  No match  No match
3031    
3032  /a++b/  /a++b/I
3033  Capturing subpattern count = 0  Capturing subpattern count = 0
3034    Partial matching not supported
3035  No options  No options
3036  First char = 'a'  First char = 'a'
3037  Need char = 'b'  Need char = 'b'
3038      aaab      aaab
3039   0: aaab   0: aaab
3040    
3041  /(a++b)/  /(a++b)/I
3042  Capturing subpattern count = 1  Capturing subpattern count = 1
3043    Partial matching not supported
3044  No options  No options
3045  First char = 'a'  First char = 'a'
3046  Need char = 'b'  Need char = 'b'
# Line 2903  Need char = 'b' Line 3048  Need char = 'b'
3048   0: aaab   0: aaab
3049   1: aaab   1: aaab
3050    
3051  /(a++)b/  /(a++)b/I
3052  Capturing subpattern count = 1  Capturing subpattern count = 1
3053    Partial matching not supported
3054  No options  No options
3055  First char = 'a'  First char = 'a'
3056  Need char = 'b'  Need char = 'b'
# Line 2912  Need char = 'b' Line 3058  Need char = 'b'
3058   0: aaab   0: aaab
3059   1: aaa   1: aaa
3060    
3061  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3062  Capturing subpattern count = 1  Capturing subpattern count = 1
3063    Partial matching not supported
3064  No options  No options
3065  No first char  No first char
3066  No need char  No need char
3067      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3068   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3069   1: x   1: x
3070    
3071  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3072  Capturing subpattern count = 1  Capturing subpattern count = 1
3073    Partial matching not supported
3074  No options  No options
3075  First char = '('  First char = '('
3076  Need char = ')'  Need char = ')'
# Line 2934  Need char = ')' Line 3082  Need char = ')'
3082   1: xyz   1: xyz
3083      *** Failers      *** Failers
3084  No match  No match
3085      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3086  No match  No match
3087    
3088  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3089  ------------------------------------------------------------------  ------------------------------------------------------------------
3090    0  50 Bra 0          Bra
3091    3  44 Once          Once
3092    6   8 Bra 1          CBra 1
3093    9   3 abc          abc
3094   14   8 Ket          Ket
3095   17     Brazero          Brazero
3096   18  26 Bra 0          Bra
3097   21   8 Bra 1          CBra 1
3098   24   3 abc          abc
3099   29   8 Ket          Ket
3100   32     Brazero          Brazero
3101   33   8 Bra 1          CBra 1
3102   36   3 abc          abc
3103   41   8 Ket          Ket
3104   44  26 Ket          Ket
3105   47  44 Ket          Ket
3106   50  50 Ket          Ket
3107   53     End          End
3108  ------------------------------------------------------------------  ------------------------------------------------------------------
3109  Capturing subpattern count = 1  Capturing subpattern count = 1
3110  No options  No options
3111  First char = 'a'  First char = 'a'
3112  Need char = 'c'  Need char = 'c'
3113    
3114  /a+?+/  /a+?+/I
3115  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3116    
3117  /a{2,3}?+b/  /a{2,3}?+b/I
3118  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3119    
3120  /(?U)a+?+/  /(?U)a+?+/I
3121  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3122    
3123  /a{2,3}?+b/U  /a{2,3}?+b/IU
3124  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3125    
3126  /x(?U)a++b/D  /x(?U)a++b/DZ
3127  ------------------------------------------------------------------  ------------------------------------------------------------------
3128    0  17 Bra 0          Bra
3129    3   1 x          x
3130    6   5 Once          a++
3131    9     a+          b
3132   11   5 Ket          Ket
3133   14   1 b          End
  17  17 Ket  
  20     End  
3134  ------------------------------------------------------------------  ------------------------------------------------------------------
3135  Capturing subpattern count = 0  Capturing subpattern count = 0
3136    Partial matching not supported
3137  No options  No options
3138  First char = 'x'  First char = 'x'
3139  Need char = 'b'  Need char = 'b'
3140      xaaaab      xaaaab
3141   0: xaaaab   0: xaaaab
3142    
3143  /(?U)xa++b/D  /(?U)xa++b/DZ
3144  ------------------------------------------------------------------  ------------------------------------------------------------------
3145    0  17 Bra 0          Bra
3146    3   1 x          x
3147    6   5 Once          a++
3148    9     a+          b
3149   11   5 Ket          Ket
3150   14   1 b          End
  17  17 Ket  
  20     End  
3151  ------------------------------------------------------------------  ------------------------------------------------------------------
3152  Capturing subpattern count = 0  Capturing subpattern count = 0
3153    Partial matching not supported
3154  Options: ungreedy  Options: ungreedy
3155  First char = 'x'  First char = 'x'
3156  Need char = 'b'  Need char = 'b'
3157      xaaaab      xaaaab
3158   0: xaaaab   0: xaaaab
3159    
3160  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3161  ------------------------------------------------------------------  ------------------------------------------------------------------
3162    0 106 Bra 0          Bra
3163    3     ^          ^
3164    4  99 Bra 1          CBra 1
3165    7   5 Bra 2          CBra 2
3166   10     a+          a+
3167   12   5 Ket          Ket
3168   15  37 Bra 3          CBra 3
3169   18     [a-b]+?          [ab]+?
3170   52  37 Ket          Ket
3171   55  37 Bra 4          CBra 4
3172   58     [b-c]+          [bc]+
3173   92  37 Ket          Ket
3174   95   5 Bra 5          CBra 5
3175   98     \w*          \w*
3176  100   5 Ket          Ket
3177  103  99 Ket          Ket
3178  106 106 Ket          Ket
3179  109     End          End
3180  ------------------------------------------------------------------  ------------------------------------------------------------------
3181  Capturing subpattern count = 5  Capturing subpattern count = 5
3182    Partial matching not supported
3183  Options: anchored  Options: anchored
3184  No first char  No first char
3185  No need char  No need char
3186    
3187  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3188  ------------------------------------------------------------------  ------------------------------------------------------------------
3189    0  12 Bra 0          Bra
3190    3     ^          ^
3191    4   1 x          x
3192    7     a+?          a++
3193    9   1 b          b
3194   12  12 Ket          Ket
3195   15     End          End
3196  ------------------------------------------------------------------  ------------------------------------------------------------------
3197  Capturing subpattern count = 0  Capturing subpattern count = 0
3198    Partial matching not supported
3199  Options: anchored  Options: anchored
3200  No first char  No first char
3201  Need char = 'b'  Need char = 'b'
3202    
3203  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3204  ------------------------------------------------------------------  ------------------------------------------------------------------
3205    0  18 Bra 0          Bra
3206    3     ^          ^
3207    4   1 x          x
3208    7   5 Bra 1          CBra 1
3209   10     a+?          a+?
3210   12   5 Ket          Ket
3211   15   1 b          b
3212   18  18 Ket          Ket
3213   21     End          End
3214  ------------------------------------------------------------------  ------------------------------------------------------------------
3215  Capturing subpattern count = 1  Capturing subpattern count = 1
3216    Partial matching not supported
3217  Options: anchored  Options: anchored
3218  No first char  No first char
3219  Need char = 'b'  Need char = 'b'
3220    
3221  /[.x.]/  /[.x.]/I
3222  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3223    
3224  /[=x=]/  /[=x=]/I
3225  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3226    
3227  /[:x:]/  /[:x:]/I
3228  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
3229    
3230  /\l/  /\l/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
   
 /\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  
3232    
3233  /\pP/  /\L/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  /\PP/  /\N{name}/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  /\p{prop}/  /\u/I
3240  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
3241    
3242  /\P{prop}/  /\U/I
3243  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
3244    
3245  /\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  
   
 /[/  
3246  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3247    
3248  /[a-/  /[a-/I
3249  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3250    
3251  /[[:space:]/  /[[:space:]/I
3252  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3253    
3254  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3255  ------------------------------------------------------------------  ------------------------------------------------------------------
3256    0  36 Bra 0          Bra
3257    3     [\x09-\x0a\x0c-\x0d ]          [\x09\x0a\x0c\x0d ]
3258   36  36 Ket          Ket
3259   39     End          End
3260  ------------------------------------------------------------------  ------------------------------------------------------------------
3261  Capturing subpattern count = 0  Capturing subpattern count = 0
3262  No options  No options
3263  No first char  No first char
3264  No need char  No need char
3265    
3266  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3267  ------------------------------------------------------------------  ------------------------------------------------------------------
3268    0  36 Bra 0          Bra
3269    3     [\x09-\x0d ]          [\x09-\x0d ]
3270   36  36 Ket          Ket
3271   39     End          End
3272  ------------------------------------------------------------------  ------------------------------------------------------------------
3273  Capturing subpattern count = 0  Capturing subpattern count = 0
3274  No options  No options
3275  No first char  No first char
3276  No need char  No need char
3277    
3278  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3279  ------------------------------------------------------------------  ------------------------------------------------------------------
3280    0  36 Bra 0          Bra
3281    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3282   36  36 Ket          Ket
3283   39     End          End
3284  ------------------------------------------------------------------  ------------------------------------------------------------------
3285  Capturing subpattern count = 0  Capturing subpattern count = 0
3286  No options  No options
3287  No first char  No first char
3288  No need char  No need char
3289    
3290  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3291  Capturing subpattern count = 0  Capturing subpattern count = 0
3292    Partial matching not supported
3293  Options: extended  Options: extended
3294  First char = '<'  First char = '<'
3295  Need char = '>'  Need char = '>'
# Line 3169  Need char = '>' Line 3301  Need char = '>'
3301   0: <abc <123> hij>   0: <abc <123> hij>
3302      <abc <def> hij>      <abc <def> hij>
3303   0: <def>   0: <def>
3304      <abc<>def>      <abc<>def>
3305   0: <abc<>def>   0: <abc<>def>
3306      <abc<>      <abc<>
3307   0: <>   0: <>
3308      *** Failers      *** Failers
3309  No match  No match
3310      <abc      <abc
3311  No match  No match
3312    
3313  |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  
3314  ------------------------------------------------------------------  ------------------------------------------------------------------
3315    0 417 Bra 0          Bra
3316    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
3317  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
3318  416     \b          Ket
3319  417 417 Ket          End
 420     End  
3320  ------------------------------------------------------------------  ------------------------------------------------------------------
3321  Capturing subpattern count = 0  Capturing subpattern count = 0
3322  No options  No options
3323  First char = '8'  First char = '8'
3324  Need char = 'X'  Need char = 'X'
3325    
3326  |\$\<\.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  
3327  ------------------------------------------------------------------  ------------------------------------------------------------------
3328    0 412 Bra 0          Bra
3329    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
3330  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
3331  411     \b          Ket
3332  412 412 Ket          End
 415     End  
3333  ------------------------------------------------------------------  ------------------------------------------------------------------
3334  Capturing subpattern count = 0  Capturing subpattern count = 0
3335  No options  No options
# Line 3211  Need char = 'X' Line 3339  Need char = 'X'
3339  /(.*)\d+\1/I  /(.*)\d+\1/I
3340  Capturing subpattern count = 1  Capturing subpattern count = 1
3341  Max back reference = 1  Max back reference = 1
3342    Partial matching not supported
3343  No options  No options
3344  No first char  No first char
3345  No need char  No need char
3346    
3347  /(.*)\d+/I  /(.*)\d+/I
3348  Capturing subpattern count = 1  Capturing subpattern count = 1
3349    Partial matching not supported
3350  No options  No options
3351  First char at start or follows \n  First char at start or follows newline
3352  No need char  No need char
3353    
3354  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3355  Capturing subpattern count = 1  Capturing subpattern count = 1
3356  Max back reference = 1  Max back reference = 1
3357    Partial matching not supported
3358  Options: dotall  Options: dotall
3359  No first char  No first char
3360  No need char  No need char
3361    
3362  /(.*)\d+/Is  /(.*)\d+/Is
3363  Capturing subpattern count = 1  Capturing subpattern count = 1
3364    Partial matching not supported
3365  Options: anchored dotall  Options: anchored dotall
3366  No first char  No first char
3367  No need char  No need char
# Line 3237  No need char Line 3369  No need char
3369  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3370  Capturing subpattern count = 2  Capturing subpattern count = 2
3371  Max back reference = 2  Max back reference = 2
3372    Partial matching not supported
3373  No options  No options
3374  First char at start or follows \n  First char at start or follows newline
3375  Need char = 'z'  Need char = 'z'
3376    
3377  /((.*))\d+\1/I  /((.*))\d+\1/I
3378  Capturing subpattern count = 2  Capturing subpattern count = 2
3379  Max back reference = 1  Max back reference = 1
3380    Partial matching not supported
3381  No options  No options
3382  No first char  No first char
3383  No need char  No need char
# Line 3251  No need char Line 3385  No need char
3385   0: bc123bc   0: bc123bc
3386   1: bc   1: bc
3387   2: bc   2: bc
3388    
3389  /a[b]/I  /a[b]/I
3390  Capturing subpattern count = 0  Capturing subpattern count = 0
3391  No options  No options
# Line 3260  Need char = 'b' Line 3394  Need char = 'b'
3394    
3395  /(?=a).*/I  /(?=a).*/I
3396  Capturing subpattern count = 0  Capturing subpattern count = 0
3397    Partial matching not supported
3398  No options  No options
3399  First char = 'a'  First char = 'a'
3400  No need char  No need char
3401    
3402  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3403  Capturing subpattern count = 0  Capturing subpattern count = 0
3404  Options: caseless  Options: caseless
3405  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3273  Need char = 'z' (caseless) Line 3408  Need char = 'z' (caseless)
3408  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3409  Capturing subpattern count = 0  Capturing subpattern count = 0
3410  No options  No options
 Case state changes  
3411  First char = 'a'  First char = 'a'
3412  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3413    
# Line 3366  Capturing subpattern count = 0 Line 3500  Capturing subpattern count = 0
3500  No options  No options
3501  No first char  No first char
3502  No need char  No need char
3503  Starting character set: a b  Starting byte set: a b
3504    
3505  /[^a]/I  /[^a]/I
3506  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3385  Capturing subpattern count = 0 Line 3519  Capturing subpattern count = 0
3519  No options  No options
3520  No first char  No first char
3521  Need char = '6'  Need char = '6'
3522  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
3523    
3524  /a^b/I  /a^b/I
3525  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3393  No options Line 3527  No options
3527  First char = 'a'  First char = 'a'
3528  Need char = 'b'  Need char = 'b'
3529    
3530  /^a/mI  /^a/Im
3531  Capturing subpattern count = 0  Capturing subpattern count = 0
3532  Options: multiline  Options: multiline
3533  First char at start or follows \n  First char at start or follows newline
3534  Need char = 'a'  Need char = 'a'
3535    abcde    abcde
3536   0: a   0: a
3537    xy\nabc    xy\nabc
3538   0: a   0: a
3539    *** Failers    *** Failers
3540  No match  No match
3541    xyabc    xyabc
3542  No match  No match
3543    
3544  /c|abc/I  /c|abc/I
# Line 3418  Capturing subpattern count = 0 Line 3552  Capturing subpattern count = 0
3552  Options: caseless  Options: caseless
3553  No first char  No first char
3554  No need char  No need char
3555  Starting character set: A B a b  Starting byte set: A B a b
3556    
3557  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3558  Capturing subpattern count = 0  Capturing subpattern count = 0
3559  No options  No options
 Case state changes  
3560  No first char  No first char
3561  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3562  Starting character set: a b  Starting byte set: a b
3563    
3564  /abc(?C)def/  /abc(?C)def/I
3565  Capturing subpattern count = 0  Capturing subpattern count = 0
3566  No options  No options
3567  First char = 'a'  First char = 'a'
3568  Need char = 'f'  Need char = 'f'
3569      abcdef      abcdef
3570  --->abcdef  --->abcdef
3571    0 ^  ^    0 ^  ^       d
3572   0: abcdef   0: abcdef
3573      1234abcdef      1234abcdef
3574  --->1234abcdef  --->1234abcdef
3575    0     ^  ^    0     ^  ^       d
3576   0: abcdef   0: abcdef
3577      *** Failers      *** Failers
3578  No match  No match
3579      abcxyz      abcxyz
3580  No match  No match
3581      abcxyzf      abcxyzf
3582  --->abcxyzf  --->abcxyzf
3583    0 ^  ^    0 ^  ^        d
3584  No match  No match
3585    
3586  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3587  Capturing subpattern count = 0  Capturing subpattern count = 0
3588  No options  No options
3589  First char = 'a'  First char = 'a'
3590  Need char = 'f'  Need char = 'f'
3591      123abcdef      123abcdef
3592  --->123abcdef  --->123abcdef
3593    0    ^  ^    0    ^  ^       d
3594    1    ^    ^    1    ^    ^     f
3595   0: abcdef   0: abcdef
3596    
3597  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3598  Capturing subpattern count = 0  Capturing subpattern count = 0
3599  No options  No options
3600  No first char  No first char
3601  Need char = 'f'  Need char = 'f'
3602      1234abcdef      1234abcdef
3603  --->1234abcdef  --->1234abcdef
3604    1 ^    1 ^              \d
3605    1  ^    1  ^             \d
3606    1   ^    1   ^            \d
3607    1    ^    1    ^           \d
3608    2    ^   ^    2    ^   ^       d
3609   0: 4abcdef   0: 4abcdef
3610      *** Failers      *** Failers
3611  No match  No match
3612      abcdef      abcdef
3613  --->abcdef  --->abcdef
3614    1 ^    1 ^          \d
3615    1  ^    1  ^         \d
3616    1   ^    1   ^        \d
3617    1    ^    1    ^       \d
3618    1     ^    1     ^      \d
3619    1      ^    1      ^     \d
3620  No match  No match
3621    
3622  /(?C255)ab/  /(?C255)ab/I
3623  Capturing subpattern count = 0  Capturing subpattern count = 0
3624  No options  No options
3625  First char = 'a'  First char = 'a'
3626  Need char = 'b'  Need char = 'b'
3627    
3628  /(?C256)ab/  /(?C256)ab/I
3629  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3630    
3631  /(?Cab)xx/  /(?Cab)xx/I
3632  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3633    
3634  /(?C12vr)x/  /(?C12vr)x/I
3635  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3636    
3637  /abc(?C)def/  /abc(?C)def/I
3638  Capturing subpattern count = 0  Capturing subpattern count = 0
3639  No options  No options
3640  First char = 'a'  First char = 'a'
# Line 3510  Need char = 'f' Line 3643  Need char = 'f'
3643  No match  No match
3644      \x83\x0\x61bcdef      \x83\x0\x61bcdef
3645  --->\x83\x00abcdef  --->\x83\x00abcdef
3646    0         ^  ^    0         ^  ^       d
3647   0: abcdef   0: abcdef
3648    
3649  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3650  Capturing subpattern count = 1  Capturing subpattern count = 1
3651  No options  No options
3652  First char = 'a'  First char = 'a'
3653  Need char = 'f'  Need char = 'f'
3654      123abcdef      123abcdef
3655  --->123abcdef  --->123abcdef
3656    0    ^  ^    0    ^  ^       d
3657    1    ^    ^    1    ^    ^     f
3658   0: abcdef   0: abcdef
3659   1: abc   1: abc
3660      123abcdef\C+      123abcdef\C+
3661  Callout 0: last capture = 1  Callout 0: last capture = 1
3662   0: <unset>   0: <unset>
3663   1: abc   1: abc
3664  --->123abcdef  --->123abcdef
3665         ^  ^         ^  ^       d
3666  Callout 1: last capture = 1  Callout 1: last capture = 1
3667   0: <unset>   0: <unset>
3668   1: abc   1: abc
3669  --->123abcdef  --->123abcdef
3670         ^    ^         ^    ^     f
3671   0: abcdef   0: abcdef
3672   1: abc   1: abc
3673      123abcdef\C-      123abcdef\C-
3674   0: abcdef   0: abcdef
3675   1: abc   1: abc
3676      *** Failers      *** Failers
3677  No match  No match
3678      123abcdef\C!1      123abcdef\C!1
3679  --->123abcdef  --->123abcdef
3680    0    ^  ^    0    ^  ^       d
3681    1    ^    ^    1    ^    ^     f
3682  No match  No match
3683    
3684  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3685  Capturing subpattern count = 1  Capturing subpattern count = 1
3686  No options  No options
3687  No first char  No first char
3688  No need char  No need char
3689      abcabcabc      abcabcabc
3690  --->abcabcabc  --->abcabcabc
3691    0 ^    0 ^             (abc(?C1))*
3692    1 ^  ^    1 ^  ^          )
3693    1 ^     ^    1 ^     ^       )
3694    1 ^        ^    1 ^        ^    )
3695   0: abcabcabc   0: abcabcabc
3696   1: abc   1: abc
3697      abcabc\C!1!3      abcabc\C!1!3
3698  --->abcabc  --->abcabc
3699    0 ^    0 ^          (abc(?C1))*
3700    1 ^  ^    1 ^  ^       )
3701    1 ^     ^    1 ^     ^    )
3702   0: abcabc   0: abcabc
3703   1: abc   1: abc
3704      *** Failers      *** Failers
3705  --->*** Failers  --->*** Failers
3706    0 ^    0 ^               (abc(?C1))*
3707   0:   0:
3708      abcabcabc\C!1!3      abcabcabc\C!1!3
3709  --->abcabcabc  --->abcabcabc
3710    0 ^    0 ^             (abc(?C1))*
3711    1 ^  ^    1 ^  ^          )
3712    1 ^     ^    1 ^     ^       )
3713    1 ^        ^    1 ^        ^    )
3714   0: abcabc   0: abcabc
3715   1: abc   1: abc
3716    
3717  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3718  Capturing subpattern count = 1  Capturing subpattern count = 1
3719    Partial matching not supported
3720  No options  No options
3721  No first char  No first char
3722  No need char  No need char
# Line 3590  No need char Line 3724  No need char
3724  Callout 0: last capture = -1  Callout 0: last capture = -1
3725   0: <unset>   0: <unset>
3726  --->123  --->123
3727      ^  ^      ^  ^    )
3728   0: 123   0: 123
3729   1: 123   1: 123
3730      123456\C+      123456\C+
3731  Callout 0: last capture = -1  Callout 0: last capture = -1
3732   0: <unset>   0: <unset>
3733  --->123456  --->123456
3734      ^  ^      ^  ^       )
3735  Callout 0: last capture = 1  Callout 0: last capture = 1
3736   0: <unset>   0: <unset>
3737   1: 123   1: 123
3738  --->123456  --->123456
3739      ^     ^      ^     ^    )
3740   0: 123456   0: 123456
3741   1: 456   1: 456
3742      123456789\C+      123456789\C+
3743  Callout 0: last capture = -1  Callout 0: last capture = -1
3744   0: <unset>   0: <unset>
3745  --->123456789  --->123456789
3746      ^  ^      ^  ^          )
3747  Callout 0: last capture = 1  Callout 0: last capture = 1
3748   0: <unset>   0: <unset>
3749   1: 123   1: 123
3750  --->123456789  --->123456789
3751      ^     ^      ^     ^       )
3752  Callout 0: last capture = 1  Callout 0: last capture = 1
3753   0: <unset>   0: <unset>
3754   1: 456   1: 456
3755  --->123456789  --->123456789
3756      ^        ^      ^        ^    )
3757   0: 123456789   0: 123456789
3758   1: 789   1: 789
3759    
3760  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3761  Capturing subpattern count = 2  Capturing subpattern count = 2
3762  No options  No options
3763  First char = 'x'  First char = 'x'
# Line 3634  Callout 0: last capture = 2 Line 3768  Callout 0: last capture = 2
3768   1: <unset>   1: <unset>
3769   2: xyz   2: xyz
3770  --->xyzabc  --->xyzabc
3771      ^  ^      ^  ^       p
3772  Callout 1: last capture = -1  Callout 1: last capture = -1
3773   0: <unset>   0: <unset>
3774  --->xyzabc  --->xyzabc
3775      ^      ^          x
3776   0: xyzabc   0: xyzabc
3777   1: xyzabc   1: xyzabc
3778    
3779  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3780  Capturing subpattern count = 3  Capturing subpattern count = 3
3781  No options  No options
3782  First char = 'X'  First char = 'X'
# Line 3654  Callout 0: last capture = 3 Line 3788  Callout 0: last capture = 3
3788   2: <unset>   2: <unset>
3789   3: xyz   3: xyz
3790  --->Xxyzabc  --->Xxyzabc
3791      ^   ^      ^   ^       p
3792  Callout 1: last capture = 1  Callout 1: last capture = 1
3793   0: <unset>   0: <unset>
3794   1: X   1: X
3795  --->Xxyzabc  --->Xxyzabc
3796      ^^      ^^          x
3797   0: Xxyzabc   0: Xxyzabc
3798   1: X   1: X
3799   2: xyzabc   2: xyzabc
3800    
3801  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3802  Capturing subpattern count = 1  Capturing subpattern count = 1
3803  No options  No options
3804  First char = 'a'  First char = 'a'
# Line 3674  Callout 0: last capture = 1 Line 3808  Callout 0: last capture = 1
3808   0: <unset>   0: <unset>
3809   1: abc   1: abc
3810  --->abcdef  --->abcdef
3811      ^      ^          a
3812   0: abcdef   0: abcdef
3813   1: abc   1: abc
3814    
3815  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3816  Capturing subpattern count = 1  Capturing subpattern count = 1
3817  No options  No options
3818  First char = 'a'  First char = 'a'
3819  Need char = 'z'  Need char = 'z'
3820      abcxyz\C+      abcxyz\C+
3821  Callout 1: last capture = 1  Callout 1: last capture = 1
3822   0: <unset>   0: <unset>
3823   1: abc   1: abc
3824  --->abcxyz  --->abcxyz
3825      ^  ^      ^  ^       d
3826  Callout 2: last capture = -1  Callout 2: last capture = -1
3827   0: <unset>   0: <unset>
3828  --->abcxyz  --->abcxyz
3829      ^      ^          a
3830   0: abcxyz   0: abcxyz
3831    
3832  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3833  Capturing subpattern count = 1  Capturing subpattern count = 1
3834  No options  No options
3835  First char = 'x'  First char = 'x'
# Line 3705  Callout 0: last capture = 1 Line 3839  Callout 0: last capture = 1
3839   0: <unset>   0: <unset>
3840   1: abc   1: abc
3841  --->abcxyz  --->abcxyz
3842         ^         ^       )
3843   0: xyz   0: xyz
3844   1: abc   1: abc
3845    
3846  /(?C)abc/  /a(b+)(c*)(?C1)/I
3847    Capturing subpattern count = 2
3848    Partial matching not supported
3849    No options
3850    First char = 'a'
3851    Need char = 'b'
3852        abbbbbccc\C*1
3853    --->abbbbbccc
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      1 ^   ^
3865    Callout data = 1
3866      1 ^  ^
3867    Callout data = 1
3868      1 ^ ^
3869    Callout data = 1
3870    No match
3871    
3872    /a(b+?)(c*?)(?C1)/I
3873    Capturing subpattern count = 2
3874    Partial matching not supported
3875    No options
3876    First char = 'a'
3877    Need char = 'b'
3878        abbbbbccc\C*1
3879    --->abbbbbccc
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      1 ^      ^
3891    Callout data = 1
3892      1 ^       ^
3893    Callout data = 1
3894      1 ^        ^
3895    Callout data = 1
3896    No match
3897    
3898    /(?C)abc/I
3899  Capturing subpattern count = 0  Capturing subpattern count = 0
3900  No options  No options
3901  First char = 'a'  First char = 'a'
3902  Need char = 'c'  Need char = 'c'
3903    
3904  /(?C)^abc/  /(?C)^abc/I
3905  Capturing subpattern count = 0  Capturing subpattern count = 0
3906  Options: anchored  Options: anchored
3907  No first char  No first char
3908  No need char  No need char
3909    
3910  /(?C)a|b/S  /(?C)a|b/IS
3911  Capturing subpattern count = 0  Capturing subpattern count = 0
3912  No options  No options
3913  No first char  No first char
3914  No need char  No need char
3915  Starting character set: a b  Starting byte set: a b
3916    
3917  /(?R)/  /(?R)/I
3918  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3919    
3920  /(a|(?R))/  /(a|(?R))/I
3921  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3922    
3923  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3924  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3925    
3926  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3927  Capturing subpattern count = 3  Capturing subpattern count = 3
3928  No options  No options
3929  First char = 'x'  First char = 'x'
# Line 3766  No need char Line 3952  No need char
3952   3: xxab   3: xxab
3953      *** Failers      *** Failers
3954  No match  No match
3955      xyab      xyab
3956  No match  No match
3957    
3958  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3959  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3960    
3961  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3962  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3963    
3964  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3965  Capturing subpattern count = 1  Capturing subpattern count = 1
3966  Options: anchored  Options: anchored
3967  No first char  No first char
# Line 3786  No need char Line 3972  No need char
3972      a(b)c      a(b)c
3973   0: a(b)c   0: a(b)c
3974   1: c   1: c
3975      a(b(c))d      a(b(c))d
3976   0: a(b(c))d   0: a(b(c))d
3977   1: d   1: d
3978      *** Failers)      *** Failers)
3979  No match  No match
3980      a(b(c)d      a(b(c)d
3981  No match  No match
3982    
3983  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3984  Capturing subpattern count = 1  Capturing subpattern count = 1
3985  Options: anchored  Options: anchored
3986  No first char  No first char
# Line 3809  Need char = '<' Line 3995  Need char = '<'
3995   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3996   1: (1(2)3)   1: (1(2)3)
3997    
3998  /(a(?1)b)/D  /(a(?1)b)/DZ
3999  ------------------------------------------------------------------  ------------------------------------------------------------------
4000    0  18 Bra 0          Bra
4001    3  12 Bra 1          CBra 1
4002    6   1 a          a
4003    9   3 Recurse          Once
4004   12   1 b          Recurse
4005   15  12 Ket          Ket
4006   18  18 Ket          b
4007   21     End          Ket
4008            Ket
4009            End
4010  ------------------------------------------------------------------  ------------------------------------------------------------------
4011  Capturing subpattern count = 1  Capturing subpattern count = 1
4012  No options  No options
4013  First char = 'a'  First char = 'a'
4014  Need char = 'b'  Need char = 'b'
4015    
4016  /(a(?1)+b)/D  /(a(?1)+b)/DZ
4017  ------------------------------------------------------------------  ------------------------------------------------------------------
4018    0  24 Bra 0          Bra
4019    3  18 Bra 1          CBra 1
4020    6   1 a          a
4021    9   6 Bra 0          Once
4022   12   3 Recurse          Recurse
4023   15   6 KetRmax          KetRmax
4024   18   1 b          b
4025   21  18 Ket          Ket
4026   24  24 Ket          Ket
4027   27     End          End
4028  ------------------------------------------------------------------  ------------------------------------------------------------------
4029  Capturing subpattern count = 1  Capturing subpattern count = 1
4030  No options  No options
4031  First char = 'a'  First char = 'a'
4032  Need char = 'b'  Need char = 'b'
4033    
4034  /^\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
4035  Capturing subpattern count = 4  Capturing subpattern count = 4
4036  Max back reference = 4  Max back reference = 4
4037    Partial matching not supported
4038  Options: anchored caseless  Options: anchored caseless
4039  No first char  No first char
4040  No need char  No need char
# Line 3865  No need char Line 4054  No need char
4054   2: <unset>   2: <unset>
4055   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4056   4: A   4: A
4057      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4058   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4059   1: <unset>   1: <unset>
4060   2: <unset>   2: <unset>
# Line 3873  No need char Line 4062  No need char
4062   4: A   4: A
4063      *** Failers      *** Failers
4064  No match  No match
4065      The quick brown fox      The quick brown fox
4066  No match  No match
4067    
4068  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4069  Capturing subpattern count = 2  Capturing subpattern count = 2
4070    Partial matching not supported
4071  Options: anchored  Options: anchored
4072  No first char  No first char
4073  No need char  No need char
# Line 3895  No need char Line 4085  No need char
4085  No match  No match
4086      ((2+2)*-3)-7)      ((2+2)*-3)-7)
4087  No match  No match
4088    
4089  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
4090  Capturing subpattern count = 2  Capturing subpattern count = 2
4091  Options: anchored  Options: anchored
4092  No first char  No first char
# Line 3905  No need char Line 4095  No need char
4095   0: xyz   0: xyz
4096   1: xyz   1: xyz
4097   2: y   2: y
4098      xxyzxyzz      xxyzxyzz
4099   0: xxyzxyzz   0: xxyzxyzz
4100   1: xxyzxyzz   1: xxyzxyzz
4101   2: xyzxyz   2: xyzxyz
# Line 3913  No need char Line 4103  No need char
4103  No match  No match
4104      xxyzz      xxyzz
4105  No match  No match
4106      xxyzxyzxyzz      xxyzxyzxyzz
4107  No match  No match
4108    
4109  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4110  Capturing subpattern count = 2  Capturing subpattern count = 2
4111    Partial matching not supported
4112  Options: extended  Options: extended
4113  First char = '<'  First char = '<'
4114  Need char = '>'  Need char = '>'
# Line 3937  Need char = '>' Line 4128  Need char = '>'
4128   0: <def>   0: <def>
4129   1: <def>   1: <def>
4130   2: <def>   2: <def>
4131      <abc<>def>      <abc<>def>
4132   0: <abc<>def>   0: <abc<>def>
4133   1: <abc<>def>   1: <abc<>def>
4134   2: <abc<>def>   2: <abc<>def>
4135      <abc<>      <abc<>
4136   0: <>   0: <>
4137   1: <>   1: <>
4138   2: <>   2: <>
# Line 3950  No match Line 4141  No match
4141      <abc      <abc
4142  No match  No match
4143    
4144  /(?1)/  /(?1)/I
4145  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4146    
4147  /((?2)(abc)/  /((?2)(abc)/I
4148  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4149    
4150  /^(abc)def(?1)/  /^(abc)def(?1)/I
4151  Capturing subpattern count = 1  Capturing subpattern count = 1
4152  Options: anchored  Options: anchored
4153  No first char  No first char
# Line 3965  No need char Line 4156  No need char
4156   0: abcdefabc   0: abcdefabc
4157   1: abc   1: abc
4158    
4159  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4160  Capturing subpattern count = 1  Capturing subpattern count = 1
4161  Options: anchored  Options: anchored
4162  No first char  No first char
# Line 3976  No need char Line 4167  No need char
4167      a=b      a=b
4168   0: a=b   0: a=b
4169   1: a   1: a
4170      a=bc      a=bc
4171   0: a=bc   0: a=bc
4172   1: a   1: a
4173    
4174  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4175  Capturing subpattern count = 2  Capturing subpattern count = 2
4176  Options: anchored  Options: anchored
4177  No first char  No first char
# Line 3993  No need char Line 4184  No need char
4184   0: a=b   0: a=b
4185   1: a   1: a
4186   2: b   2: b
4187      a=bc      a=bc
4188   0: a=bc   0: a=bc
4189   1: a   1: a
4190   2: c   2: c
4191    
4192  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4193  ------------------------------------------------------------------  ------------------------------------------------------------------
4194    0  33 Bra 0          Bra
4195    3   1 a          a
4196    6   6 Bra 1          CBra 1
4197    9   1 b          b
4198   12   6 Alt          Alt
4199   15   1 c          c
4200   18  12 Ket          Ket
4201   21   1 d          d
4202   24   6 Bra 2          CBra 2
4203   27   1 e          e
4204   30   6 Ket          Ket
4205   33  33 Ket          Ket
4206   36     End          End
4207  ------------------------------------------------------------------  ------------------------------------------------------------------
4208  Capturing subpattern count = 2  Capturing subpattern count = 2
4209  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4025  Need char = 'e' Line 4216  Need char = 'e'
4216   0: abde   0: abde
4217   1: b   1: b
4218   2: e   2: e
4219      acde      acde
4220   0: acde   0: acde
4221   1: c   1: c
4222   2: e   2: e
4223    
4224  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4225  ------------------------------------------------------------------  ------------------------------------------------------------------
4226    0  39 Bra 0          Bra
4227    3  24 Bra 0          Bra
4228    6   1 a          a
4229    9  15 Bra 1          CBra 1
4230   12   1 c          c
4231   15   6 Bra 2          CBra 2
4232   18   1 d          d
4233   21   6 Ket          Ket
4234   24  15 Ket          Ket
4235   27  24 Ket          Ket
4236   30   6 Bra 3          CBra 3
4237   33   1 a          a
4238   36   6 Ket          Ket
4239   39  39 Ket          Ket
4240   42     End          End
4241  ------------------------------------------------------------------  ------------------------------------------------------------------
4242  Capturing subpattern count = 3  Capturing subpattern count = 3
4243  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4057  No options Line 4248  No options
4248  First char = 'a'  First char = 'a'
4249  Need char = 'a'  Need char = 'a'
4250    
4251  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4252  ------------------------------------------------------------------  ------------------------------------------------------------------
4253    0  29 Bra 0          Bra
4254    3   6 Bra 1          CBra 1
4255    6   1 a          a
4256    9   6 Ket          Ket
4257   12     Any          Any
4258   13     Any          Any
4259   14     Any          Any
4260   15     \1          \1
4261   18   3 bbb          bbb
4262   23   3 Recurse          Once
4263   26   1 d          Recurse
4264   29  29 Ket          Ket
4265   32     End          d
4266            Ket
4267            End
4268  ------------------------------------------------------------------  ------------------------------------------------------------------
4269  Capturing subpattern count = 1  Capturing subpattern count = 1
4270  Max back reference = 1  Max back reference = 1
# Line 4081  No options Line 4274  No options
4274  First char = 'a'  First char = 'a'
4275  Need char = 'd'  Need char = 'd'
4276    
4277  /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/i  /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
4278  Capturing subpattern count = 4  Capturing subpattern count = 4
4279  Max back reference = 4  Max back reference = 4
4280  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4089  Named capturing subpatterns: Line 4282  Named capturing subpatterns:
4282    one     1    one     1
4283    three   3    three   3
4284    two     2    two     2
4285    Partial matching not supported
4286  Options: anchored caseless  Options: anchored caseless
4287  No first char  No first char
4288  No need char  No need char
# Line 4108  No need char Line 4302  No need char
4302   2: <unset>   2: <unset>
4303   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4304   4: A   4: A
4305      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4306   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4307   1: <unset>   1: <unset>
4308   2: <unset>   2: <unset>
# Line 4116  No need char Line 4310  No need char
4310   4: A   4: A
4311      *** Failers      *** Failers
4312  No match  No match
4313      The quick brown fox      The quick brown fox
4314  No match  No match
4315    
4316  /((?(R)a|b))\1(?1)?/  /((?(R)a|b))\1(?1)?/I
4317  Capturing subpattern count = 1  Capturing subpattern count = 1
4318  Max back reference = 1  Max back reference = 1
4319  No options  No options
# Line 4128  No need char Line 4322  No need char
4322    bb    bb
4323   0: bb   0: bb
4324   1: b   1: b
4325    bbaa    bbaa
4326   0: bba   0: bba
4327   1: b   1: b
4328    
4329  /(.*)a/sI  /(.*)a/Is
4330  Capturing subpattern count = 1  Capturing subpattern count = 1
4331    Partial matching not supported
4332  Options: anchored dotall  Options: anchored dotall
4333  No first char  No first char
4334  Need char = 'a'  Need char = 'a'
4335    
4336  /(.*)a\1/sI  /(.*)a\1/Is
4337  Capturing subpattern count = 1  Capturing subpattern count = 1
4338  Max back reference = 1  Max back reference = 1
4339    Partial matching not supported
4340  Options: dotall  Options: dotall
4341  No first char  No first char
4342  Need char = 'a'  Need char = 'a'
4343    
4344  /(.*)a(b)\2/sI  /(.*)a(b)\2/Is
4345  Capturing subpattern count = 2  Capturing subpattern count = 2
4346  Max back reference = 2  Max back reference = 2
4347    Partial matching not supported
4348  Options: anchored dotall  Options: anchored dotall
4349  No first char  No first char
4350  Need char = 'b'  Need char = 'b'
4351    
4352  /((.*)a|(.*)b)z/sI  /((.*)a|(.*)b)z/Is
4353  Capturing subpattern count = 3  Capturing subpattern count = 3
4354    Partial matching not supported
4355  Options: anchored dotall  Options: anchored dotall
4356  No first char  No first char
4357  Need char = 'z'  Need char = 'z'
4358    
4359  /((.*)a|(.*)b)z\1/sI  /((.*)a|(.*)b)z\1/Is
4360  Capturing subpattern count = 3  Capturing subpattern count = 3
4361  Max back reference = 1  Max back reference = 1
4362    Partial matching not supported
4363  Options: dotall  Options: dotall
4364  No first char  No first char
4365  Need char = 'z'  Need char = 'z'
4366    
4367  /((.*)a|(.*)b)z\2/sI  /((.*)a|(.*)b)z\2/Is
4368  Capturing subpattern count = 3  Capturing subpattern count = 3
4369  Max back reference = 2  Max back reference = 2
4370    Partial matching not supported
4371  Options: dotall  Options: dotall
4372  No first char  No first char
4373  Need char = 'z'  Need char = 'z'
4374    
4375  /((.*)a|(.*)b)z\3/sI  /((.*)a|(.*)b)z\3/Is
4376  Capturing subpattern count = 3  Capturing subpattern count = 3
4377  Max back reference = 3  Max back reference = 3
4378    Partial matching not supported
4379  Options: dotall  Options: dotall
4380  No first char  No first char
4381  Need char = 'z'  Need char = 'z'
4382    
4383  /((.*)a|^(.*)b)z\3/sI  /((.*)a|^(.*)b)z\3/Is
4384  Capturing subpattern count = 3  Capturing subpattern count = 3
4385  Max back reference = 3  Max back reference = 3
4386    Partial matching not supported
4387  Options: anchored dotall  Options: anchored dotall
4388  No first char  No first char
4389  Need char = 'z'  Need char = 'z'
4390    
4391  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4392  Capturing subpattern count = 31  Capturing subpattern count = 31
4393    Partial matching not supported
4394  Options: anchored dotall  Options: anchored dotall
4395  No first char  No first char
4396  No need char  No need char
4397    
4398  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4399  Capturing subpattern count = 31  Capturing subpattern count = 31
4400  Max back reference = 31  Max back reference = 31
4401    Partial matching not supported
4402  Options: dotall  Options: dotall
4403  No first char  No first char
4404  No need char  No need char
4405    
4406  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4407  Capturing subpattern count = 32  Capturing subpattern count = 32
4408  Max back reference = 32  Max back reference = 32
4409    Partial matching not supported
4410  Options: dotall  Options: dotall
4411  No first char  No first char
4412  No need char  No need char
4413    
4414  /(a)(bc)/ND  /(a)(bc)/INDZ
4415  ------------------------------------------------------------------  ------------------------------------------------------------------
4416    0  22 Bra 0          Bra
4417    3   6 Bra 0          Bra
4418    6   1 a          a
4419    9   6 Ket          Ket
4420   12   7 Bra 0          Bra
4421   15   2 bc          bc
4422   19   7 Ket          Ket
4423   22  22 Ket          Ket
4424   25     End          End
4425  ------------------------------------------------------------------  ------------------------------------------------------------------
4426  Capturing subpattern count = 0  Capturing subpattern count = 0
4427  Options:  Options: no_auto_capture
4428  First char = 'a'  First char = 'a'
4429  Need char = 'c'  Need char = 'c'
4430    abc    abc
4431   0: abc   0: abc
4432    
4433  /(?P<one>a)(bc)/ND  /(?P<one>a)(bc)/INDZ
4434  ------------------------------------------------------------------  ------------------------------------------------------------------
4435    0  22 Bra 0          Bra
4436    3   6 Bra 1          CBra 1
4437    6   1 a          a
4438    9   6 Ket          Ket
4439   12   7 Bra 0          Bra
4440   15   2 bc          bc
4441   19   7 Ket          Ket
4442   22  22 Ket          Ket
4443   25     End          End
4444  ------------------------------------------------------------------  ------------------------------------------------------------------
4445  Capturing subpattern count = 1  Capturing subpattern count = 1
4446  Named capturing subpatterns:  Named capturing subpatterns:
4447    one   1    one   1
4448  Options:  Options: no_auto_capture
4449  First char = 'a'  First char = 'a'
4450  Need char = 'c'  Need char = 'c'
4451    abc    abc
4452   0: abc   0: abc
4453   1: a   1: a
4454    
4455  /(a)(?P<named>bc)/ND  /(a)(?P<named>bc)/INDZ
4456  ------------------------------------------------------------------  ------------------------------------------------------------------
4457    0  22 Bra 0          Bra
4458    3   6 Bra 0          Bra
4459    6   1 a          a
4460    9   6 Ket          Ket
4461   12   7 Bra 1          CBra 1
4462   15   2 bc          bc
4463   19   7 Ket          Ket