/[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 45 by nigel, Sat Feb 24 21:39:25 2007 UTC revision 143 by ph10, Mon Apr 2 10:08:14 2007 UTC
# Line 1  Line 1 
1  PCRE version 3.1 09-Feb-2000  /(a)b|/I
   
 /(a)b|/  
2  Capturing subpattern count = 1  Capturing subpattern count = 1
3  No options  No options
4  No first char  No first char
5  No need char  No need char
6    
7  /abc/  /abc/I
8  Capturing subpattern count = 0  Capturing subpattern count = 0
9  No options  No options
10  First char = 'a'  First char = 'a'
# Line 24  No match Line 22  No match
22      ABC      ABC
23  No match  No match
24    
25  /^abc/  /^abc/I
26  Capturing subpattern count = 0  Capturing subpattern count = 0
27  Options: anchored  Options: anchored
28  No first char  No first char
29  Need char = 'c'  No need char
30      abc      abc
31   0: abc   0: abc
32      \Aabc      \Aabc
# Line 40  No match Line 38  No match
38      \Adefabc      \Adefabc
39  No match  No match
40    
41  /a+bc/  /a+bc/I
42  Capturing subpattern count = 0  Capturing subpattern count = 0
43    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
73  Need char = 'c'  No need char
74      abc      abc
75   0: abc   0: abc
76      *** Failers      *** Failers
# Line 76  No match Line 78  No match
78      def\nabc      def\nabc
79  No match  No match
80    
81  /ab\gdef/X  /ab\hdef/X
82  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
83    
84  /(?X)ab\gdef/X  /(?X)ab\hdef/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 91  Failed: number too big in {} quantifier Line 93  Failed: number too big in {} quantifier
93  /[abcd/  /[abcd/
94  Failed: missing terminating ] for character class at offset 5  Failed: missing terminating ] for character class at offset 5
95    
96  /[\B]/  /(?X)[\B]/
97  Failed: invalid escape sequence in character class at offset 2  Failed: invalid escape sequence in character class at offset 6
   
 /[a-\w]/  
 Failed: invalid escape sequence in character class at offset 4  
98    
99  /[z-a]/  /[z-a]/
100  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
# Line 112  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 134  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 183  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 \x0b \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
193    
194  /(ab\2)/  /(ab\2)/
195  Failed: back reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
196    
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 221  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 269  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 284  No match Line 285  No match
285  No match  No match
286    
287  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
288  Failed: back 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 296  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
304  Need char = 'x'  No need char
305      the quick brown fox      the quick brown fox
306   0: the quick brown fox   0: the quick brown fox
307      *** Failers      *** Failers
# Line 311  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 321  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 336  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 357  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 397  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 486  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'  First char = 'a' (caseless)
503  Need char = 'c'  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  Need char = '4'  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 557  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 2  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
597  Case state changes  First char = 'b' (caseless)
598  No first char  Need char = 'h' (caseless)
 Need char = 'h'  
599    
600  /((?i)b)/DS  /((?i)b)/IDS
601  ------------------------------------------------------------------  ------------------------------------------------------------------
602    0  16 Bra 0    0  17 Bra 0
603    3   8 Bra 1    3   9 Bra 1
604    6  01 Opt    8  01 Opt
605    8   1 b   10  NC b
606   11   8 Ket   12   9 Ket
607   14  00 Opt   15  00 Opt
608   16  16 Ket   17  17 Ket
609   19     End   20     End
610  ------------------------------------------------------------------  ------------------------------------------------------------------
611  Capturing subpattern count = 1  Capturing subpattern count = 1
612  No options  No options
613  Case state changes  First char = 'b' (caseless)
614  No first char  No need char
615  Need char = 'b'  Study returned NULL
 Starting character set: B b  
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 618  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 634  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  Need char = 'c'  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  Need char = 'a'  No need char
675    aaaaabbbbbcccccdef    aaaaabbbbbcccccdef
676   0: aaaaabbbbbcccccdef   0: aaaaabbbbbcccccdef
677   1: aaaaabbbbbcccccdef   1: aaaaabbbbbcccccdef
# Line 666  Need char = 'a' Line 680  Need char = 'a'
680   4: bbbbccccc   4: bbbbccccc
681   5: def   5: def
682    
683  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
684  Capturing subpattern count = 0  Capturing subpattern count = 0
685  No options  No options
686  No first char  No first char
687  No need char  No need char
688  Starting character set: a b  Starting byte set: a b
689    
690  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
691  Capturing subpattern count = 1  Capturing subpattern count = 1
692  No options  No options
693  No first char  No first char
694  Need char = 'a'  Need char = 'a'
695  Starting character set: a o  Starting byte set: a o
696    
697  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
698  Capturing subpattern count = 0  Capturing subpattern count = 0
699  No options  No options
700  No first char  No first char
701  No need char  No need char
702  Starting character set: a b  Starting byte set: a b
703    
704    /(?<=foo\n)^bar/Im
705    Capturing subpattern count = 0
706    Options: multiline
707    No first char
708    Need char = 'r'
709        foo\nbarbar
710     0: bar
711        ***Failers
712    No match
713        rhubarb
714    No match
715        barbell
716    No match
717        abc\nbarton
718    No match
719    
720  /(?<=foo\n)^bar/m  /^(?<=foo\n)bar/Im
721  Capturing subpattern count = 0  Capturing subpattern count = 0
722  Options: multiline  Options: multiline
723  First char at start or follows \n  First char at start or follows newline
724  Need char = 'r'  Need char = 'r'
725        foo\nbarbar
726     0: bar
727        ***Failers
728    No match
729        rhubarb
730    No match
731        barbell
732    No match
733        abc\nbarton
734    No match
735    
736  /(?>^abc)/m  /(?>^abc)/Im
737  Capturing subpattern count = 0  Capturing subpattern count = 0
738  Options: multiline  Options: multiline
739  First char at start or follows \n  First char at start or follows newline
740  Need char = 'c'  Need char = 'c'
741      abc      abc
742   0: abc   0: abc
# Line 704  Need char = 'c' Line 744  Need char = 'c'
744   0: abc   0: abc
745      *** Failers      *** Failers
746  No match  No match
747      defabc      defabc
748  No match  No match
749    
750  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 717  Failed: lookbehind assertion is not fixe Line 757  Failed: lookbehind assertion is not fixe
757  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
758    
759  /The next three are in testinput2 because they have variable length branches/  /The next three are in testinput2 because they have variable length branches/
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 's'  
760    
761  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
762  Capturing subpattern count = 0  Capturing subpattern count = 0
763  No options  No options
764  First char = '-'  First char = '-'
# Line 735  Need char = 't' Line 771  Need char = 't'
771  No match  No match
772      cart      cart
773  No match  No match
774      horse-and-cart      horse-and-cart
775  No match  No match
776    
777  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
778  Capturing subpattern count = 0  Capturing subpattern count = 0
779  No options  No options
 Case state changes  
780  No first char  No first char
781  No need char  No need char
782    
783  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
784  Capturing subpattern count = 2  Capturing subpattern count = 2
785    Partial matching not supported
786  No options  No options
787  First char at start or follows \n  First char at start or follows newline
788  No need char  No need char
789      alphabetabcd      alphabetabcd
790   0: alphabetabcd   0: alphabetabcd
# Line 758  No need char Line 794  No need char
794   1: <unset>   1: <unset>
795   2: xyz   2: xyz
796    
797  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
798  Capturing subpattern count = 0  Capturing subpattern count = 0
799  No options  No options
 Case state changes  
800  First char = 'Z'  First char = 'Z'
801  Need char = 'Z'  Need char = 'Z'
802      abxyZZ      abxyZZ
# Line 774  Need char = 'Z' Line 809  Need char = 'Z'
809   0: ZZ   0: ZZ
810      bZZ      bZZ
811   0: ZZ   0: ZZ
812      BZZ      BZZ
813   0: ZZ   0: ZZ
814      *** Failers      *** Failers
815  No match  No match
816      ZZ      ZZ
817  No match  No match
818      abXYZZ      abXYZZ
819  No match  No match
820      zzz      zzz
821  No match  No match
822      bzz      bzz
823  No match  No match
824    
825  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
826  Capturing subpattern count = 1  Capturing subpattern count = 1
827  No options  No options
828  First char = 'b'  First char = 'b'
829  Need char = 'r'  Need char = 'r'
830      bar      bar
831   0: bar   0: bar
832      foobbar      foobbar
833   0: bar   0: bar
834      *** Failers      *** Failers
835  No match  No match
836      fooabar      fooabar
837  No match  No match
838    
839  /This one is here because Perl 5.005_02 doesn't fail it/  /This one is here because Perl 5.005_02 doesn't fail it/I
840  Capturing subpattern count = 0  Capturing subpattern count = 0
841  No options  No options
842  First char = 'T'  First char = 'T'
843  Need char = 't'  Need char = 't'
844    
845  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
846  Capturing subpattern count = 1  Capturing subpattern count = 1
847  Options: anchored  Options: anchored
848  No first char  No first char
849  No need char  No need char
850      *** Failers      *** Failers
851  No match  No match
852      a      a
853  No match  No match
854    
855  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I
856  Capturing subpattern count = 0  Capturing subpattern count = 0
857  No options  No options
858  First char = 'T'  First char = 'T'
859  Need char = 'g'  Need char = 'g'
860    
861  /^(a\1?){4}$/  /^(a\1?){4}$/I
862  Capturing subpattern count = 1  Capturing subpattern count = 1
863  Max back reference = 1  Max back reference = 1
864  Options: anchored  Options: anchored
865  No first char  No first char
866  Need char = 'a'  No need char
867      aaaaaa      aaaaaa
868   0: aaaaaa   0: aaaaaa
869   1: aa   1: aa
870    
871  /These are syntax tests from Perl 5.005/  /These are syntax tests from Perl 5.005/I
872  Capturing subpattern count = 0  Capturing subpattern count = 0
873  No options  No options
874  First char = 'T'  First char = 'T'
# Line 867  Failed: nothing to repeat at offset 2 Line 902  Failed: nothing to repeat at offset 2
902  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
903    
904  /\1/  /\1/
905  Failed: back reference to non-existent subpattern at offset 2  Failed: reference to non-existent subpattern at offset 2
906    
907  /\2/  /\2/
908  Failed: back reference to non-existent subpattern at offset 2  Failed: reference to non-existent subpattern at offset 2
909    
910  /(a)|\2/  /(a)|\2/
911  Failed: back reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
912    
913  /a[b-a]/i  /a[b-a]/Ii
914  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
915    
916  /a[]b/i  /a[]b/Ii
917  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
918    
919  /a[/i  /a[/Ii
920  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
921    
922  /*a/i  /*a/Ii
923  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
924    
925  /(*)b/i  /(*)b/Ii
926  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
927    
928  /abc)/i  /abc)/Ii
929  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
930    
931  /(abc/i  /(abc/Ii
932  Failed: missing ) at offset 4  Failed: missing ) at offset 4
933    
934  /a**/i  /a**/Ii
935  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
936    
937  /)(/i  /)(/Ii
938  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
939    
940  /:(?:/  /:(?:/
941  Failed: missing ) at offset 4  Failed: missing ) at offset 4
942    
943  /(?<%)b/  /(?<%)b/
944  Failed: unrecognized character after (?< at offset 0  Failed: unrecognized character after (?< at offset 3
945    
946  /a(?{)b/  /a(?{)b/
947  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? at offset 3
# Line 924  Failed: unrecognized character after (? Line 959  Failed: unrecognized character after (?
959  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? at offset 3
960    
961  /(?(1?)a|b)/  /(?(1?)a|b)/
962  Failed: malformed number after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
963    
964  /(?(1)a|b|c)/  /(?(1)a|b|c)/
965  Failed: conditional group contains more than two branches at offset 10  Failed: conditional group contains more than two branches at offset 10
# Line 947  Failed: POSIX code 9: bad escape sequenc Line 982  Failed: POSIX code 9: bad escape sequenc
982  /abc/\i  /abc/\i
983  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
984    
985  /(a)bc(d)/  /(a)bc(d)/I
986  Capturing subpattern count = 2  Capturing subpattern count = 2
987  No options  No options
988  First char = 'a'  First char = 'a'
# Line 966  Need char = 'd' Line 1001  Need char = 'd'
1001   1: a   1: a
1002   2: d   2: d
1003  copy substring 5 failed -7  copy substring 5 failed -7
1004    
1005  /(.{20})/  /(.{20})/I
1006  Capturing subpattern count = 1  Capturing subpattern count = 1
1007    Partial matching not supported
1008  No options  No options
1009  No first char  No first char
1010  No need char  No need char
# Line 978  No need char Line 1014  No need char
1014      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1015   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1016   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1017  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1018      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1019   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1020   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1021   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1022    
1023  /(.{15})/  /(.{15})/I
1024  Capturing subpattern count = 1  Capturing subpattern count = 1
1025    Partial matching not supported
1026  No options  No options
1027  No first char  No first char
1028  No need char  No need char
# Line 998  No need char Line 1035  No need char
1035   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1036   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1037    
1038  /(.{16})/  /(.{16})/I
1039  Capturing subpattern count = 1  Capturing subpattern count = 1
1040    Partial matching not supported
1041  No options  No options
1042  No first char  No first char
1043  No need char  No need char
# Line 1009  No need char Line 1047  No need char
1047      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1048   0: abcdefghijklmnop   0: abcdefghijklmnop
1049   1: abcdefghijklmnop   1: abcdefghijklmnop
1050  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1051   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1052   0L abcdefghijklmnop   0L abcdefghijklmnop
1053   1L abcdefghijklmnop   1L abcdefghijklmnop
1054    
1055  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1056  Capturing subpattern count = 3  Capturing subpattern count = 3
1057  Options: anchored  Options: anchored
1058  No first char  No first char
1059  Need char = 'f'  No need char
1060      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1061   0: adef   0: adef
1062   1: a   1: a
1063   2: <unset>   2: <unset>
# Line 1032  get substring 4 failed -7 Line 1070  get substring 4 failed -7
1070   1L a   1L a
1071   2L   2L
1072   3L f   3L f
1073      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1074   0: bcdef   0: bcdef
1075   1: bc   1: bc
1076   2: bc   2: bc
# Line 1045  get substring 4 failed -7 Line 1083  get substring 4 failed -7
1083   1L bc   1L bc
1084   2L bc   2L bc
1085   3L f   3L f
1086      adefghijk\C0      adefghijk\C0
1087   0: adef   0: adef
1088   1: a   1: a
1089   2: <unset>   2: <unset>
1090   3: f   3: f
1091   0C adef (4)   0C adef (4)
1092    
1093  /^abc\00def/  /^abc\00def/I
1094  Capturing subpattern count = 0  Capturing subpattern count = 0
1095  Options: anchored  Options: anchored
1096  No first char  No first char
1097  Need char = 'f'  No need char
1098      abc\00def\L\C0      abc\00def\L\C0
1099   0: abc\x00def   0: abc\x00def
1100   0C abc (7)   0C abc (7)
1101   0L abc   0L abc
1102    
1103  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1104  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1105  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/IM
1106  Memory allocation (code space): 428  Memory allocation (code space): 444
1107  Capturing subpattern count = 8  Capturing subpattern count = 8
1108    Partial matching not supported
1109  No options  No options
1110  First char = 'w'  First char = 'w'
1111  Need char = 'd'  Need char = 'd'
1112    
1113  /.*X/D  /.*X/ID
1114  ------------------------------------------------------------------  ------------------------------------------------------------------
1115    0   8 Bra 0    0   7 Bra 0
1116    3     Any*    3     Any*
1117    5   1 X    5     X
1118    8   8 Ket    7   7 Ket
1119   11     End   10     End
1120  ------------------------------------------------------------------  ------------------------------------------------------------------
1121  Capturing subpattern count = 0  Capturing subpattern count = 0
1122    Partial matching not supported
1123  No options  No options
1124  First char at start or follows \n  First char at start or follows newline
1125  Need char = 'X'  Need char = 'X'
1126    
1127  /.*X/Ds  /.*X/IDs
1128  ------------------------------------------------------------------  ------------------------------------------------------------------
1129    0   8 Bra 0    0   7 Bra 0
1130    3     Any*    3     Any*
1131    5   1 X    5     X
1132    8   8 Ket    7   7 Ket
1133   11     End   10     End
1134  ------------------------------------------------------------------  ------------------------------------------------------------------
1135  Capturing subpattern count = 0  Capturing subpattern count = 0
1136    Partial matching not supported
1137  Options: anchored dotall  Options: anchored dotall
1138  No first char  No first char
1139  Need char = 'X'  Need char = 'X'
1140    
1141  /(.*X|^B)/D  /(.*X|^B)/ID
1142  ------------------------------------------------------------------  ------------------------------------------------------------------
1143    0  21 Bra 0    0  21 Bra 0
1144    3   8 Bra 1    3   9 Bra 1
1145    6     Any*    8     Any*
1146    8   1 X   10     X
1147   11   7 Alt   12   6 Alt
1148   14     ^   15     ^
1149   15   1 B   16     B
1150   18  15 Ket   18  15 Ket
1151   21  21 Ket   21  21 Ket
1152   24     End   24     End
1153  ------------------------------------------------------------------  ------------------------------------------------------------------
1154  Capturing subpattern count = 1  Capturing subpattern count = 1
1155    Partial matching not supported
1156  No options  No options
1157  First char at start or follows \n  First char at start or follows newline
1158  No need char  No need char
1159    
1160  /(.*X|^B)/Ds  /(.*X|^B)/IDs
1161  ------------------------------------------------------------------  ------------------------------------------------------------------
1162    0  21 Bra 0    0  21 Bra 0
1163    3   8 Bra 1    3   9 Bra 1
1164    6     Any*    8     Any*
1165    8   1 X   10     X
1166   11   7 Alt   12   6 Alt
1167   14     ^   15     ^
1168   15   1 B   16     B
1169   18  15 Ket   18  15 Ket
1170   21  21 Ket   21  21 Ket
1171   24     End   24     End
1172  ------------------------------------------------------------------  ------------------------------------------------------------------
1173  Capturing subpattern count = 1  Capturing subpattern count = 1
1174    Partial matching not supported
1175  Options: anchored dotall  Options: anchored dotall
1176  No first char  No first char
1177  No need char  No need char
1178    
1179  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/ID
1180  ------------------------------------------------------------------  ------------------------------------------------------------------
1181    0  21 Bra 0    0  21 Bra 0
1182    3   8 Bra 1    3   9 Bra 1
1183    6     Any*    8     Any*
1184    8   1 X   10     X
1185   11   7 Alt   12   6 Alt
1186   14     ^   15     ^
1187   15   1 B   16     B
1188   18  15 Ket   18  15 Ket
1189   21  21 Ket   21  21 Ket
1190   24     End   24     End
1191  ------------------------------------------------------------------  ------------------------------------------------------------------
1192  Capturing subpattern count = 1  Capturing subpattern count = 1
1193    Partial matching not supported
1194  Options: anchored dotall  Options: anchored dotall
1195  No first char  No first char
1196  No need char  No need char
1197    
1198  /(?s:.*X|^B)/D  /(?s:.*X|^B)/ID
1199  ------------------------------------------------------------------  ------------------------------------------------------------------
1200    0  27 Bra 0    0  25 Bra 0
1201    3  10 Bra 0    3   9 Bra 0
1202    6  04 Opt    6  04 Opt
1203    8     Any*    8     Any*
1204   10   1 X   10     X
1205   13   9 Alt   12   8 Alt
1206   16  04 Opt   15  04 Opt
1207   18     ^   17     ^
1208   19   1 B   18     B
1209   22  19 Ket   20  17 Ket
1210   25  00 Opt   23  00 Opt
1211   27  27 Ket   25  25 Ket
1212   30     End   28     End
1213  ------------------------------------------------------------------  ------------------------------------------------------------------
1214  Capturing subpattern count = 0  Capturing subpattern count = 0
1215    Partial matching not supported
1216  No options  No options
1217  First char at start or follows \n  First char at start or follows newline
1218  No need char  No need char
1219    
1220  /\Biss\B/+  /\Biss\B/I+
1221  Capturing subpattern count = 0  Capturing subpattern count = 0
1222  No options  No options
1223  First char = 'i'  First char = 'i'
# Line 1181  Need char = 's' Line 1226  Need char = 's'
1226   0: iss   0: iss
1227   0+ issippi   0+ issippi
1228    
1229  /\Biss\B/+P  /\Biss\B/I+P
1230      Mississippi      Mississippi
1231   0: iss   0: iss
1232   0+ issippi   0+ issippi
1233    
1234  /iss/G+  /iss/IG+
1235  Capturing subpattern count = 0  Capturing subpattern count = 0
1236  No options  No options
1237  First char = 'i'  First char = 'i'
# Line 1197  Need char = 's' Line 1242  Need char = 's'
1242   0: iss   0: iss
1243   0+ ippi   0+ ippi
1244    
1245  /\Biss\B/G+  /\Biss\B/IG+
1246  Capturing subpattern count = 0  Capturing subpattern count = 0
1247  No options  No options
1248  First char = 'i'  First char = 'i'
# Line 1206  Need char = 's' Line 1251  Need char = 's'
1251   0: iss   0: iss
1252   0+ issippi   0+ issippi
1253    
1254  /\Biss\B/g+  /\Biss\B/Ig+
1255  Capturing subpattern count = 0  Capturing subpattern count = 0
1256  No options  No options
1257  First char = 'i'  First char = 'i'
# Line 1221  No match Line 1266  No match
1266      Mississippi\A      Mississippi\A
1267  No match  No match
1268    
1269  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1270  Capturing subpattern count = 0  Capturing subpattern count = 0
1271  No options  No options
1272  First char = 'i'  First char = 'i'
# Line 1232  Need char = 's' Line 1277  Need char = 's'
1277   0: iss   0: iss
1278   0+ ippi   0+ ippi
1279    
1280  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1281  Capturing subpattern count = 0  Capturing subpattern count = 0
1282  No options  No options
1283  First char = 'i'  First char = 'i'
# Line 1241  Need char = 's' Line 1286  Need char = 's'
1286   0: iss   0: iss
1287   0+ issippi   0+ issippi
1288    
1289  /^iss/g+  /^iss/Ig+
1290  Capturing subpattern count = 0  Capturing subpattern count = 0
1291  Options: anchored  Options: anchored
1292  No first char  No first char
1293  Need char = 's'  No need char
1294      ississippi      ississippi
1295   0: iss   0: iss
1296   0+ issippi   0+ issippi
1297    
1298  /.*iss/g+  /.*iss/Ig+
1299  Capturing subpattern count = 0  Capturing subpattern count = 0
1300    Partial matching not supported
1301  No options  No options
1302  First char at start or follows \n  First char at start or follows newline
1303  Need char = 's'  Need char = 's'
1304      abciss\nxyzisspqr      abciss\nxyzisspqr
1305   0: abciss   0: abciss
1306   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1307   0: xyziss   0: xyziss
1308   0+ pqr   0+ pqr
1309    
1310  /.i./+g  /.i./I+g
1311  Capturing subpattern count = 0  Capturing subpattern count = 0
1312  No options  No options
1313  No first char  No first char
# Line 1287  Need char = 'i' Line 1333  Need char = 'i'
1333   0+ river   0+ river
1334   0: riv   0: riv
1335   0+ er   0+ er
1336      Missouri river\A      Missouri river\A
1337   0: Mis   0: Mis
1338   0+ souri river   0+ souri river
1339    
1340  /^.is/+g  /^.is/I+g
1341  Capturing subpattern count = 0  Capturing subpattern count = 0
1342  Options: anchored  Options: anchored
1343  No first char  No first char
1344  Need char = 's'  No need char
1345      Mississippi      Mississippi
1346   0: Mis   0: Mis
1347   0+ sissippi   0+ sissippi
1348    
1349  /^ab\n/g+  /^ab\n/Ig+
1350  Capturing subpattern count = 0  Capturing subpattern count = 0
1351  Options: anchored  Options: anchored
1352  No first char  No first char
1353  Need char = 10  No need char
1354      ab\nab\ncd      ab\nab\ncd
1355   0: ab\x0a   0: ab\x0a
1356   0+ ab\x0acd   0+ ab\x0acd
1357    
1358  /^ab\n/mg+  /^ab\n/Img+
1359  Capturing subpattern count = 0  Capturing subpattern count = 0
1360  Options: multiline  Options: multiline
1361  First char at start or follows \n  First char at start or follows newline
1362  Need char = 10  Need char = 10
1363      ab\nab\ncd      ab\nab\ncd
1364   0: ab\x0a   0: ab\x0a
# Line 1320  Need char = 10 Line 1366  Need char = 10
1366   0: ab\x0a   0: ab\x0a
1367   0+ cd   0+ cd
1368    
1369  /abc/  /abc/I
1370  Capturing subpattern count = 0  Capturing subpattern count = 0
1371  No options  No options
1372  First char = 'a'  First char = 'a'
1373  Need char = 'c'  Need char = 'c'
1374    
1375  /abc|bac/  /abc|bac/I
1376  Capturing subpattern count = 0  Capturing subpattern count = 0
1377  No options  No options
1378  No first char  No first char
1379  Need char = 'c'  Need char = 'c'
1380    
1381  /(abc|bac)/  /(abc|bac)/I
1382  Capturing subpattern count = 1  Capturing subpattern count = 1
1383  No options  No options
1384  No first char  No first char
1385  Need char = 'c'  Need char = 'c'
1386    
1387  /(abc|(c|dc))/  /(abc|(c|dc))/I
1388  Capturing subpattern count = 2  Capturing subpattern count = 2
1389  No options  No options
1390  No first char  No first char
1391  Need char = 'c'  Need char = 'c'
1392    
1393  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1394  Capturing subpattern count = 2  Capturing subpattern count = 2
1395  No options  No options
1396  No first char  No first char
1397  Need char = 'c'  Need char = 'c'
1398    
1399  /a*/  /a*/I
1400  Capturing subpattern count = 0  Capturing subpattern count = 0
1401    Partial matching not supported
1402  No options  No options
1403  No first char  No first char
1404  No need char  No need char
1405    
1406  /a+/  /a+/I
1407  Capturing subpattern count = 0  Capturing subpattern count = 0
1408    Partial matching not supported
1409  No options  No options
1410  First char = 'a'  First char = 'a'
1411  No need char  No need char
1412    
1413  /(baa|a+)/  /(baa|a+)/I
1414  Capturing subpattern count = 1  Capturing subpattern count = 1
1415    Partial matching not supported
1416  No options  No options
1417  No first char  No first char
1418  Need char = 'a'  Need char = 'a'
1419    
1420  /a{0,3}/  /a{0,3}/I
1421  Capturing subpattern count = 0  Capturing subpattern count = 0
1422    Partial matching not supported
1423  No options  No options
1424  No first char  No first char
1425  No need char  No need char
1426    
1427  /baa{3,}/  /baa{3,}/I
1428  Capturing subpattern count = 0  Capturing subpattern count = 0
1429    Partial matching not supported
1430  No options  No options
1431  First char = 'b'  First char = 'b'
1432  Need char = 'a'  Need char = 'a'
1433    
1434  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1435  Capturing subpattern count = 1  Capturing subpattern count = 1
1436    Partial matching not supported
1437  No options  No options
1438  First char = '"'  First char = '"'
1439  Need char = '"'  Need char = '"'
1440    
1441  /(abc|ab[cd])/  /(abc|ab[cd])/I
1442  Capturing subpattern count = 1  Capturing subpattern count = 1
1443  No options  No options
1444  First char = 'a'  First char = 'a'
1445  No need char  No need char
1446    
1447  /(a|.)/  /(a|.)/I
1448  Capturing subpattern count = 1  Capturing subpattern count = 1
1449  No options  No options
1450  No first char  No first char
1451  No need char  No need char
1452    
1453  /a|ba|\w/  /a|ba|\w/I
1454  Capturing subpattern count = 0  Capturing subpattern count = 0
1455  No options  No options
1456  No first char  No first char
1457  No need char  No need char
1458    
1459  /abc(?=pqr)/  /abc(?=pqr)/I
1460  Capturing subpattern count = 0  Capturing subpattern count = 0
1461  No options  No options
1462  First char = 'a'  First char = 'a'
1463  Need char = 'r'  Need char = 'r'
1464    
1465  /...(?<=abc)/  /...(?<=abc)/I
1466  Capturing subpattern count = 0  Capturing subpattern count = 0
1467  No options  No options
1468  No first char  No first char
1469  No need char  No need char
1470    
1471  /abc(?!pqr)/  /abc(?!pqr)/I
1472  Capturing subpattern count = 0  Capturing subpattern count = 0
1473  No options  No options
1474  First char = 'a'  First char = 'a'
1475  Need char = 'c'  Need char = 'c'
1476    
1477  /ab./  /ab./I
1478  Capturing subpattern count = 0  Capturing subpattern count = 0
1479  No options  No options
1480  First char = 'a'  First char = 'a'
1481  Need char = 'b'  Need char = 'b'
1482    
1483  /ab[xyz]/  /ab[xyz]/I
1484  Capturing subpattern count = 0  Capturing subpattern count = 0
1485  No options  No options
1486  First char = 'a'  First char = 'a'
1487  Need char = 'b'  Need char = 'b'
1488    
1489  /abc*/  /abc*/I
1490  Capturing subpattern count = 0  Capturing subpattern count = 0
1491    Partial matching not supported
1492  No options  No options
1493  First char = 'a'  First char = 'a'
1494  Need char = 'b'  Need char = 'b'
1495    
1496  /ab.c*/  /ab.c*/I
1497  Capturing subpattern count = 0  Capturing subpattern count = 0
1498    Partial matching not supported
1499  No options  No options
1500  First char = 'a'  First char = 'a'
1501  Need char = 'b'  Need char = 'b'
1502    
1503  /a.c*/  /a.c*/I
1504  Capturing subpattern count = 0  Capturing subpattern count = 0
1505    Partial matching not supported
1506  No options  No options
1507  First char = 'a'  First char = 'a'
1508  No need char  No need char
1509    
1510  /.c*/  /.c*/I
1511  Capturing subpattern count = 0  Capturing subpattern count = 0
1512    Partial matching not supported
1513  No options  No options
1514  No first char  No first char
1515  No need char  No need char
1516    
1517  /ac*/  /ac*/I
1518  Capturing subpattern count = 0  Capturing subpattern count = 0
1519    Partial matching not supported
1520  No options  No options
1521  First char = 'a'  First char = 'a'
1522  No need char  No need char
1523    
1524  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1525  Capturing subpattern count = 1  Capturing subpattern count = 1
1526    Partial matching not supported
1527  No options  No options
1528  No first char  No first char
1529  No need char  No need char
1530    
1531  /a.c*|aba/  /a.c*|aba/I
1532  Capturing subpattern count = 0  Capturing subpattern count = 0
1533    Partial matching not supported
1534  No options  No options
1535  First char = 'a'  First char = 'a'
1536  No need char  No need char
1537    
1538  /.+a/  /.+a/I
1539  Capturing subpattern count = 0  Capturing subpattern count = 0
1540    Partial matching not supported
1541  No options  No options
1542  No first char  No first char
1543  Need char = 'a'  Need char = 'a'
1544    
1545  /(?=abcda)a.*/  /(?=abcda)a.*/I
1546  Capturing subpattern count = 0  Capturing subpattern count = 0
1547    Partial matching not supported
1548  No options  No options
1549  First char = 'a'  First char = 'a'
1550  No need char  Need char = 'a'
1551    
1552  /(?=a)a.*/  /(?=a)a.*/I
1553  Capturing subpattern count = 0  Capturing subpattern count = 0
1554    Partial matching not supported
1555  No options  No options
1556  First char = 'a'  First char = 'a'
1557  No need char  No need char
1558    
1559  /a(b)*/  /a(b)*/I
1560  Capturing subpattern count = 1  Capturing subpattern count = 1
1561  No options  No options
1562  First char = 'a'  First char = 'a'
1563  No need char  No need char
1564    
1565  /a\d*/  /a\d*/I
1566  Capturing subpattern count = 0  Capturing subpattern count = 0
1567    Partial matching not supported
1568  No options  No options
1569  First char = 'a'  First char = 'a'
1570  No need char  No need char
1571    
1572  /ab\d*/  /ab\d*/I
1573  Capturing subpattern count = 0  Capturing subpattern count = 0
1574    Partial matching not supported
1575  No options  No options
1576  First char = 'a'  First char = 'a'
1577  Need char = 'b'  Need char = 'b'
1578    
1579  /a(\d)*/  /a(\d)*/I
1580  Capturing subpattern count = 1  Capturing subpattern count = 1
1581  No options  No options
1582  First char = 'a'  First char = 'a'
1583  No need char  No need char
1584    
1585  /abcde{0,0}/  /abcde{0,0}/I
1586  Capturing subpattern count = 0  Capturing subpattern count = 0
1587  No options  No options
1588  First char = 'a'  First char = 'a'
1589  Need char = 'd'  Need char = 'd'
1590    
1591  /ab\d+/  /ab\d+/I
1592  Capturing subpattern count = 0  Capturing subpattern count = 0
1593    Partial matching not supported
1594  No options  No options
1595  First char = 'a'  First char = 'a'
1596  Need char = 'b'  Need char = 'b'
1597    
1598  /a(?(1)b)/  /a(?(1)b)/I
1599  Capturing subpattern count = 0  Capturing subpattern count = 0
1600  No options  No options
1601  First char = 'a'  First char = 'a'
1602  No need char  No need char
1603    
1604  /a(?(1)bag|big)/  /a(?(1)bag|big)/I
1605  Capturing subpattern count = 0  Capturing subpattern count = 0
1606  No options  No options
1607  First char = 'a'  First char = 'a'
1608  Need char = 'g'  Need char = 'g'
1609    
1610  /a(?(1)bag|big)*/  /a(?(1)bag|big)*/I
1611  Capturing subpattern count = 0  Capturing subpattern count = 0
1612  No options  No options
1613  First char = 'a'  First char = 'a'
1614  No need char  No need char
1615    
1616  /a(?(1)bag|big)+/  /a(?(1)bag|big)+/I
1617  Capturing subpattern count = 0  Capturing subpattern count = 0
1618  No options  No options
1619  First char = 'a'  First char = 'a'
1620  Need char = 'g'  Need char = 'g'
1621    
1622  /a(?(1)b..|b..)/  /a(?(1)b..|b..)/I
1623  Capturing subpattern count = 0  Capturing subpattern count = 0
1624  No options  No options
1625  First char = 'a'  First char = 'a'
1626  Need char = 'b'  Need char = 'b'
1627    
1628  /ab\d{0}e/  /ab\d{0}e/I
1629  Capturing subpattern count = 0  Capturing subpattern count = 0
1630  No options  No options
1631  First char = 'a'  First char = 'a'
1632  Need char = 'e'  Need char = 'e'
1633    
1634  /a?b?/  /a?b?/I
1635  Capturing subpattern count = 0  Capturing subpattern count = 0
1636  No options  No options
1637  No first char  No first char
# Line 1581  No need char Line 1646  No need char
1646   0:   0:
1647      *** Failers      *** Failers
1648   0:   0:
1649      \N      \N
1650  No match  No match
1651    
1652  /|-/  /|-/I
1653  Capturing subpattern count = 0  Capturing subpattern count = 0
1654  No options  No options
1655  No first char  No first char
# Line 1597  No need char Line 1662  No need char
1662   0: -   0: -
1663      *** Failers      *** Failers
1664   0:   0:
1665      \Nabc      \Nabc
1666  No match  No match
1667    
1668  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/IP
1669      aaaabbbbzzzz      aaaabbbbzzzz
1670   0: aaaabbbbzz   0: aaaabbbbzz
1671   1: bbbb   1: bbbb
# Line 1626  No match Line 1691  No match
1691   1: bbbb   1: bbbb
1692   2: z   2: z
1693   3: z   3: z
1694    
1695  /^.?abcd/S  /^.?abcd/IS
1696  Capturing subpattern count = 0  Capturing subpattern count = 0
1697  Options: anchored  Options: anchored
1698  No first char  No first char
# Line 1641  Study returned NULL Line 1706  Study returned NULL
1706    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1707    )*            # Zero or more contents    )*            # Zero or more contents
1708    \)            # Closing )    \)            # Closing )
1709    /x    /Ix
1710  Capturing subpattern count = 0  Capturing subpattern count = 0
1711    Partial matching not supported
1712  Options: extended  Options: extended
1713  First char = '('  First char = '('
1714  Need char = ')'  Need char = ')'
# Line 1652  Need char = ')' Line 1718  Need char = ')'
1718   0: (abcd)   0: (abcd)
1719      xyz(abcd)      xyz(abcd)
1720   0: (abcd)   0: (abcd)
1721      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1722   0: (ab(xy)cd)   0: (ab(xy)cd)
1723      (ab(xycd)pqr      (ab(xycd)pqr
1724   0: (xycd)   0: (xycd)
1725      () abc ()      () abc ()
1726   0: ()   0: ()
1727      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1728   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1729      *** Failers      *** Failers
1730  No match  No match
1731      abcd      abcd
1732  No match  No match
1733      abcd)      abcd)
1734  No match  No match
1735      (abcd      (abcd
1736  No match  No match
1737    
1738  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1739  Capturing subpattern count = 1  Capturing subpattern count = 1
1740    Partial matching not supported
1741  Options: extended  Options: extended
1742  First char = '('  First char = '('
1743  Need char = ')'  Need char = ')'
1744      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1745   0: (ab(xy)cd)   0: (ab(xy)cd)
1746   1: cd   1: cd
1747      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1683  Need char = ')' Line 1750  Need char = ')'
1750   0: (x(y)z)   0: (x(y)z)
1751   1: z   1: z
1752    
1753  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1754  Capturing subpattern count = 0  Capturing subpattern count = 0
1755    Partial matching not supported
1756  Options: extended  Options: extended
1757  First char = '('  First char = '('
1758  Need char = ')'  Need char = ')'
# Line 1692  Need char = ')' Line 1760  Need char = ')'
1760   0: (abcd)   0: (abcd)
1761      (ab(xy)cd)      (ab(xy)cd)
1762   0: (xy)   0: (xy)
1763      (a(b(c)d)e)      (a(b(c)d)e)
1764   0: (c)   0: (c)
1765      ((ab))      ((ab))
1766   0: ((ab))   0: ((ab))
1767      *** Failers      *** Failers
1768  No match  No match
1769      ()      ()
1770  No match  No match
1771    
1772  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1773  Capturing subpattern count = 0  Capturing subpattern count = 0
1774    Partial matching not supported
1775  Options: extended  Options: extended
1776  First char = '('  First char = '('
1777  Need char = ')'  Need char = ')'
# Line 1711  Need char = ')' Line 1780  Need char = ')'
1780      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1781   0: (fsh)   0: (fsh)
1782    
1783  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1784  Capturing subpattern count = 1  Capturing subpattern count = 1
1785    Partial matching not supported
1786  Options: extended  Options: extended
1787  First char = '('  First char = '('
1788  Need char = ')'  Need char = ')'
# Line 1720  Need char = ')' Line 1790  Need char = ')'
1790   0: (ab(xy)cd)   0: (ab(xy)cd)
1791   1: cd   1: cd
1792    
1793  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1794  Capturing subpattern count = 2  Capturing subpattern count = 2
1795    Partial matching not supported
1796  Options: extended  Options: extended
1797  First char = '('  First char = '('
1798  Need char = ')'  Need char = ')'
# Line 1730  Need char = ')' Line 1801  Need char = ')'
1801   1: ab(xy)cd   1: ab(xy)cd
1802   2: cd   2: cd
1803    
1804  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1805  Capturing subpattern count = 3  Capturing subpattern count = 3
1806    Partial matching not supported
1807  Options: extended  Options: extended
1808  First char = '('  First char = '('
1809  Need char = ')'  Need char = ')'
# Line 1746  Need char = ')' Line 1818  Need char = ')'
1818   2: ab(xy)cd   2: ab(xy)cd
1819   3: cd   3: cd
1820    
1821  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1822  Capturing subpattern count = 3  Capturing subpattern count = 3
1823    Partial matching not supported
1824  Options: extended  Options: extended
1825  First char = '('  First char = '('
1826  Need char = ')'  Need char = ')'
# Line 1762  Need char = ')' Line 1835  Need char = ')'
1835   2: 123   2: 123
1836   3: cd   3: cd
1837    
1838  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1839  Capturing subpattern count = 11  Capturing subpattern count = 11
1840    Partial matching not supported
1841  Options: extended  Options: extended
1842  First char = '('  First char = '('
1843  Need char = ')'  Need char = ')'
# Line 1781  Need char = ')' Line 1855  Need char = ')'
1855  10: ab(xy)cd  10: ab(xy)cd
1856  11: cd  11: cd
1857    
1858  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1859  Capturing subpattern count = 3  Capturing subpattern count = 3
1860    Partial matching not supported
1861  Options: extended  Options: extended
1862  First char = '('  First char = '('
1863  Need char = ')'  Need char = ')'
# Line 1790  Need char = ')' Line 1865  Need char = ')'
1865   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1866   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1867   2: 123   2: 123
1868   3: <p>qrs   3: <unset>
1869    
1870  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1871  Capturing subpattern count = 3  Capturing subpattern count = 3
1872    Partial matching not supported
1873  Options: extended  Options: extended
1874  First char = '('  First char = '('
1875  Need char = ')'  Need char = ')'
# Line 1821  Options: anchored Line 1897  Options: anchored
1897  No first char  No first char
1898  No need char  No need char
1899    
1900    /^[[:^alnum:]]/D
1901    ------------------------------------------------------------------
1902      0  37 Bra 0
1903      3     ^
1904      4     [\x00-/:-@[-`{-\xff]
1905     37  37 Ket
1906     40     End
1907    ------------------------------------------------------------------
1908    Capturing subpattern count = 0
1909    Options: anchored
1910    No first char
1911    No need char
1912    
1913  /^[[:alpha:]]/D  /^[[:alpha:]]/D
1914  ------------------------------------------------------------------  ------------------------------------------------------------------
1915    0  37 Bra 0    0  37 Bra 0
# Line 1833  Capturing subpattern count = 0 Line 1922  Capturing subpattern count = 0
1922  Options: anchored  Options: anchored
1923  No first char  No first char
1924  No need char  No need char
1925    
1926    /^[[:^alpha:]]/D
1927    ------------------------------------------------------------------
1928      0  37 Bra 0
1929      3     ^
1930      4     [\x00-@[-`{-\xff]
1931     37  37 Ket
1932     40     End
1933    ------------------------------------------------------------------
1934    Capturing subpattern count = 0
1935    Options: anchored
1936    No first char
1937    No need char
1938    
1939    /[_[:alpha:]]/IS
1940    Capturing subpattern count = 0
1941    No options
1942    No first char
1943    No need char
1944    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
1945      _ 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
1946    
1947  /^[[:ascii:]]/D  /^[[:ascii:]]/D
1948  ------------------------------------------------------------------  ------------------------------------------------------------------
1949    0  37 Bra 0    0  37 Bra 0
# Line 1847  Options: anchored Line 1957  Options: anchored
1957  No first char  No first char
1958  No need char  No need char
1959    
1960    /^[[:^ascii:]]/D
1961    ------------------------------------------------------------------
1962      0  37 Bra 0
1963      3     ^
1964      4     [\x80-\xff]
1965     37  37 Ket
1966     40     End
1967    ------------------------------------------------------------------
1968    Capturing subpattern count = 0
1969    Options: anchored
1970    No first char
1971    No need char
1972    
1973    /^[[:blank:]]/D
1974    ------------------------------------------------------------------
1975      0  37 Bra 0
1976      3     ^
1977      4     [\x09 ]
1978     37  37 Ket
1979     40     End
1980    ------------------------------------------------------------------
1981    Capturing subpattern count = 0
1982    Options: anchored
1983    No first char
1984    No need char
1985    
1986    /^[[:^blank:]]/D
1987    ------------------------------------------------------------------
1988      0  37 Bra 0
1989      3     ^
1990      4     [\x00-\x08\x0a-\x1f!-\xff]
1991     37  37 Ket
1992     40     End
1993    ------------------------------------------------------------------
1994    Capturing subpattern count = 0
1995    Options: anchored
1996    No first char
1997    No need char
1998    
1999    /[\n\x0b\x0c\x0d[:blank:]]/IS
2000    Capturing subpattern count = 0
2001    No options
2002    No first char
2003    No need char
2004    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2005    
2006  /^[[:cntrl:]]/D  /^[[:cntrl:]]/D
2007  ------------------------------------------------------------------  ------------------------------------------------------------------
2008    0  37 Bra 0    0  37 Bra 0
# Line 1994  No need char Line 2150  No need char
2150  ------------------------------------------------------------------  ------------------------------------------------------------------
2151    0  37 Bra 0    0  37 Bra 0
2152    3     ^    3     ^
2153    4     [\x00-/1-2:-\xff]    4     [\x00-/12:-\xff]
2154     37  37 Ket
2155     40     End
2156    ------------------------------------------------------------------
2157    Capturing subpattern count = 0
2158    Options: anchored
2159    No first char
2160    No need char
2161    
2162    /^[[:^blank:]]/D
2163    ------------------------------------------------------------------
2164      0  37 Bra 0
2165      3     ^
2166      4     [\x00-\x08\x0a-\x1f!-\xff]
2167   37  37 Ket   37  37 Ket
2168   40     End   40     End
2169  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2006  No need char Line 2175  No need char
2175  /[01[:alpha:]%]/D  /[01[:alpha:]%]/D
2176  ------------------------------------------------------------------  ------------------------------------------------------------------
2177    0  36 Bra 0    0  36 Bra 0
2178    3     [%0-1A-Za-z]    3     [%01A-Za-z]
2179   36  36 Ket   36  36 Ket
2180   39     End   39     End
2181  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2015  No options Line 2184  No options
2184  No first char  No first char
2185  No need char  No need char
2186    
2187  /[[.ch.]]/  /[[.ch.]]/I
2188  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2189    
2190  /[[=ch=]]/  /[[=ch=]]/I
2191  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2192    
2193  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2194  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2195    
2196  /[[:upper:]]/i  /[[:upper:]]/Ii
2197  Capturing subpattern count = 0  Capturing subpattern count = 0
2198  Options: caseless  Options: caseless
2199  No first char  No first char
2200  No need char  No need char
2201      A      A
2202   0: A   0: A
2203      a      a
2204   0: a   0: a
2205    
2206  /[[:lower:]]/i  /[[:lower:]]/Ii
2207  Capturing subpattern count = 0  Capturing subpattern count = 0
2208  Options: caseless  Options: caseless
2209  No first char  No first char
2210  No need char  No need char
2211      A      A
2212   0: A   0: A
2213      a      a
2214   0: a   0: a
2215    
2216  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2217  Capturing subpattern count = 1  Capturing subpattern count = 1
2218  Options: caseless  Options: caseless
 Case state changes  
2219  No first char  No first char
2220  No need char  No need char
2221      ab      ab
# Line 2061  No need char Line 2229  No need char
2229   1: a   1: a
2230      Ab      Ab
2231  No match  No match
2232      AB      AB
2233  No match  No match
2234    
2235  / End of test input /  /[\200-\110]/I
2236    Failed: range out of order in character class at offset 9
2237    
2238    /^(?(0)f|b)oo/I
2239    Failed: invalid condition (?(0) at offset 6
2240    
2241    /This one's here because of the large output vector needed/I
2242  Capturing subpattern count = 0  Capturing subpattern count = 0
2243  No options  No options
2244  First char = ' '  First char = 'T'
2245  Need char = ' '  Need char = 'd'
2246    
2247    /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2248    Capturing subpattern count = 271
2249    Max back reference = 270
2250    Partial matching not supported
2251    No options
2252    No first char
2253    No need char
2254        \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
2255     0: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
2256     1: 1
2257     2: 2
2258     3: 3
2259     4: 4
2260     5: 5
2261     6: 6
2262     7: 7
2263     8: 8
2264     9: 9
2265    10: 10
2266    11: 11
2267    12: 12
2268    13: 13
2269    14: 14
2270    15: 15
2271    16: 16
2272    17: 17
2273    18: 18
2274    19: 19
2275    20: 20
2276    21: 21
2277    22: 22
2278    23: 23
2279    24: 24
2280    25: 25
2281    26: 26
2282    27: 27
2283    28: 28
2284    29: 29
2285    30: 30
2286    31: 31
2287    32: 32
2288    33: 33
2289    34: 34
2290    35: 35
2291    36: 36
2292    37: 37
2293    38: 38
2294    39: 39
2295    40: 40
2296    41: 41
2297    42: 42
2298    43: 43
2299    44: 44
2300    45: 45
2301    46: 46
2302    47: 47
2303    48: 48
2304    49: 49
2305    50: 50
2306    51: 51
2307    52: 52
2308    53: 53
2309    54: 54
2310    55: 55
2311    56: 56
2312    57: 57
2313    58: 58
2314    59: 59
2315    60: 60
2316    61: 61
2317    62: 62
2318    63: 63
2319    64: 64
2320    65: 65
2321    66: 66
2322    67: 67
2323    68: 68
2324    69: 69
2325    70: 70
2326    71: 71
2327    72: 72
2328    73: 73
2329    74: 74
2330    75: 75
2331    76: 76
2332    77: 77
2333    78: 78
2334    79: 79
2335    80: 80
2336    81: 81
2337    82: 82
2338    83: 83
2339    84: 84
2340    85: 85
2341    86: 86
2342    87: 87
2343    88: 88
2344    89: 89
2345    90: 90
2346    91: 91
2347    92: 92
2348    93: 93
2349    94: 94
2350    95: 95
2351    96: 96
2352    97: 97
2353    98: 98
2354    99: 99
2355    100: 100
2356    101: 101
2357    102: 102
2358    103: 103
2359    104: 104
2360    105: 105
2361    106: 106
2362    107: 107
2363    108: 108
2364    109: 109
2365    110: 110
2366    111: 111
2367    112: 112
2368    113: 113
2369    114: 114
2370    115: 115
2371    116: 116
2372    117: 117
2373    118: 118
2374    119: 119
2375    120: 120
2376    121: 121
2377    122: 122
2378    123: 123
2379    124: 124
2380    125: 125
2381    126: 126
2382    127: 127
2383    128: 128
2384    129: 129
2385    130: 130
2386    131: 131
2387    132: 132
2388    133: 133
2389    134: 134
2390    135: 135
2391    136: 136
2392    137: 137
2393    138: 138
2394    139: 139
2395    140: 140
2396    141: 141
2397    142: 142
2398    143: 143
2399    144: 144
2400    145: 145
2401    146: 146
2402    147: 147
2403    148: 148
2404    149: 149
2405    150: 150
2406    151: 151
2407    152: 152
2408    153: 153
2409    154: 154
2410    155: 155
2411    156: 156
2412    157: 157
2413    158: 158
2414    159: 159
2415    160: 160
2416    161: 161
2417    162: 162
2418    163: 163
2419    164: 164
2420    165: 165
2421    166: 166
2422    167: 167
2423    168: 168
2424    169: 169
2425    170: 170
2426    171: 171
2427    172: 172
2428    173: 173
2429    174: 174
2430    175: 175
2431    176: 176
2432    177: 177
2433    178: 178
2434    179: 179
2435    180: 180
2436    181: 181
2437    182: 182
2438    183: 183
2439    184: 184
2440    185: 185
2441    186: 186
2442    187: 187
2443    188: 188
2444    189: 189
2445    190: 190
2446    191: 191
2447    192: 192
2448    193: 193
2449    194: 194
2450    195: 195
2451    196: 196
2452    197: 197
2453    198: 198
2454    199: 199
2455    200: 200
2456    201: 201
2457    202: 202
2458    203: 203
2459    204: 204
2460    205: 205
2461    206: 206
2462    207: 207
2463    208: 208
2464    209: 209
2465    210: 210
2466    211: 211
2467    212: 212
2468    213: 213
2469    214: 214
2470    215: 215
2471    216: 216
2472    217: 217
2473    218: 218
2474    219: 219
2475    220: 220
2476    221: 221
2477    222: 222
2478    223: 223
2479    224: 224
2480    225: 225
2481    226: 226
2482    227: 227
2483    228: 228
2484    229: 229
2485    230: 230
2486    231: 231
2487    232: 232
2488    233: 233
2489    234: 234
2490    235: 235
2491    236: 236
2492    237: 237
2493    238: 238
2494    239: 239
2495    240: 240
2496    241: 241
2497    242: 242
2498    243: 243
2499    244: 244
2500    245: 245
2501    246: 246
2502    247: 247
2503    248: 248
2504    249: 249
2505    250: 250
2506    251: 251
2507    252: 252
2508    253: 253
2509    254: 254
2510    255: 255
2511    256: 256
2512    257: 257
2513    258: 258
2514    259: 259
2515    260: 260
2516    261: 261
2517    262: 262
2518    263: 263
2519    264: 264
2520    265: 265
2521    266: 266
2522    267: 267
2523    268: 268
2524    269: 269
2525    270: ABC
2526    271: ABC
2527    
2528    /This one's here because Perl does this differently and PCRE can't at present/I
2529    Capturing subpattern count = 0
2530    No options
2531    First char = 'T'
2532    Need char = 't'
2533    
2534    /(main(O)?)+/I
2535    Capturing subpattern count = 2
2536    No options
2537    First char = 'm'
2538    Need char = 'n'
2539        mainmain
2540     0: mainmain
2541     1: main
2542        mainOmain
2543     0: mainOmain
2544     1: main
2545     2: O
2546    
2547    /These are all cases where Perl does it differently (nested captures)/I
2548    Capturing subpattern count = 1
2549    No options
2550    First char = 'T'
2551    Need char = 's'
2552    
2553    /^(a(b)?)+$/I
2554    Capturing subpattern count = 2
2555    Options: anchored
2556    No first char
2557    No need char
2558        aba
2559     0: aba
2560     1: a
2561     2: b
2562    
2563    /^(aa(bb)?)+$/I
2564    Capturing subpattern count = 2
2565    Options: anchored
2566    No first char
2567    No need char
2568        aabbaa
2569     0: aabbaa
2570     1: aa
2571     2: bb
2572    
2573    /^(aa|aa(bb))+$/I
2574    Capturing subpattern count = 2
2575    Options: anchored
2576    No first char
2577    No need char
2578        aabbaa
2579     0: aabbaa
2580     1: aa
2581     2: bb
2582    
2583    /^(aa(bb)??)+$/I
2584    Capturing subpattern count = 2
2585    Options: anchored
2586    No first char
2587    No need char
2588        aabbaa
2589     0: aabbaa
2590     1: aa
2591     2: bb
2592    
2593    /^(?:aa(bb)?)+$/I
2594    Capturing subpattern count = 1
2595    Options: anchored
2596    No first char
2597    No need char
2598        aabbaa
2599     0: aabbaa
2600     1: bb
2601    
2602    /^(aa(b(b))?)+$/I
2603    Capturing subpattern count = 3
2604    Options: anchored
2605    No first char
2606    No need char
2607        aabbaa
2608     0: aabbaa
2609     1: aa
2610     2: bb
2611     3: b
2612    
2613    /^(?:aa(b(b))?)+$/I
2614    Capturing subpattern count = 2
2615    Options: anchored
2616    No first char
2617    No need char
2618        aabbaa
2619     0: aabbaa
2620     1: bb
2621     2: b
2622    
2623    /^(?:aa(b(?:b))?)+$/I
2624    Capturing subpattern count = 1
2625    Options: anchored
2626    No first char
2627    No need char
2628        aabbaa
2629     0: aabbaa
2630     1: bb
2631    
2632    /^(?:aa(bb(?:b))?)+$/I
2633    Capturing subpattern count = 1
2634    Options: anchored
2635    No first char
2636    No need char
2637        aabbbaa
2638     0: aabbbaa
2639     1: bbb
2640    
2641    /^(?:aa(b(?:bb))?)+$/I
2642    Capturing subpattern count = 1
2643    Options: anchored
2644    No first char
2645    No need char
2646        aabbbaa
2647     0: aabbbaa
2648     1: bbb
2649    
2650    /^(?:aa(?:b(b))?)+$/I
2651    Capturing subpattern count = 1
2652    Options: anchored
2653    No first char
2654    No need char
2655        aabbaa
2656     0: aabbaa
2657     1: b
2658    
2659    /^(?:aa(?:b(bb))?)+$/I
2660    Capturing subpattern count = 1
2661    Options: anchored
2662    No first char
2663    No need char
2664        aabbbaa
2665     0: aabbbaa
2666     1: bb
2667    
2668    /^(aa(b(bb))?)+$/I
2669    Capturing subpattern count = 3
2670    Options: anchored
2671    No first char
2672    No need char
2673        aabbbaa
2674     0: aabbbaa
2675     1: aa
2676     2: bbb
2677     3: bb
2678    
2679    /^(aa(bb(bb))?)+$/I
2680    Capturing subpattern count = 3
2681    Options: anchored
2682    No first char
2683    No need char
2684        aabbbbaa
2685     0: aabbbbaa
2686     1: aa
2687     2: bbbb
2688     3: bb
2689    
2690    /--------------------------------------------------------------------/I
2691    Capturing subpattern count = 0
2692    No options
2693    First char = '-'
2694    Need char = '-'
2695    
2696    /#/IxMD
2697    Memory allocation (code space): 7
2698    ------------------------------------------------------------------
2699      0   3 Bra 0
2700      3   3 Ket
2701      6     End
2702    ------------------------------------------------------------------
2703    Capturing subpattern count = 0
2704    Options: extended
2705    No first char
2706    No need char
2707    
2708    /a#/IxMD
2709    Memory allocation (code space): 9
2710    ------------------------------------------------------------------
2711      0   5 Bra 0
2712      3     a
2713      5   5 Ket
2714      8     End
2715    ------------------------------------------------------------------
2716    Capturing subpattern count = 0
2717    Options: extended
2718    First char = 'a'
2719    No need char
2720    
2721    /[\s]/D
2722    ------------------------------------------------------------------
2723      0  36 Bra 0
2724      3     [\x09\x0a\x0c\x0d ]
2725     36  36 Ket
2726     39     End
2727    ------------------------------------------------------------------
2728    Capturing subpattern count = 0
2729    No options
2730    No first char
2731    No need char
2732    
2733    /[\S]/D
2734    ------------------------------------------------------------------
2735      0  36 Bra 0
2736      3     [\x00-\x08\x0b\x0e-\x1f!-\xff]
2737     36  36 Ket
2738     39     End
2739    ------------------------------------------------------------------
2740    Capturing subpattern count = 0
2741    No options
2742    No first char
2743    No need char
2744    
2745    /a(?i)b/D
2746    ------------------------------------------------------------------
2747      0   9 Bra 0
2748      3     a
2749      5  01 Opt
2750      7  NC b
2751      9   9 Ket
2752     12     End
2753    ------------------------------------------------------------------
2754    Capturing subpattern count = 0
2755    No options
2756    First char = 'a'
2757    Need char = 'b' (caseless)
2758        ab
2759     0: ab
2760        aB
2761     0: aB
2762        *** Failers
2763    No match
2764        AB
2765    No match
2766    
2767    /(a(?i)b)/D
2768    ------------------------------------------------------------------
2769      0  19 Bra 0
2770      3  11 Bra 1
2771      8     a
2772     10  01 Opt
2773     12  NC b
2774     14  11 Ket
2775     17  00 Opt
2776     19  19 Ket
2777     22     End
2778    ------------------------------------------------------------------
2779    Capturing subpattern count = 1
2780    No options
2781    First char = 'a'
2782    Need char = 'b' (caseless)
2783        ab
2784     0: ab
2785     1: ab
2786        aB
2787     0: aB
2788     1: aB
2789        *** Failers
2790    No match
2791        AB
2792    No match
2793    
2794    /   (?i)abc/IxD
2795    ------------------------------------------------------------------
2796      0   9 Bra 0
2797      3  NC abc
2798      9   9 Ket
2799     12     End
2800    ------------------------------------------------------------------
2801    Capturing subpattern count = 0
2802    Options: caseless extended
2803    First char = 'a' (caseless)
2804    Need char = 'c' (caseless)
2805    
2806    /#this is a comment
2807      (?i)abc/IxD
2808    ------------------------------------------------------------------
2809      0   9 Bra 0
2810      3  NC abc
2811      9   9 Ket
2812     12     End
2813    ------------------------------------------------------------------
2814    Capturing subpattern count = 0
2815    Options: caseless extended
2816    First char = 'a' (caseless)
2817    Need char = 'c' (caseless)
2818    
2819    /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D
2820    ------------------------------------------------------------------
2821      0 603 Bra 0
2822      3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2823    603 603 Ket
2824    606     End
2825    ------------------------------------------------------------------
2826    Capturing subpattern count = 0
2827    No options
2828    First char = '1'
2829    Need char = '0'
2830    
2831    /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D
2832    ------------------------------------------------------------------
2833      0 603 Bra 0
2834      3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2835    603 603 Ket
2836    606     End
2837    ------------------------------------------------------------------
2838    Capturing subpattern count = 0
2839    No options
2840    First char = '1'
2841    Need char = '0'
2842    
2843    /\Q\E/D
2844    ------------------------------------------------------------------
2845      0   3 Bra 0
2846      3   3 Ket
2847      6     End
2848    ------------------------------------------------------------------
2849    Capturing subpattern count = 0
2850    No options
2851    No first char
2852    No need char
2853        \
2854     0:
2855    
2856    /\Q\Ex/D
2857    ------------------------------------------------------------------
2858      0   5 Bra 0
2859      3     x
2860      5   5 Ket
2861      8     End
2862    ------------------------------------------------------------------
2863    Capturing subpattern count = 0
2864    No options
2865    First char = 'x'
2866    No need char
2867    
2868    / \Q\E/D
2869    ------------------------------------------------------------------
2870      0   5 Bra 0
2871      3
2872      5   5 Ket
2873      8     End
2874    ------------------------------------------------------------------
2875    Capturing subpattern count = 0
2876    No options
2877    First char = ' '
2878    No need char
2879    
2880    /a\Q\E/D
2881    ------------------------------------------------------------------
2882      0   5 Bra 0
2883      3     a
2884      5   5 Ket
2885      8     End
2886    ------------------------------------------------------------------
2887    Capturing subpattern count = 0
2888    No options
2889    First char = 'a'
2890    No need char
2891      abc
2892     0: a
2893      bca
2894     0: a
2895      bac
2896     0: a
2897    
2898    /a\Q\Eb/D
2899    ------------------------------------------------------------------
2900      0   7 Bra 0
2901      3     ab
2902      7   7 Ket
2903     10     End
2904    ------------------------------------------------------------------
2905    Capturing subpattern count = 0
2906    No options
2907    First char = 'a'
2908    Need char = 'b'
2909      abc
2910     0: ab
2911    
2912    /\Q\Eabc/D
2913    ------------------------------------------------------------------
2914      0   9 Bra 0
2915      3     abc
2916      9   9 Ket
2917     12     End
2918    ------------------------------------------------------------------
2919    Capturing subpattern count = 0
2920    No options
2921    First char = 'a'
2922    Need char = 'c'
2923    
2924    /x*+\w/D
2925    ------------------------------------------------------------------
2926      0   6 Bra 0
2927      3     x*+
2928      5     \w
2929      6   6 Ket
2930      9     End
2931    ------------------------------------------------------------------
2932    Capturing subpattern count = 0
2933    Partial matching not supported
2934    No options
2935    No first char
2936    No need char
2937        *** Failers
2938     0: F
2939        xxxxx
2940    No match
2941    
2942    /x?+/D
2943    ------------------------------------------------------------------
2944      0   5 Bra 0
2945      3     x?+
2946      5   5 Ket
2947      8     End
2948    ------------------------------------------------------------------
2949    Capturing subpattern count = 0
2950    No options
2951    No first char
2952    No need char
2953    
2954    /x++/D
2955    ------------------------------------------------------------------
2956      0   5 Bra 0
2957      3     x++
2958      5   5 Ket
2959      8     End
2960    ------------------------------------------------------------------
2961    Capturing subpattern count = 0
2962    Partial matching not supported
2963    No options
2964    First char = 'x'
2965    No need char
2966    
2967    /x{1,3}+/D
2968    ------------------------------------------------------------------
2969      0  15 Bra 0
2970      3   9 Once
2971      6     x
2972      8     x{0,2}
2973     12   9 Ket
2974     15  15 Ket
2975     18     End
2976    ------------------------------------------------------------------
2977    Capturing subpattern count = 0
2978    Partial matching not supported
2979    No options
2980    First char = 'x'
2981    No need char
2982    
2983    /(x)*+/D
2984    ------------------------------------------------------------------
2985      0  20 Bra 0
2986      3  14 Once
2987      6     Brazero
2988      7   7 Bra 1
2989     12     x
2990     14   7 KetRmax
2991     17  14 Ket
2992     20  20 Ket
2993     23     End
2994    ------------------------------------------------------------------
2995    Capturing subpattern count = 1
2996    No options
2997    No first char
2998    No need char
2999    
3000    /^(\w++|\s++)*$/I
3001    Capturing subpattern count = 1
3002    Partial matching not supported
3003    Options: anchored
3004    No first char
3005    No need char
3006        now is the time for all good men to come to the aid of the party
3007     0: now is the time for all good men to come to the aid of the party
3008     1: party
3009        *** Failers
3010    No match
3011        this is not a line with only words and spaces!
3012    No match
3013    
3014    /(\d++)(\w)/I
3015    Capturing subpattern count = 2
3016    Partial matching not supported
3017    No options
3018    No first char
3019    No need char
3020        12345a
3021     0: 12345a
3022     1: 12345
3023     2: a
3024        *** Failers
3025    No match
3026        12345+
3027    No match
3028    
3029    /a++b/I
3030    Capturing subpattern count = 0
3031    Partial matching not supported
3032    No options
3033    First char = 'a'
3034    Need char = 'b'
3035        aaab
3036     0: aaab
3037    
3038    /(a++b)/I
3039    Capturing subpattern count = 1
3040    Partial matching not supported
3041    No options
3042    First char = 'a'
3043    Need char = 'b'
3044        aaab
3045     0: aaab
3046     1: aaab
3047    
3048    /(a++)b/I
3049    Capturing subpattern count = 1
3050    Partial matching not supported
3051    No options
3052    First char = 'a'
3053    Need char = 'b'
3054        aaab
3055     0: aaab
3056     1: aaa
3057    
3058    /([^()]++|\([^()]*\))+/I
3059    Capturing subpattern count = 1
3060    Partial matching not supported
3061    No options
3062    No first char
3063    No need char
3064        ((abc(ade)ufh()()x
3065     0: abc(ade)ufh()()x
3066     1: x
3067    
3068    /\(([^()]++|\([^()]+\))+\)/I
3069    Capturing subpattern count = 1
3070    Partial matching not supported
3071    No options
3072    First char = '('
3073    Need char = ')'
3074        (abc)
3075     0: (abc)
3076     1: abc
3077        (abc(def)xyz)
3078     0: (abc(def)xyz)
3079     1: xyz
3080        *** Failers
3081    No match
3082        ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3083    No match
3084    
3085    /(abc){1,3}+/D
3086    ------------------------------------------------------------------
3087      0  59 Bra 0
3088      3  53 Once
3089      6  11 Bra 1
3090     11     abc
3091     17  11 Ket
3092     20     Brazero
3093     21  32 Bra 0
3094     24  11 Bra 1
3095     29     abc
3096     35  11 Ket
3097     38     Brazero
3098     39  11 Bra 1
3099     44     abc
3100     50  11 Ket
3101     53  32 Ket
3102     56  53 Ket
3103     59  59 Ket
3104     62     End
3105    ------------------------------------------------------------------
3106    Capturing subpattern count = 1
3107    No options
3108    First char = 'a'
3109    Need char = 'c'
3110    
3111    /a+?+/I
3112    Failed: nothing to repeat at offset 3
3113    
3114    /a{2,3}?+b/I
3115    Failed: nothing to repeat at offset 7
3116    
3117    /(?U)a+?+/I
3118    Failed: nothing to repeat at offset 7
3119    
3120    /a{2,3}?+b/IU
3121    Failed: nothing to repeat at offset 7
3122    
3123    /x(?U)a++b/D
3124    ------------------------------------------------------------------
3125      0   9 Bra 0
3126      3     x
3127      5     a++
3128      7     b
3129      9   9 Ket
3130     12     End
3131    ------------------------------------------------------------------
3132    Capturing subpattern count = 0
3133    Partial matching not supported
3134    No options
3135    First char = 'x'
3136    Need char = 'b'
3137        xaaaab
3138     0: xaaaab
3139    
3140    /(?U)xa++b/D
3141    ------------------------------------------------------------------
3142      0   9 Bra 0
3143      3     x
3144      5     a++
3145      7     b
3146      9   9 Ket
3147     12     End
3148    ------------------------------------------------------------------
3149    Capturing subpattern count = 0
3150    Partial matching not supported
3151    Options: ungreedy
3152    First char = 'x'
3153    Need char = 'b'
3154        xaaaab
3155     0: xaaaab
3156    
3157    /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D
3158    ------------------------------------------------------------------
3159      0 116 Bra 0
3160      3     ^
3161      4 109 Bra 1
3162      9   7 Bra 2
3163     14     a+
3164     16   7 Ket
3165     19  39 Bra 3
3166     24     [ab]+?
3167     58  39 Ket
3168     61  39 Bra 4
3169     66     [bc]+
3170    100  39 Ket
3171    103   7 Bra 5
3172    108     \w*
3173    110   7 Ket
3174    113 109 Ket
3175    116 116 Ket
3176    119     End
3177    ------------------------------------------------------------------
3178    Capturing subpattern count = 5
3179    Partial matching not supported
3180    Options: anchored
3181    No first char
3182    No need char
3183    
3184    /^x(?U)a+b/D
3185    ------------------------------------------------------------------
3186      0  10 Bra 0
3187      3     ^
3188      4     x
3189      6     a++
3190      8     b
3191     10  10 Ket
3192     13     End
3193    ------------------------------------------------------------------
3194    Capturing subpattern count = 0
3195    Partial matching not supported
3196    Options: anchored
3197    No first char
3198    Need char = 'b'
3199    
3200    /^x(?U)(a+)b/D
3201    ------------------------------------------------------------------
3202      0  18 Bra 0
3203      3     ^
3204      4     x
3205      6   7 Bra 1
3206     11     a+?
3207     13   7 Ket
3208     16     b
3209     18  18 Ket
3210     21     End
3211    ------------------------------------------------------------------
3212    Capturing subpattern count = 1
3213    Partial matching not supported
3214    Options: anchored
3215    No first char
3216    Need char = 'b'
3217    
3218    /[.x.]/I
3219    Failed: POSIX collating elements are not supported at offset 0
3220    
3221    /[=x=]/I
3222    Failed: POSIX collating elements are not supported at offset 0
3223    
3224    /[:x:]/I
3225    Failed: POSIX named classes are supported only within a class at offset 0
3226    
3227    /\l/I
3228    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3229    
3230    /\L/I
3231    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3232    
3233    /\N{name}/I
3234    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3235    
3236    /\u/I
3237    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3238    
3239    /\U/I
3240    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3241    
3242    /[/I
3243    Failed: missing terminating ] for character class at offset 1
3244    
3245    /[a-/I
3246    Failed: missing terminating ] for character class at offset 3
3247    
3248    /[[:space:]/I
3249    Failed: missing terminating ] for character class at offset 10
3250    
3251    /[\s]/IDM
3252    Memory allocation (code space): 40
3253    ------------------------------------------------------------------
3254      0  36 Bra 0
3255      3     [\x09\x0a\x0c\x0d ]
3256     36  36 Ket
3257     39     End
3258    ------------------------------------------------------------------
3259    Capturing subpattern count = 0
3260    No options
3261    No first char
3262    No need char
3263    
3264    /[[:space:]]/IDM
3265    Memory allocation (code space): 40
3266    ------------------------------------------------------------------
3267      0  36 Bra 0
3268      3     [\x09-\x0d ]
3269     36  36 Ket
3270     39     End
3271    ------------------------------------------------------------------
3272    Capturing subpattern count = 0
3273    No options
3274    No first char
3275    No need char
3276    
3277    /[[:space:]abcde]/IDM
3278    Memory allocation (code space): 40
3279    ------------------------------------------------------------------
3280      0  36 Bra 0
3281      3     [\x09-\x0d a-e]
3282     36  36 Ket
3283     39     End
3284    ------------------------------------------------------------------
3285    Capturing subpattern count = 0
3286    No options
3287    No first char
3288    No need char
3289    
3290    /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3291    Capturing subpattern count = 0
3292    Partial matching not supported
3293    Options: extended
3294    First char = '<'
3295    Need char = '>'
3296        <>
3297     0: <>
3298        <abcd>
3299     0: <abcd>
3300        <abc <123> hij>
3301     0: <abc <123> hij>
3302        <abc <def> hij>
3303     0: <def>
3304        <abc<>def>
3305     0: <abc<>def>
3306        <abc<>
3307     0: <>
3308        *** Failers
3309    No match
3310        <abc
3311    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|IDM
3314    Memory allocation (code space): 826
3315    ------------------------------------------------------------------
3316      0 822 Bra 0
3317      3     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
3318    821     \b
3319    822 822 Ket
3320    825     End
3321    ------------------------------------------------------------------
3322    Capturing subpattern count = 0
3323    No options
3324    First char = '8'
3325    Need char = 'X'
3326    
3327    |\$\<\.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|IDM
3328    Memory allocation (code space): 816
3329    ------------------------------------------------------------------
3330      0 812 Bra 0
3331      3     $<.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
3332    811     \b
3333    812 812 Ket
3334    815     End
3335    ------------------------------------------------------------------
3336    Capturing subpattern count = 0
3337    No options
3338    First char = '$'
3339    Need char = 'X'
3340    
3341    /(.*)\d+\1/I
3342    Capturing subpattern count = 1
3343    Max back reference = 1
3344    Partial matching not supported
3345    No options
3346    No first char
3347    No need char
3348    
3349    /(.*)\d+/I
3350    Capturing subpattern count = 1
3351    Partial matching not supported
3352    No options
3353    First char at start or follows newline
3354    No need char
3355    
3356    /(.*)\d+\1/Is
3357    Capturing subpattern count = 1
3358    Max back reference = 1
3359    Partial matching not supported
3360    Options: dotall
3361    No first char
3362    No need char
3363    
3364    /(.*)\d+/Is
3365    Capturing subpattern count = 1
3366    Partial matching not supported
3367    Options: anchored dotall
3368    No first char
3369    No need char
3370    
3371    /(.*(xyz))\d+\2/I
3372    Capturing subpattern count = 2
3373    Max back reference = 2
3374    Partial matching not supported
3375    No options
3376    First char at start or follows newline
3377    Need char = 'z'
3378    
3379    /((.*))\d+\1/I
3380    Capturing subpattern count = 2
3381    Max back reference = 1
3382    Partial matching not supported
3383    No options
3384    No first char
3385    No need char
3386        abc123bc
3387     0: bc123bc
3388     1: bc
3389     2: bc
3390    
3391    /a[b]/I
3392    Capturing subpattern count = 0
3393    No options
3394    First char = 'a'
3395    Need char = 'b'
3396    
3397    /(?=a).*/I
3398    Capturing subpattern count = 0
3399    Partial matching not supported
3400    No options
3401    First char = 'a'
3402    No need char
3403    
3404    /(?=abc).xyz/IiI
3405    Capturing subpattern count = 0
3406    Options: caseless
3407    First char = 'a' (caseless)
3408    Need char = 'z' (caseless)
3409    
3410    /(?=abc)(?i).xyz/I
3411    Capturing subpattern count = 0
3412    No options
3413    First char = 'a'
3414    Need char = 'z' (caseless)
3415    
3416    /(?=a)(?=b)/I
3417    Capturing subpattern count = 0
3418    No options
3419    First char = 'a'
3420    No need char
3421    
3422    /(?=.)a/I
3423    Capturing subpattern count = 0
3424    No options
3425    First char = 'a'
3426    No need char
3427    
3428    /((?=abcda)a)/I
3429    Capturing subpattern count = 1
3430    No options
3431    First char = 'a'
3432    Need char = 'a'
3433    
3434    /((?=abcda)ab)/I
3435    Capturing subpattern count = 1
3436    No options
3437    First char = 'a'
3438    Need char = 'b'
3439    
3440    /()a/I
3441    Capturing subpattern count = 1
3442    No options
3443    No first char
3444    Need char = 'a'
3445    
3446    /(?(1)ab|ac)/I
3447    Capturing subpattern count = 0
3448    No options
3449    First char = 'a'
3450    No need char
3451    
3452    /(?(1)abz|acz)/I
3453    Capturing subpattern count = 0
3454    No options
3455    First char = 'a'
3456    Need char = 'z'
3457    
3458    /(?(1)abz)/I
3459    Capturing subpattern count = 0
3460    No options
3461    No first char
3462    No need char
3463    
3464    /(?(1)abz)123/I
3465    Capturing subpattern count = 0
3466    No options
3467    No first char
3468    Need char = '3'
3469    
3470    /(a)+/I
3471    Capturing subpattern count = 1
3472    No options
3473    First char = 'a'
3474    No need char
3475    
3476    /(a){2,3}/I
3477    Capturing subpattern count = 1
3478    No options
3479    First char = 'a'
3480    Need char = 'a'
3481    
3482    /(a)*/I
3483    Capturing subpattern count = 1
3484    No options
3485    No first char
3486    No need char
3487    
3488    /[a]/I
3489    Capturing subpattern count = 0
3490    No options
3491    First char = 'a'
3492    No need char
3493    
3494    /[ab]/I
3495    Capturing subpattern count = 0
3496    No options
3497    No first char
3498    No need char
3499    
3500    /[ab]/IS
3501    Capturing subpattern count = 0
3502    No options
3503    No first char
3504    No need char
3505    Starting byte set: a b
3506    
3507    /[^a]/I
3508    Capturing subpattern count = 0
3509    No options
3510    No first char
3511    No need char
3512    
3513    /\d456/I
3514    Capturing subpattern count = 0
3515    No options
3516    No first char
3517    Need char = '6'
3518    
3519    /\d456/IS
3520    Capturing subpattern count = 0
3521    No options
3522    No first char
3523    Need char = '6'
3524    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3525    
3526    /a^b/I
3527    Capturing subpattern count = 0
3528    No options
3529    First char = 'a'
3530    Need char = 'b'
3531    
3532    /^a/Im
3533    Capturing subpattern count = 0
3534    Options: multiline
3535    First char at start or follows newline
3536    Need char = 'a'
3537      abcde
3538     0: a
3539      xy\nabc
3540     0: a
3541      *** Failers
3542    No match
3543      xyabc
3544    No match
3545    
3546    /c|abc/I
3547    Capturing subpattern count = 0
3548    No options
3549    No first char
3550    Need char = 'c'
3551    
3552    /(?i)[ab]/IS
3553    Capturing subpattern count = 0
3554    Options: caseless
3555    No first char
3556    No need char
3557    Starting byte set: A B a b
3558    
3559    /[ab](?i)cd/IS
3560    Capturing subpattern count = 0
3561    No options
3562    No first char
3563    Need char = 'd' (caseless)
3564    Starting byte set: a b
3565    
3566    /abc(?C)def/I
3567    Capturing subpattern count = 0
3568    No options
3569    First char = 'a'
3570    Need char = 'f'
3571        abcdef
3572    --->abcdef
3573      0 ^  ^       d
3574     0: abcdef
3575        1234abcdef
3576    --->1234abcdef
3577      0     ^  ^       d
3578     0: abcdef
3579        *** Failers
3580    No match
3581        abcxyz
3582    No match
3583        abcxyzf
3584    --->abcxyzf
3585      0 ^  ^        d
3586    No match
3587    
3588    /abc(?C)de(?C1)f/I
3589    Capturing subpattern count = 0
3590    No options
3591    First char = 'a'
3592    Need char = 'f'
3593        123abcdef
3594    --->123abcdef
3595      0    ^  ^       d
3596      1    ^    ^     f
3597     0: abcdef
3598    
3599    /(?C1)\dabc(?C2)def/I
3600    Capturing subpattern count = 0
3601    No options
3602    No first char
3603    Need char = 'f'
3604        1234abcdef
3605    --->1234abcdef
3606      1 ^              \d
3607      1  ^             \d
3608      1   ^            \d
3609      1    ^           \d
3610      2    ^   ^       d
3611     0: 4abcdef
3612        *** Failers
3613    No match
3614        abcdef
3615    --->abcdef
3616      1 ^          \d
3617      1  ^         \d
3618      1   ^        \d
3619      1    ^       \d
3620      1     ^      \d
3621      1      ^     \d
3622    No match
3623    
3624    /(?C255)ab/I
3625    Capturing subpattern count = 0
3626    No options
3627    First char = 'a'
3628    Need char = 'b'
3629    
3630    /(?C256)ab/I
3631    Failed: number after (?C is > 255 at offset 6
3632    
3633    /(?Cab)xx/I
3634    Failed: closing ) for (?C expected at offset 3
3635    
3636    /(?C12vr)x/I
3637    Failed: closing ) for (?C expected at offset 5
3638    
3639    /abc(?C)def/I
3640    Capturing subpattern count = 0
3641    No options
3642    First char = 'a'
3643    Need char = 'f'
3644        *** Failers
3645    No match
3646        \x83\x0\x61bcdef
3647    --->\x83\x00abcdef
3648      0         ^  ^       d
3649     0: abcdef
3650    
3651    /(abc)(?C)de(?C1)f/I
3652    Capturing subpattern count = 1
3653    No options
3654    First char = 'a'
3655    Need char = 'f'
3656        123abcdef
3657    --->123abcdef
3658      0    ^  ^       d
3659      1    ^    ^     f
3660     0: abcdef
3661     1: abc
3662        123abcdef\C+
3663    Callout 0: last capture = 1
3664     0: <unset>
3665     1: abc
3666    --->123abcdef
3667           ^  ^       d
3668    Callout 1: last capture = 1
3669     0: <unset>
3670     1: abc
3671    --->123abcdef
3672           ^    ^     f
3673     0: abcdef
3674     1: abc
3675        123abcdef\C-
3676     0: abcdef
3677     1: abc
3678        *** Failers
3679    No match
3680        123abcdef\C!1
3681    --->123abcdef
3682      0    ^  ^       d
3683      1    ^    ^     f
3684    No match
3685    
3686    /(?C0)(abc(?C1))*/I
3687    Capturing subpattern count = 1
3688    No options
3689    No first char
3690    No need char
3691        abcabcabc
3692    --->abcabcabc
3693      0 ^             (abc(?C1))*
3694      1 ^  ^          )
3695      1 ^     ^       )
3696      1 ^        ^    )
3697     0: abcabcabc
3698     1: abc
3699        abcabc\C!1!3
3700    --->abcabc
3701      0 ^          (abc(?C1))*
3702      1 ^  ^       )
3703      1 ^     ^    )
3704     0: abcabc
3705     1: abc
3706        *** Failers
3707    --->*** Failers
3708      0 ^               (abc(?C1))*
3709     0:
3710        abcabcabc\C!1!3
3711    --->abcabcabc
3712      0 ^             (abc(?C1))*
3713      1 ^  ^          )
3714      1 ^     ^       )
3715      1 ^        ^    )
3716     0: abcabc
3717     1: abc
3718    
3719    /(\d{3}(?C))*/I
3720    Capturing subpattern count = 1
3721    Partial matching not supported
3722    No options
3723    No first char
3724    No need char
3725        123\C+
3726    Callout 0: last capture = -1
3727     0: <unset>
3728    --->123
3729        ^  ^    )
3730     0: 123
3731     1: 123
3732        123456\C+
3733    Callout 0: last capture = -1
3734     0: <unset>
3735    --->123456
3736        ^  ^       )
3737    Callout 0: last capture = 1
3738     0: <unset>
3739     1: 123
3740    --->123456
3741        ^     ^    )
3742     0: 123456
3743     1: 456
3744        123456789\C+
3745    Callout 0: last capture = -1
3746     0: <unset>
3747    --->123456789
3748        ^  ^          )
3749    Callout 0: last capture = 1
3750     0: <unset>
3751     1: 123
3752    --->123456789
3753        ^     ^       )
3754    Callout 0: last capture = 1
3755     0: <unset>
3756     1: 456
3757    --->123456789
3758        ^        ^    )
3759     0: 123456789
3760     1: 789
3761    
3762    /((xyz)(?C)p|(?C1)xyzabc)/I
3763    Capturing subpattern count = 2
3764    No options
3765    First char = 'x'
3766    No need char
3767        xyzabc\C+
3768    Callout 0: last capture = 2
3769     0: <unset>
3770     1: <unset>
3771     2: xyz
3772    --->xyzabc
3773        ^  ^       p
3774    Callout 1: last capture = -1
3775     0: <unset>
3776    --->xyzabc
3777        ^          x
3778     0: xyzabc
3779     1: xyzabc
3780    
3781    /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3782    Capturing subpattern count = 3
3783    No options
3784    First char = 'X'
3785    Need char = 'x'
3786        Xxyzabc\C+
3787    Callout 0: last capture = 3
3788     0: <unset>
3789     1: X
3790     2: <unset>
3791     3: xyz
3792    --->Xxyzabc
3793        ^   ^       p
3794    Callout 1: last capture = 1
3795     0: <unset>
3796     1: X
3797    --->Xxyzabc
3798        ^^          x
3799     0: Xxyzabc
3800     1: X
3801     2: xyzabc
3802    
3803    /(?=(abc))(?C)abcdef/I
3804    Capturing subpattern count = 1
3805    No options
3806    First char = 'a'
3807    Need char = 'f'
3808        abcdef\C+
3809    Callout 0: last capture = 1
3810     0: <unset>
3811     1: abc
3812    --->abcdef
3813        ^          a
3814     0: abcdef
3815     1: abc
3816    
3817    /(?!(abc)(?C1)d)(?C2)abcxyz/I
3818    Capturing subpattern count = 1
3819    No options
3820    First char = 'a'
3821    Need char = 'z'
3822        abcxyz\C+
3823    Callout 1: last capture = 1
3824     0: <unset>
3825     1: abc
3826    --->abcxyz
3827        ^  ^       d
3828    Callout 2: last capture = -1
3829     0: <unset>
3830    --->abcxyz
3831        ^          a
3832     0: abcxyz
3833    
3834    /(?<=(abc)(?C))xyz/I
3835    Capturing subpattern count = 1
3836    No options
3837    First char = 'x'
3838    Need char = 'z'
3839       abcxyz\C+
3840    Callout 0: last capture = 1
3841     0: <unset>
3842     1: abc
3843    --->abcxyz
3844           ^       )
3845     0: xyz
3846     1: abc
3847    
3848    /a(b+)(c*)(?C1)/I
3849    Capturing subpattern count = 2
3850    Partial matching not supported
3851    No options
3852    First char = 'a'
3853    Need char = 'b'
3854        abbbbbccc\C*1
3855    --->abbbbbccc
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      1 ^ ^
3871    Callout data = 1
3872    No match
3873    
3874    /a(b+?)(c*?)(?C1)/I
3875    Capturing subpattern count = 2
3876    Partial matching not supported
3877    No options
3878    First char = 'a'
3879    Need char = 'b'
3880        abbbbbccc\C*1
3881    --->abbbbbccc
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      1 ^        ^
3897    Callout data = 1
3898    No match
3899    
3900    /(?C)abc/I
3901    Capturing subpattern count = 0
3902    No options
3903    First char = 'a'
3904    Need char = 'c'
3905    
3906    /(?C)^abc/I
3907    Capturing subpattern count = 0
3908    Options: anchored
3909    No first char
3910    No need char
3911    
3912    /(?C)a|b/IS
3913    Capturing subpattern count = 0
3914    No options
3915    No first char
3916    No need char
3917    Starting byte set: a b
3918    
3919    /(?R)/I
3920    Failed: recursive call could loop indefinitely at offset 3
3921    
3922    /(a|(?R))/I
3923    Failed: recursive call could loop indefinitely at offset 6
3924    
3925    /(ab|(bc|(de|(?R))))/I
3926    Failed: recursive call could loop indefinitely at offset 15
3927    
3928    /x(ab|(bc|(de|(?R))))/I
3929    Capturing subpattern count = 3
3930    No options
3931    First char = 'x'
3932    No need char
3933        xab
3934     0: xab
3935     1: ab
3936        xbc
3937     0: xbc
3938     1: bc
3939     2: bc
3940        xde
3941     0: xde
3942     1: de
3943     2: de
3944     3: de
3945        xxab
3946     0: xxab
3947     1: xab
3948     2: xab
3949     3: xab
3950        xxxab
3951     0: xxxab
3952     1: xxab
3953     2: xxab
3954     3: xxab
3955        *** Failers
3956    No match
3957        xyab
3958    No match
3959    
3960    /(ab|(bc|(de|(?1))))/I
3961    Failed: recursive call could loop indefinitely at offset 15
3962    
3963    /x(ab|(bc|(de|(?1)x)x)x)/I
3964    Failed: recursive call could loop indefinitely at offset 16
3965    
3966    /^([^()]|\((?1)*\))*$/I
3967    Capturing subpattern count = 1
3968    Options: anchored
3969    No first char
3970    No need char
3971        abc
3972     0: abc
3973     1: c
3974        a(b)c
3975     0: a(b)c
3976     1: c
3977        a(b(c))d
3978     0: a(b(c))d
3979     1: d
3980        *** Failers)
3981    No match
3982        a(b(c)d
3983    No match
3984    
3985    /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3986    Capturing subpattern count = 1
3987    Options: anchored
3988    No first char
3989    Need char = '<'
3990       >abc>123<xyz<
3991     0: >abc>123<xyz<
3992     1: 3
3993       >abc>1(2)3<xyz<
3994     0: >abc>1(2)3<xyz<
3995     1: 3
3996       >abc>(1(2)3)<xyz<
3997     0: >abc>(1(2)3)<xyz<
3998     1: (1(2)3)
3999    
4000    /(a(?1)b)/D
4001    ------------------------------------------------------------------
4002      0  24 Bra 0
4003      3  18 Bra 1
4004      8     a
4005     10   6 Once
4006     13   3 Recurse
4007     16   6 Ket
4008     19     b
4009     21  18 Ket
4010     24  24 Ket
4011     27     End
4012    ------------------------------------------------------------------
4013    Capturing subpattern count = 1
4014    No options
4015    First char = 'a'
4016    Need char = 'b'
4017    
4018    /(a(?1)+b)/D
4019    ------------------------------------------------------------------
4020      0  24 Bra 0
4021      3  18 Bra 1
4022      8     a
4023     10   6 Once
4024     13   3 Recurse
4025     16   6 KetRmax
4026     19     b
4027     21  18 Ket
4028     24  24 Ket
4029     27     End
4030    ------------------------------------------------------------------
4031    Capturing subpattern count = 1
4032    No options
4033    First char = 'a'
4034    Need char = 'b'
4035    
4036    /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii
4037    Capturing subpattern count = 4
4038    Max back reference = 4
4039    Partial matching not supported
4040    Options: anchored caseless
4041    No first char
4042    No need char
4043        1221
4044     0: 1221
4045     1: 1221
4046     2: 1
4047        Satan, oscillate my metallic sonatas!
4048     0: Satan, oscillate my metallic sonatas!
4049     1: <unset>
4050     2: <unset>
4051     3: Satan, oscillate my metallic sonatas
4052     4: S
4053        A man, a plan, a canal: Panama!
4054     0: A man, a plan, a canal: Panama!
4055     1: <unset>
4056     2: <unset>
4057     3: A man, a plan, a canal: Panama
4058     4: A
4059        Able was I ere I saw Elba.
4060     0: Able was I ere I saw Elba.
4061     1: <unset>
4062     2: <unset>
4063     3: Able was I ere I saw Elba
4064     4: A
4065        *** Failers
4066    No match
4067        The quick brown fox
4068    No match
4069    
4070    /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4071    Capturing subpattern count = 2
4072    Partial matching not supported
4073    Options: anchored
4074    No first char
4075    No need char
4076        12
4077     0: 12
4078     1: 12
4079        (((2+2)*-3)-7)
4080     0: (((2+2)*-3)-7)
4081     1: (((2+2)*-3)-7)
4082     2: -
4083        -12
4084     0: -12
4085     1: -12
4086        *** Failers
4087    No match
4088        ((2+2)*-3)-7)
4089    No match
4090    
4091    /^(x(y|(?1){2})z)/I
4092    Capturing subpattern count = 2
4093    Options: anchored
4094    No first char
4095    No need char
4096        xyz
4097     0: xyz
4098     1: xyz
4099     2: y
4100        xxyzxyzz
4101     0: xxyzxyzz
4102     1: xxyzxyzz
4103     2: xyzxyz
4104        *** Failers
4105    No match
4106        xxyzz
4107    No match
4108        xxyzxyzxyzz
4109    No match
4110    
4111    /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4112    Capturing subpattern count = 2
4113    Partial matching not supported
4114    Options: extended
4115    First char = '<'
4116    Need char = '>'
4117        <>
4118     0: <>
4119     1: <>
4120     2: <>
4121        <abcd>
4122     0: <abcd>
4123     1: <abcd>
4124     2: <abcd>
4125        <abc <123> hij>
4126     0: <abc <123> hij>
4127     1: <abc <123> hij>
4128     2: <abc <123> hij>
4129        <abc <def> hij>
4130     0: <def>
4131     1: <def>
4132     2: <def>
4133        <abc<>def>
4134     0: <abc<>def>
4135     1: <abc<>def>
4136     2: <abc<>def>
4137        <abc<>
4138     0: <>
4139     1: <>
4140     2: <>
4141        *** Failers
4142    No match
4143        <abc
4144    No match
4145    
4146    /(?1)/I
4147    Failed: reference to non-existent subpattern at offset 3
4148    
4149    /((?2)(abc)/I
4150    Failed: missing ) at offset 10
4151    
4152    /^(abc)def(?1)/I
4153    Capturing subpattern count = 1
4154    Options: anchored
4155    No first char
4156    No need char
4157        abcdefabc
4158     0: abcdefabc
4159     1: abc
4160    
4161    /^(a|b|c)=(?1)+/I
4162    Capturing subpattern count = 1
4163    Options: anchored
4164    No first char
4165    No need char
4166        a=a
4167     0: a=a
4168     1: a
4169        a=b
4170     0: a=b
4171     1: a
4172        a=bc
4173     0: a=bc
4174     1: a
4175    
4176    /^(a|b|c)=((?1))+/I
4177    Capturing subpattern count = 2
4178    Options: anchored
4179    No first char
4180    No need char
4181        a=a
4182     0: a=a
4183     1: a
4184     2: a
4185        a=b
4186     0: a=b
4187     1: a
4188     2: b
4189        a=bc
4190     0: a=bc
4191     1: a
4192     2: c
4193    
4194    /a(?P<name1>b|c)d(?P<longername2>e)/D
4195    ------------------------------------------------------------------
4196      0  32 Bra 0
4197      3     a
4198      5   7 Bra 1
4199     10     b
4200     12   5 Alt
4201     15     c
4202     17  12 Ket
4203     20     d
4204     22   7 Bra 2
4205     27     e
4206     29   7 Ket
4207     32  32 Ket
4208     35     End
4209    ------------------------------------------------------------------
4210    Capturing subpattern count = 2
4211    Named capturing subpatterns:
4212      longername2   2
4213      name1         1
4214    No options
4215    First char = 'a'
4216    Need char = 'e'
4217        abde
4218     0: abde
4219     1: b
4220     2: e
4221        acde
4222     0: acde
4223     1: c
4224     2: e
4225    
4226    /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D
4227    ------------------------------------------------------------------
4228      0  41 Bra 0
4229      3  25 Bra 0
4230      6     a
4231      8  17 Bra 1
4232     13     c
4233     15   7 Bra 2
4234     20     d
4235     22   7 Ket
4236     25  17 Ket
4237     28  25 Ket
4238     31   7 Bra 3
4239     36     a
4240     38   7 Ket
4241     41  41 Ket
4242     44     End
4243    ------------------------------------------------------------------
4244    Capturing subpattern count = 3
4245    Named capturing subpatterns:
4246      a   3
4247      c   1
4248      d   2
4249    No options
4250    First char = 'a'
4251    Need char = 'a'
4252    
4253    /(?P<a>a)...(?P=a)bbb(?P>a)d/D
4254    ------------------------------------------------------------------
4255      0  36 Bra 0
4256      3   7 Bra 1
4257      8     a
4258     10   7 Ket
4259     13     Any
4260     14     Any
4261     15     Any
4262     16     \1
4263     19     bbb
4264     25   6 Once
4265     28   3 Recurse
4266     31   6 Ket
4267     34     d
4268     36  36 Ket
4269     39     End
4270    ------------------------------------------------------------------
4271    Capturing subpattern count = 1
4272    Max back reference = 1
4273    Named capturing subpatterns:
4274      a   1
4275