/[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 47 by nigel, Sat Feb 24 21:39:29 2007 UTC revision 264 by ph10, Tue Nov 13 11:07:16 2007 UTC
# Line 1  Line 1 
1  PCRE version 3.2 12-May-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\idef/X
82  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
83    
84  /(?X)ab\gdef/X  /(?X)ab\idef/X
85  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
86    
87  /x{5,4}/  /x{5,4}/
# Line 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)/IDZS
601  ------------------------------------------------------------------  ------------------------------------------------------------------
602    0  16 Bra 0          Bra
603    3   8 Bra 1          CBra 1
604    6  01 Opt       01 Opt
605    8   1 b       NC b
606   11   8 Ket          Ket
607   14  00 Opt       00 Opt
608   16  16 Ket          Ket
609   19     End          End
610  ------------------------------------------------------------------  ------------------------------------------------------------------
611  Capturing subpattern count = 1  Capturing subpattern count = 1
612  No options  No options
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    Contains explicit CR or LF match
707    Options: multiline
708    No first char
709    Need char = 'r'
710        foo\nbarbar
711     0: bar
712        ***Failers
713    No match
714        rhubarb
715    No match
716        barbell
717    No match
718        abc\nbarton
719    No match
720    
721  /(?<=foo\n)^bar/m  /^(?<=foo\n)bar/Im
722  Capturing subpattern count = 0  Capturing subpattern count = 0
723    Contains explicit CR or LF match
724  Options: multiline  Options: multiline
725  First char at start or follows \n  First char at start or follows newline
726  Need char = 'r'  Need char = 'r'
727        foo\nbarbar
728     0: bar
729        ***Failers
730    No match
731        rhubarb
732    No match
733        barbell
734    No match
735        abc\nbarton
736    No match
737    
738  /(?>^abc)/m  /(?>^abc)/Im
739  Capturing subpattern count = 0  Capturing subpattern count = 0
740  Options: multiline  Options: multiline
741  First char at start or follows \n  First char at start or follows newline
742  Need char = 'c'  Need char = 'c'
743      abc      abc
744   0: abc   0: abc
# Line 704  Need char = 'c' Line 746  Need char = 'c'
746   0: abc   0: abc
747      *** Failers      *** Failers
748  No match  No match
749      defabc      defabc
750  No match  No match
751    
752  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 717  Failed: lookbehind assertion is not fixe Line 759  Failed: lookbehind assertion is not fixe
759  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
760    
761  /The next three are in testinput2 because they have variable length branches/  /The next three are in testinput2 because they have variable length branches/
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 's'  
762    
763  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
764  Capturing subpattern count = 0  Capturing subpattern count = 0
765  No options  No options
766  First char = '-'  First char = '-'
# Line 735  Need char = 't' Line 773  Need char = 't'
773  No match  No match
774      cart      cart
775  No match  No match
776      horse-and-cart      horse-and-cart
777  No match  No match
778    
779  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
780  Capturing subpattern count = 0  Capturing subpattern count = 0
781  No options  No options
 Case state changes  
782  No first char  No first char
783  No need char  No need char
784    
785  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
786  Capturing subpattern count = 2  Capturing subpattern count = 2
787    Partial matching not supported
788  No options  No options
789  First char at start or follows \n  First char at start or follows newline
790  No need char  No need char
791      alphabetabcd      alphabetabcd
792   0: alphabetabcd   0: alphabetabcd
# Line 758  No need char Line 796  No need char
796   1: <unset>   1: <unset>
797   2: xyz   2: xyz
798    
799  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
800  Capturing subpattern count = 0  Capturing subpattern count = 0
801  No options  No options
 Case state changes  
802  First char = 'Z'  First char = 'Z'
803  Need char = 'Z'  Need char = 'Z'
804      abxyZZ      abxyZZ
# Line 774  Need char = 'Z' Line 811  Need char = 'Z'
811   0: ZZ   0: ZZ
812      bZZ      bZZ
813   0: ZZ   0: ZZ
814      BZZ      BZZ
815   0: ZZ   0: ZZ
816      *** Failers      *** Failers
817  No match  No match
818      ZZ      ZZ
819  No match  No match
820      abXYZZ      abXYZZ
821  No match  No match
822      zzz      zzz
823  No match  No match
824      bzz      bzz
825  No match  No match
826    
827  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
828  Capturing subpattern count = 1  Capturing subpattern count = 1
829  No options  No options
830  First char = 'b'  First char = 'b'
831  Need char = 'r'  Need char = 'r'
832      bar      bar
833   0: bar   0: bar
834      foobbar      foobbar
835   0: bar   0: bar
836      *** Failers      *** Failers
837  No match  No match
838      fooabar      fooabar
839  No match  No match
840    
841  /This one is here because Perl 5.005_02 doesn't fail it/  /This one is here because Perl 5.005_02 doesn't fail it/I
842  Capturing subpattern count = 0  Capturing subpattern count = 0
843  No options  No options
844  First char = 'T'  First char = 'T'
845  Need char = 't'  Need char = 't'
846    
847  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
848  Capturing subpattern count = 1  Capturing subpattern count = 1
849  Options: anchored  Options: anchored
850  No first char  No first char
851  No need char  No need char
852      *** Failers      *** Failers
853  No match  No match
854      a      a
855  No match  No match
856    
857  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I
858  Capturing subpattern count = 0  Capturing subpattern count = 0
859  No options  No options
860  First char = 'T'  First char = 'T'
861  Need char = 'g'  Need char = 'g'
862    
863  /^(a\1?){4}$/  /^(a\1?){4}$/I
864  Capturing subpattern count = 1  Capturing subpattern count = 1
865  Max back reference = 1  Max back reference = 1
866  Options: anchored  Options: anchored
867  No first char  No first char
868  Need char = 'a'  No need char
869      aaaaaa      aaaaaa
870   0: aaaaaa   0: aaaaaa
871   1: aa   1: aa
872    
873  /These are syntax tests from Perl 5.005/  /These are syntax tests from Perl 5.005/I
874  Capturing subpattern count = 0  Capturing subpattern count = 0
875  No options  No options
876  First char = 'T'  First char = 'T'
# Line 867  Failed: nothing to repeat at offset 2 Line 904  Failed: nothing to repeat at offset 2
904  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
905    
906  /\1/  /\1/
907  Failed: back reference to non-existent subpattern at offset 2  Failed: reference to non-existent subpattern at offset 2
908    
909  /\2/  /\2/
910  Failed: back reference to non-existent subpattern at offset 2  Failed: reference to non-existent subpattern at offset 2
911    
912  /(a)|\2/  /(a)|\2/
913  Failed: back reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
914    
915  /a[b-a]/i  /a[b-a]/Ii
916  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
917    
918  /a[]b/i  /a[]b/Ii
919  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
920    
921  /a[/i  /a[/Ii
922  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
923    
924  /*a/i  /*a/Ii
925  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
926    
927  /(*)b/i  /(*)b/Ii
928  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
929    
930  /abc)/i  /abc)/Ii
931  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
932    
933  /(abc/i  /(abc/Ii
934  Failed: missing ) at offset 4  Failed: missing ) at offset 4
935    
936  /a**/i  /a**/Ii
937  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
938    
939  /)(/i  /)(/Ii
940  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
941    
942  /:(?:/  /:(?:/
943  Failed: missing ) at offset 4  Failed: missing ) at offset 4
944    
945  /(?<%)b/  /(?<%)b/
946  Failed: unrecognized character after (?< at offset 0  Failed: unrecognized character after (?< at offset 3
947    
948  /a(?{)b/  /a(?{)b/
949  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? at offset 3
# Line 924  Failed: unrecognized character after (? Line 961  Failed: unrecognized character after (?
961  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? at offset 3
962    
963  /(?(1?)a|b)/  /(?(1?)a|b)/
964  Failed: malformed number after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
965    
966  /(?(1)a|b|c)/  /(?(1)a|b|c)/
967  Failed: conditional group contains more than two branches at offset 10  Failed: conditional group contains more than two branches at offset 10
# Line 947  Failed: POSIX code 9: bad escape sequenc Line 984  Failed: POSIX code 9: bad escape sequenc
984  /abc/\i  /abc/\i
985  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
986    
987  /(a)bc(d)/  /(a)bc(d)/I
988  Capturing subpattern count = 2  Capturing subpattern count = 2
989  No options  No options
990  First char = 'a'  First char = 'a'
# Line 966  Need char = 'd' Line 1003  Need char = 'd'
1003   1: a   1: a
1004   2: d   2: d
1005  copy substring 5 failed -7  copy substring 5 failed -7
1006    
1007  /(.{20})/  /(.{20})/I
1008  Capturing subpattern count = 1  Capturing subpattern count = 1
1009    Partial matching not supported
1010  No options  No options
1011  No first char  No first char
1012  No need char  No need char
# Line 978  No need char Line 1016  No need char
1016      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1017   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1018   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1019  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1020      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1021   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1022   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1023   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1024    
1025  /(.{15})/  /(.{15})/I
1026  Capturing subpattern count = 1  Capturing subpattern count = 1
1027    Partial matching not supported
1028  No options  No options
1029  No first char  No first char
1030  No need char  No need char
# Line 998  No need char Line 1037  No need char
1037   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1038   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1039    
1040  /(.{16})/  /(.{16})/I
1041  Capturing subpattern count = 1  Capturing subpattern count = 1
1042    Partial matching not supported
1043  No options  No options
1044  No first char  No first char
1045  No need char  No need char
# Line 1009  No need char Line 1049  No need char
1049      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1050   0: abcdefghijklmnop   0: abcdefghijklmnop
1051   1: abcdefghijklmnop   1: abcdefghijklmnop
1052  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1053   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1054   0L abcdefghijklmnop   0L abcdefghijklmnop
1055   1L abcdefghijklmnop   1L abcdefghijklmnop
1056    
1057  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1058  Capturing subpattern count = 3  Capturing subpattern count = 3
1059  Options: anchored  Options: anchored
1060  No first char  No first char
1061  Need char = 'f'  No need char
1062      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1063   0: adef   0: adef
1064   1: a   1: a
1065   2: <unset>   2: <unset>
# Line 1032  get substring 4 failed -7 Line 1072  get substring 4 failed -7
1072   1L a   1L a
1073   2L   2L
1074   3L f   3L f
1075      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1076   0: bcdef   0: bcdef
1077   1: bc   1: bc
1078   2: bc   2: bc
# Line 1045  get substring 4 failed -7 Line 1085  get substring 4 failed -7
1085   1L bc   1L bc
1086   2L bc   2L bc
1087   3L f   3L f
1088      adefghijk\C0      adefghijk\C0
1089   0: adef   0: adef
1090   1: a   1: a
1091   2: <unset>   2: <unset>
1092   3: f   3: f
1093   0C adef (4)   0C adef (4)
1094    
1095  /^abc\00def/  /^abc\00def/I
1096  Capturing subpattern count = 0  Capturing subpattern count = 0
1097  Options: anchored  Options: anchored
1098  No first char  No first char
1099  Need char = 'f'  No need char
1100      abc\00def\L\C0      abc\00def\L\C0
1101   0: abc\x00def   0: abc\x00def
1102   0C abc (7)   0C abc (7)
1103   0L abc   0L abc
1104    
1105  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1106  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1107  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 428  
1108  Capturing subpattern count = 8  Capturing subpattern count = 8
1109    Partial matching not supported
1110    Contains explicit CR or LF match
1111  No options  No options
1112  First char = 'w'  First char = 'w'
1113  Need char = 'd'  Need char = 'd'
1114    
1115  /.*X/D  /.*X/IDZ
1116  ------------------------------------------------------------------  ------------------------------------------------------------------
1117    0   8 Bra 0          Bra
1118    3     Any*          Any*
1119    5   1 X          X
1120    8   8 Ket          Ket
1121   11     End          End
1122  ------------------------------------------------------------------  ------------------------------------------------------------------
1123  Capturing subpattern count = 0  Capturing subpattern count = 0
1124    Partial matching not supported
1125  No options  No options
1126  First char at start or follows \n  First char at start or follows newline
1127  Need char = 'X'  Need char = 'X'
1128    
1129  /.*X/Ds  /.*X/IDZs
1130  ------------------------------------------------------------------  ------------------------------------------------------------------
1131    0   8 Bra 0          Bra
1132    3     Any*          Any*
1133    5   1 X          X
1134    8   8 Ket          Ket
1135   11     End          End
1136  ------------------------------------------------------------------  ------------------------------------------------------------------
1137  Capturing subpattern count = 0  Capturing subpattern count = 0
1138    Partial matching not supported
1139  Options: anchored dotall  Options: anchored dotall
1140  No first char  No first char
1141  Need char = 'X'  Need char = 'X'
1142    
1143  /(.*X|^B)/D  /(.*X|^B)/IDZ
1144  ------------------------------------------------------------------  ------------------------------------------------------------------
1145    0  21 Bra 0          Bra
1146    3   8 Bra 1          CBra 1
1147    6     Any*          Any*
1148    8   1 X          X
1149   11   7 Alt          Alt
1150   14     ^          ^
1151   15   1 B          B
1152   18  15 Ket          Ket
1153   21  21 Ket          Ket
1154   24     End          End
1155  ------------------------------------------------------------------  ------------------------------------------------------------------
1156  Capturing subpattern count = 1  Capturing subpattern count = 1
1157    Partial matching not supported
1158  No options  No options
1159  First char at start or follows \n  First char at start or follows newline
1160  No need char  No need char
1161    
1162  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1163  ------------------------------------------------------------------  ------------------------------------------------------------------
1164    0  21 Bra 0          Bra
1165    3   8 Bra 1          CBra 1
1166    6     Any*          Any*
1167    8   1 X          X
1168   11   7 Alt          Alt
1169   14     ^          ^
1170   15   1 B          B
1171   18  15 Ket          Ket
1172   21  21 Ket          Ket
1173   24     End          End
1174  ------------------------------------------------------------------  ------------------------------------------------------------------
1175  Capturing subpattern count = 1  Capturing subpattern count = 1
1176    Partial matching not supported
1177  Options: anchored dotall  Options: anchored dotall
1178  No first char  No first char
1179  No need char  No need char
1180    
1181  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1182  ------------------------------------------------------------------  ------------------------------------------------------------------
1183    0  21 Bra 0          Bra
1184    3   8 Bra 1          CBra 1
1185    6     Any*          Any*
1186    8   1 X          X
1187   11   7 Alt          Alt
1188   14     ^          ^
1189   15   1 B          B
1190   18  15 Ket          Ket
1191   21  21 Ket          Ket
1192   24     End          End
1193  ------------------------------------------------------------------  ------------------------------------------------------------------
1194  Capturing subpattern count = 1  Capturing subpattern count = 1
1195    Partial matching not supported
1196  Options: anchored dotall  Options: anchored dotall
1197  No first char  No first char
1198  No need char  No need char
1199    
1200  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1201  ------------------------------------------------------------------  ------------------------------------------------------------------
1202    0  27 Bra 0          Bra
1203    3  10 Bra 0          Bra
1204    6  04 Opt       04 Opt
1205    8     Any*          Any*
1206   10   1 X          X
1207   13   9 Alt          Alt
1208   16  04 Opt       04 Opt
1209   18     ^          ^
1210   19   1 B          B
1211   22  19 Ket          Ket
1212   25  00 Opt       00 Opt
1213   27  27 Ket          Ket
1214   30     End          End
1215  ------------------------------------------------------------------  ------------------------------------------------------------------
1216  Capturing subpattern count = 0  Capturing subpattern count = 0
1217    Partial matching not supported
1218  No options  No options
1219  First char at start or follows \n  First char at start or follows newline
1220  No need char  No need char
1221    
1222  /\Biss\B/+  /\Biss\B/I+
1223  Capturing subpattern count = 0  Capturing subpattern count = 0
1224  No options  No options
1225  First char = 'i'  First char = 'i'
# Line 1181  Need char = 's' Line 1228  Need char = 's'
1228   0: iss   0: iss
1229   0+ issippi   0+ issippi
1230    
1231  /\Biss\B/+P  /\Biss\B/I+P
1232      Mississippi      Mississippi
1233   0: iss   0: iss
1234   0+ issippi   0+ issippi
1235    
1236  /iss/G+  /iss/IG+
1237  Capturing subpattern count = 0  Capturing subpattern count = 0
1238  No options  No options
1239  First char = 'i'  First char = 'i'
# Line 1197  Need char = 's' Line 1244  Need char = 's'
1244   0: iss   0: iss
1245   0+ ippi   0+ ippi
1246    
1247  /\Biss\B/G+  /\Biss\B/IG+
1248  Capturing subpattern count = 0  Capturing subpattern count = 0
1249  No options  No options
1250  First char = 'i'  First char = 'i'
# Line 1206  Need char = 's' Line 1253  Need char = 's'
1253   0: iss   0: iss
1254   0+ issippi   0+ issippi
1255    
1256  /\Biss\B/g+  /\Biss\B/Ig+
1257  Capturing subpattern count = 0  Capturing subpattern count = 0
1258  No options  No options
1259  First char = 'i'  First char = 'i'
# Line 1221  No match Line 1268  No match
1268      Mississippi\A      Mississippi\A
1269  No match  No match
1270    
1271  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1272  Capturing subpattern count = 0  Capturing subpattern count = 0
1273  No options  No options
1274  First char = 'i'  First char = 'i'
# Line 1232  Need char = 's' Line 1279  Need char = 's'
1279   0: iss   0: iss
1280   0+ ippi   0+ ippi
1281    
1282  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1283  Capturing subpattern count = 0  Capturing subpattern count = 0
1284  No options  No options
1285  First char = 'i'  First char = 'i'
# Line 1241  Need char = 's' Line 1288  Need char = 's'
1288   0: iss   0: iss
1289   0+ issippi   0+ issippi
1290    
1291  /^iss/g+  /^iss/Ig+
1292  Capturing subpattern count = 0  Capturing subpattern count = 0
1293  Options: anchored  Options: anchored
1294  No first char  No first char
1295  Need char = 's'  No need char
1296      ississippi      ississippi
1297   0: iss   0: iss
1298   0+ issippi   0+ issippi
1299    
1300  /.*iss/g+  /.*iss/Ig+
1301  Capturing subpattern count = 0  Capturing subpattern count = 0
1302    Partial matching not supported
1303  No options  No options
1304  First char at start or follows \n  First char at start or follows newline
1305  Need char = 's'  Need char = 's'
1306      abciss\nxyzisspqr      abciss\nxyzisspqr
1307   0: abciss   0: abciss
1308   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1309   0: xyziss   0: xyziss
1310   0+ pqr   0+ pqr
1311    
1312  /.i./+g  /.i./I+g
1313  Capturing subpattern count = 0  Capturing subpattern count = 0
1314  No options  No options
1315  No first char  No first char
# Line 1287  Need char = 'i' Line 1335  Need char = 'i'
1335   0+ river   0+ river
1336   0: riv   0: riv
1337   0+ er   0+ er
1338      Missouri river\A      Missouri river\A
1339   0: Mis   0: Mis
1340   0+ souri river   0+ souri river
1341    
1342  /^.is/+g  /^.is/I+g
1343  Capturing subpattern count = 0  Capturing subpattern count = 0
1344  Options: anchored  Options: anchored
1345  No first char  No first char
1346  Need char = 's'  No need char
1347      Mississippi      Mississippi
1348   0: Mis   0: Mis
1349   0+ sissippi   0+ sissippi
1350    
1351  /^ab\n/g+  /^ab\n/Ig+
1352  Capturing subpattern count = 0  Capturing subpattern count = 0
1353    Contains explicit CR or LF match
1354  Options: anchored  Options: anchored
1355  No first char  No first char
1356  Need char = 10  No need char
1357      ab\nab\ncd      ab\nab\ncd
1358   0: ab\x0a   0: ab\x0a
1359   0+ ab\x0acd   0+ ab\x0acd
1360    
1361  /^ab\n/mg+  /^ab\n/Img+
1362  Capturing subpattern count = 0  Capturing subpattern count = 0
1363    Contains explicit CR or LF match
1364  Options: multiline  Options: multiline
1365  First char at start or follows \n  First char at start or follows newline
1366  Need char = 10  Need char = 10
1367      ab\nab\ncd      ab\nab\ncd
1368   0: ab\x0a   0: ab\x0a
# Line 1320  Need char = 10 Line 1370  Need char = 10
1370   0: ab\x0a   0: ab\x0a
1371   0+ cd   0+ cd
1372    
1373  /abc/  /abc/I
1374  Capturing subpattern count = 0  Capturing subpattern count = 0
1375  No options  No options
1376  First char = 'a'  First char = 'a'
1377  Need char = 'c'  Need char = 'c'
1378    
1379  /abc|bac/  /abc|bac/I
1380  Capturing subpattern count = 0  Capturing subpattern count = 0
1381  No options  No options
1382  No first char  No first char
1383  Need char = 'c'  Need char = 'c'
1384    
1385  /(abc|bac)/  /(abc|bac)/I
1386  Capturing subpattern count = 1  Capturing subpattern count = 1
1387  No options  No options
1388  No first char  No first char
1389  Need char = 'c'  Need char = 'c'
1390    
1391  /(abc|(c|dc))/  /(abc|(c|dc))/I
1392  Capturing subpattern count = 2  Capturing subpattern count = 2
1393  No options  No options
1394  No first char  No first char
1395  Need char = 'c'  Need char = 'c'
1396    
1397  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1398  Capturing subpattern count = 2  Capturing subpattern count = 2
1399  No options  No options
1400  No first char  No first char
1401  Need char = 'c'  Need char = 'c'
1402    
1403  /a*/  /a*/I
1404  Capturing subpattern count = 0  Capturing subpattern count = 0
1405    Partial matching not supported
1406  No options  No options
1407  No first char  No first char
1408  No need char  No need char
1409    
1410  /a+/  /a+/I
1411  Capturing subpattern count = 0  Capturing subpattern count = 0
1412    Partial matching not supported
1413  No options  No options
1414  First char = 'a'  First char = 'a'
1415  No need char  No need char
1416    
1417  /(baa|a+)/  /(baa|a+)/I
1418  Capturing subpattern count = 1  Capturing subpattern count = 1
1419    Partial matching not supported
1420  No options  No options
1421  No first char  No first char
1422  Need char = 'a'  Need char = 'a'
1423    
1424  /a{0,3}/  /a{0,3}/I
1425  Capturing subpattern count = 0  Capturing subpattern count = 0
1426    Partial matching not supported
1427  No options  No options
1428  No first char  No first char
1429  No need char  No need char
1430    
1431  /baa{3,}/  /baa{3,}/I
1432  Capturing subpattern count = 0  Capturing subpattern count = 0
1433    Partial matching not supported
1434  No options  No options
1435  First char = 'b'  First char = 'b'
1436  Need char = 'a'  Need char = 'a'
1437    
1438  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1439  Capturing subpattern count = 1  Capturing subpattern count = 1
1440    Partial matching not supported
1441  No options  No options
1442  First char = '"'  First char = '"'
1443  Need char = '"'  Need char = '"'
1444    
1445  /(abc|ab[cd])/  /(abc|ab[cd])/I
1446  Capturing subpattern count = 1  Capturing subpattern count = 1
1447  No options  No options
1448  First char = 'a'  First char = 'a'
1449  No need char  No need char
1450    
1451  /(a|.)/  /(a|.)/I
1452  Capturing subpattern count = 1  Capturing subpattern count = 1
1453  No options  No options
1454  No first char  No first char
1455  No need char  No need char
1456    
1457  /a|ba|\w/  /a|ba|\w/I
1458  Capturing subpattern count = 0  Capturing subpattern count = 0
1459  No options  No options
1460  No first char  No first char
1461  No need char  No need char
1462    
1463  /abc(?=pqr)/  /abc(?=pqr)/I
1464  Capturing subpattern count = 0  Capturing subpattern count = 0
1465  No options  No options
1466  First char = 'a'  First char = 'a'
1467  Need char = 'r'  Need char = 'r'
1468    
1469  /...(?<=abc)/  /...(?<=abc)/I
1470  Capturing subpattern count = 0  Capturing subpattern count = 0
1471  No options  No options
1472  No first char  No first char
1473  No need char  No need char
1474    
1475  /abc(?!pqr)/  /abc(?!pqr)/I
1476  Capturing subpattern count = 0  Capturing subpattern count = 0
1477  No options  No options
1478  First char = 'a'  First char = 'a'
1479  Need char = 'c'  Need char = 'c'
1480    
1481  /ab./  /ab./I
1482  Capturing subpattern count = 0  Capturing subpattern count = 0
1483  No options  No options
1484  First char = 'a'  First char = 'a'
1485  Need char = 'b'  Need char = 'b'
1486    
1487  /ab[xyz]/  /ab[xyz]/I
1488  Capturing subpattern count = 0  Capturing subpattern count = 0
1489  No options  No options
1490  First char = 'a'  First char = 'a'
1491  Need char = 'b'  Need char = 'b'
1492    
1493  /abc*/  /abc*/I
1494  Capturing subpattern count = 0  Capturing subpattern count = 0
1495    Partial matching not supported
1496  No options  No options
1497  First char = 'a'  First char = 'a'
1498  Need char = 'b'  Need char = 'b'
1499    
1500  /ab.c*/  /ab.c*/I
1501  Capturing subpattern count = 0  Capturing subpattern count = 0
1502    Partial matching not supported
1503  No options  No options
1504  First char = 'a'  First char = 'a'
1505  Need char = 'b'  Need char = 'b'
1506    
1507  /a.c*/  /a.c*/I
1508  Capturing subpattern count = 0  Capturing subpattern count = 0
1509    Partial matching not supported
1510  No options  No options
1511  First char = 'a'  First char = 'a'
1512  No need char  No need char
1513    
1514  /.c*/  /.c*/I
1515  Capturing subpattern count = 0  Capturing subpattern count = 0
1516    Partial matching not supported
1517  No options  No options
1518  No first char  No first char
1519  No need char  No need char
1520    
1521  /ac*/  /ac*/I
1522  Capturing subpattern count = 0  Capturing subpattern count = 0
1523    Partial matching not supported
1524  No options  No options
1525  First char = 'a'  First char = 'a'
1526  No need char  No need char
1527    
1528  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1529  Capturing subpattern count = 1  Capturing subpattern count = 1
1530    Partial matching not supported
1531  No options  No options
1532  No first char  No first char
1533  No need char  No need char
1534    
1535  /a.c*|aba/  /a.c*|aba/I
1536  Capturing subpattern count = 0  Capturing subpattern count = 0
1537    Partial matching not supported
1538  No options  No options
1539  First char = 'a'  First char = 'a'
1540  No need char  No need char
1541    
1542  /.+a/  /.+a/I
1543  Capturing subpattern count = 0  Capturing subpattern count = 0
1544    Partial matching not supported
1545  No options  No options
1546  No first char  No first char
1547  Need char = 'a'  Need char = 'a'
1548    
1549  /(?=abcda)a.*/  /(?=abcda)a.*/I
1550  Capturing subpattern count = 0  Capturing subpattern count = 0
1551    Partial matching not supported
1552  No options  No options
1553  First char = 'a'  First char = 'a'
1554  No need char  Need char = 'a'
1555    
1556  /(?=a)a.*/  /(?=a)a.*/I
1557  Capturing subpattern count = 0  Capturing subpattern count = 0
1558    Partial matching not supported
1559  No options  No options
1560  First char = 'a'  First char = 'a'
1561  No need char  No need char
1562    
1563  /a(b)*/  /a(b)*/I
1564  Capturing subpattern count = 1  Capturing subpattern count = 1
1565  No options  No options
1566  First char = 'a'  First char = 'a'
1567  No need char  No need char
1568    
1569  /a\d*/  /a\d*/I
1570  Capturing subpattern count = 0  Capturing subpattern count = 0
1571    Partial matching not supported
1572  No options  No options
1573  First char = 'a'  First char = 'a'
1574  No need char  No need char
1575    
1576  /ab\d*/  /ab\d*/I
1577  Capturing subpattern count = 0  Capturing subpattern count = 0
1578    Partial matching not supported
1579  No options  No options
1580  First char = 'a'  First char = 'a'
1581  Need char = 'b'  Need char = 'b'
1582    
1583  /a(\d)*/  /a(\d)*/I
1584  Capturing subpattern count = 1  Capturing subpattern count = 1
1585  No options  No options
1586  First char = 'a'  First char = 'a'
1587  No need char  No need char
1588    
1589  /abcde{0,0}/  /abcde{0,0}/I
1590  Capturing subpattern count = 0  Capturing subpattern count = 0
1591  No options  No options
1592  First char = 'a'  First char = 'a'
1593  Need char = 'd'  Need char = 'd'
1594    
1595  /ab\d+/  /ab\d+/I
1596  Capturing subpattern count = 0  Capturing subpattern count = 0
1597    Partial matching not supported
1598  No options  No options
1599  First char = 'a'  First char = 'a'
1600  Need char = 'b'  Need char = 'b'
1601    
1602  /a(?(1)b)/  /a(?(1)b)/I
1603  Capturing subpattern count = 0  Capturing subpattern count = 0
1604  No options  No options
1605  First char = 'a'  First char = 'a'
1606  No need char  No need char
1607    
1608  /a(?(1)bag|big)/  /a(?(1)bag|big)/I
1609  Capturing subpattern count = 0  Capturing subpattern count = 0
1610  No options  No options
1611  First char = 'a'  First char = 'a'
1612  Need char = 'g'  Need char = 'g'
1613    
1614  /a(?(1)bag|big)*/  /a(?(1)bag|big)*/I
1615  Capturing subpattern count = 0  Capturing subpattern count = 0
1616  No options  No options
1617  First char = 'a'  First char = 'a'
1618  No need char  No need char
1619    
1620  /a(?(1)bag|big)+/  /a(?(1)bag|big)+/I
1621  Capturing subpattern count = 0  Capturing subpattern count = 0
1622  No options  No options
1623  First char = 'a'  First char = 'a'
1624  Need char = 'g'  Need char = 'g'
1625    
1626  /a(?(1)b..|b..)/  /a(?(1)b..|b..)/I
1627  Capturing subpattern count = 0  Capturing subpattern count = 0
1628  No options  No options
1629  First char = 'a'  First char = 'a'
1630  Need char = 'b'  Need char = 'b'
1631    
1632  /ab\d{0}e/  /ab\d{0}e/I
1633  Capturing subpattern count = 0  Capturing subpattern count = 0
1634  No options  No options
1635  First char = 'a'  First char = 'a'
1636  Need char = 'e'  Need char = 'e'
1637    
1638  /a?b?/  /a?b?/I
1639  Capturing subpattern count = 0  Capturing subpattern count = 0
1640  No options  No options
1641  No first char  No first char
# Line 1581  No need char Line 1650  No need char
1650   0:   0:
1651      *** Failers      *** Failers
1652   0:   0:
1653      \N      \N
1654  No match  No match
1655    
1656  /|-/  /|-/I
1657  Capturing subpattern count = 0  Capturing subpattern count = 0
1658  No options  No options
1659  No first char  No first char
# Line 1597  No need char Line 1666  No need char
1666   0: -   0: -
1667      *** Failers      *** Failers
1668   0:   0:
1669      \Nabc      \Nabc
1670  No match  No match
1671    
1672  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/IP
1673      aaaabbbbzzzz      aaaabbbbzzzz
1674   0: aaaabbbbzz   0: aaaabbbbzz
1675   1: bbbb   1: bbbb
# Line 1626  No match Line 1695  No match
1695   1: bbbb   1: bbbb
1696   2: z   2: z
1697   3: z   3: z
1698    
1699  /^.?abcd/S  /^.?abcd/IS
1700  Capturing subpattern count = 0  Capturing subpattern count = 0
1701  Options: anchored  Options: anchored
1702  No first char  No first char
# Line 1641  Study returned NULL Line 1710  Study returned NULL
1710    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1711    )*            # Zero or more contents    )*            # Zero or more contents
1712    \)            # Closing )    \)            # Closing )
1713    /x    /Ix
1714  Capturing subpattern count = 0  Capturing subpattern count = 0
1715    Partial matching not supported
1716  Options: extended  Options: extended
1717  First char = '('  First char = '('
1718  Need char = ')'  Need char = ')'
# Line 1652  Need char = ')' Line 1722  Need char = ')'
1722   0: (abcd)   0: (abcd)
1723      xyz(abcd)      xyz(abcd)
1724   0: (abcd)   0: (abcd)
1725      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1726   0: (ab(xy)cd)   0: (ab(xy)cd)
1727      (ab(xycd)pqr      (ab(xycd)pqr
1728   0: (xycd)   0: (xycd)
1729      () abc ()      () abc ()
1730   0: ()   0: ()
1731      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1732   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1733      *** Failers      *** Failers
1734  No match  No match
1735      abcd      abcd
1736  No match  No match
1737      abcd)      abcd)
1738  No match  No match
1739      (abcd      (abcd
1740  No match  No match
1741    
1742  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1743  Capturing subpattern count = 1  Capturing subpattern count = 1
1744    Partial matching not supported
1745  Options: extended  Options: extended
1746  First char = '('  First char = '('
1747  Need char = ')'  Need char = ')'
1748      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1749   0: (ab(xy)cd)   0: (ab(xy)cd)
1750   1: cd   1: cd
1751      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1683  Need char = ')' Line 1754  Need char = ')'
1754   0: (x(y)z)   0: (x(y)z)
1755   1: z   1: z
1756    
1757  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1758  Capturing subpattern count = 0  Capturing subpattern count = 0
1759    Partial matching not supported
1760  Options: extended  Options: extended
1761  First char = '('  First char = '('
1762  Need char = ')'  Need char = ')'
# Line 1692  Need char = ')' Line 1764  Need char = ')'
1764   0: (abcd)   0: (abcd)
1765      (ab(xy)cd)      (ab(xy)cd)
1766   0: (xy)   0: (xy)
1767      (a(b(c)d)e)      (a(b(c)d)e)
1768   0: (c)   0: (c)
1769      ((ab))      ((ab))
1770   0: ((ab))   0: ((ab))
1771      *** Failers      *** Failers
1772  No match  No match
1773      ()      ()
1774  No match  No match
1775    
1776  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1777  Capturing subpattern count = 0  Capturing subpattern count = 0
1778    Partial matching not supported
1779  Options: extended  Options: extended
1780  First char = '('  First char = '('
1781  Need char = ')'  Need char = ')'
# Line 1711  Need char = ')' Line 1784  Need char = ')'
1784      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1785   0: (fsh)   0: (fsh)
1786    
1787  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1788  Capturing subpattern count = 1  Capturing subpattern count = 1
1789    Partial matching not supported
1790  Options: extended  Options: extended
1791  First char = '('  First char = '('
1792  Need char = ')'  Need char = ')'
# Line 1720  Need char = ')' Line 1794  Need char = ')'
1794   0: (ab(xy)cd)   0: (ab(xy)cd)
1795   1: cd   1: cd
1796    
1797  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1798  Capturing subpattern count = 2  Capturing subpattern count = 2
1799    Partial matching not supported
1800  Options: extended  Options: extended
1801  First char = '('  First char = '('
1802  Need char = ')'  Need char = ')'
# Line 1730  Need char = ')' Line 1805  Need char = ')'
1805   1: ab(xy)cd   1: ab(xy)cd
1806   2: cd   2: cd
1807    
1808  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1809  Capturing subpattern count = 3  Capturing subpattern count = 3
1810    Partial matching not supported
1811  Options: extended  Options: extended
1812  First char = '('  First char = '('
1813  Need char = ')'  Need char = ')'
# Line 1746  Need char = ')' Line 1822  Need char = ')'
1822   2: ab(xy)cd   2: ab(xy)cd
1823   3: cd   3: cd
1824    
1825  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1826  Capturing subpattern count = 3  Capturing subpattern count = 3
1827    Partial matching not supported
1828  Options: extended  Options: extended
1829  First char = '('  First char = '('
1830  Need char = ')'  Need char = ')'
# Line 1762  Need char = ')' Line 1839  Need char = ')'
1839   2: 123   2: 123
1840   3: cd   3: cd
1841    
1842  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1843  Capturing subpattern count = 11  Capturing subpattern count = 11
1844    Partial matching not supported
1845  Options: extended  Options: extended
1846  First char = '('  First char = '('
1847  Need char = ')'  Need char = ')'
# Line 1781  Need char = ')' Line 1859  Need char = ')'
1859  10: ab(xy)cd  10: ab(xy)cd
1860  11: cd  11: cd
1861    
1862  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1863  Capturing subpattern count = 3  Capturing subpattern count = 3
1864    Partial matching not supported
1865  Options: extended  Options: extended
1866  First char = '('  First char = '('
1867  Need char = ')'  Need char = ')'
# Line 1790  Need char = ')' Line 1869  Need char = ')'
1869   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1870   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1871   2: 123   2: 123
1872   3: <p>qrs   3: <unset>
1873    
1874  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1875  Capturing subpattern count = 3  Capturing subpattern count = 3
1876    Partial matching not supported
1877  Options: extended  Options: extended
1878  First char = '('  First char = '('
1879  Need char = ')'  Need char = ')'
# Line 1808  Need char = ')' Line 1888  Need char = ')'
1888   2: ij   2: ij
1889   3: (cd(ef)gh)   3: (cd(ef)gh)
1890    
1891  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1892    ------------------------------------------------------------------
1893            Bra
1894            ^
1895            [0-9A-Za-z]
1896            Ket
1897            End
1898    ------------------------------------------------------------------
1899    Capturing subpattern count = 0
1900    Options: anchored
1901    No first char
1902    No need char
1903    
1904    /^[[:^alnum:]]/DZ
1905    ------------------------------------------------------------------
1906            Bra
1907            ^
1908            [\x00-/:-@[-`{-\xff]
1909            Ket
1910            End
1911    ------------------------------------------------------------------
1912    Capturing subpattern count = 0
1913    Options: anchored
1914    No first char
1915    No need char
1916    
1917    /^[[:alpha:]]/DZ
1918    ------------------------------------------------------------------
1919            Bra
1920            ^
1921            [A-Za-z]
1922            Ket
1923            End
1924    ------------------------------------------------------------------
1925    Capturing subpattern count = 0
1926    Options: anchored
1927    No first char
1928    No need char
1929    
1930    /^[[:^alpha:]]/DZ
1931    ------------------------------------------------------------------
1932            Bra
1933            ^
1934            [\x00-@[-`{-\xff]
1935            Ket
1936            End
1937    ------------------------------------------------------------------
1938    Capturing subpattern count = 0
1939    Options: anchored
1940    No first char
1941    No need char
1942    
1943    /[_[:alpha:]]/IS
1944    Capturing subpattern count = 0
1945    No options
1946    No first char
1947    No need char
1948    Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1949      _ a b c d e f g h i j k l m n o p q r s t u v w x y z
1950    
1951    /^[[:ascii:]]/DZ
1952    ------------------------------------------------------------------
1953            Bra
1954            ^
1955            [\x00-\x7f]
1956            Ket
1957            End
1958    ------------------------------------------------------------------
1959    Capturing subpattern count = 0
1960    Options: anchored
1961    No first char
1962    No need char
1963    
1964    /^[[:^ascii:]]/DZ
1965    ------------------------------------------------------------------
1966            Bra
1967            ^
1968            [\x80-\xff]
1969            Ket
1970            End
1971    ------------------------------------------------------------------
1972    Capturing subpattern count = 0
1973    Options: anchored
1974    No first char
1975    No need char
1976    
1977    /^[[:blank:]]/DZ
1978  ------------------------------------------------------------------  ------------------------------------------------------------------
1979    0  37 Bra 0          Bra
1980    3     ^          ^
1981    4     [0-9A-Za-z]          [\x09 ]
1982   37  37 Ket          Ket
1983   40     End          End
1984  ------------------------------------------------------------------  ------------------------------------------------------------------
1985  Capturing subpattern count = 0  Capturing subpattern count = 0
1986  Options: anchored  Options: anchored
1987  No first char  No first char
1988  No need char  No need char
1989    
1990  /^[[:alpha:]]/D  /^[[:^blank:]]/DZ
1991  ------------------------------------------------------------------  ------------------------------------------------------------------
1992    0  37 Bra 0          Bra
1993    3     ^          ^
1994    4     [A-Za-z]          [\x00-\x08\x0a-\x1f!-\xff]
1995   37  37 Ket          Ket
1996   40     End          End
1997  ------------------------------------------------------------------  ------------------------------------------------------------------
1998  Capturing subpattern count = 0  Capturing subpattern count = 0
1999  Options: anchored  Options: anchored
2000  No first char  No first char
2001  No need char  No need char
2002    
2003  /^[[:ascii:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
2004    Capturing subpattern count = 0
2005    Contains explicit CR or LF match
2006    No options
2007    No first char
2008    No need char
2009    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2010    
2011    /^[[:cntrl:]]/DZ
2012  ------------------------------------------------------------------  ------------------------------------------------------------------
2013    0  37 Bra 0          Bra
2014    3     ^          ^
2015    4     [\x00-\x7f]          [\x00-\x1f\x7f]
2016   37  37 Ket          Ket
2017   40     End          End
2018  ------------------------------------------------------------------  ------------------------------------------------------------------
2019  Capturing subpattern count = 0  Capturing subpattern count = 0
2020  Options: anchored  Options: anchored
2021  No first char  No first char
2022  No need char  No need char
2023    
2024  /^[[:cntrl:]]/D  /^[[:digit:]]/DZ
2025  ------------------------------------------------------------------  ------------------------------------------------------------------
2026    0  37 Bra 0          Bra
2027    3     ^          ^
2028    4     [\x00-\x1f\x7f]          [0-9]
2029   37  37 Ket          Ket
2030   40     End          End
2031  ------------------------------------------------------------------  ------------------------------------------------------------------
2032  Capturing subpattern count = 0  Capturing subpattern count = 0
2033  Options: anchored  Options: anchored
2034  No first char  No first char
2035  No need char  No need char
2036    
2037  /^[[:digit:]]/D  /^[[:graph:]]/DZ
2038  ------------------------------------------------------------------  ------------------------------------------------------------------
2039    0  37 Bra 0          Bra
2040    3     ^          ^
2041    4     [0-9]          [!-~]
2042   37  37 Ket          Ket
2043   40     End          End
2044  ------------------------------------------------------------------  ------------------------------------------------------------------
2045  Capturing subpattern count = 0  Capturing subpattern count = 0
2046  Options: anchored  Options: anchored
2047  No first char  No first char
2048  No need char  No need char
2049    
2050  /^[[:graph:]]/D  /^[[:lower:]]/DZ
2051  ------------------------------------------------------------------  ------------------------------------------------------------------
2052    0  37 Bra 0          Bra
2053    3     ^          ^
2054    4     [!-~]          [a-z]
2055   37  37 Ket          Ket
2056   40     End          End
2057  ------------------------------------------------------------------  ------------------------------------------------------------------
2058  Capturing subpattern count = 0  Capturing subpattern count = 0
2059  Options: anchored  Options: anchored
2060  No first char  No first char
2061  No need char  No need char
2062    
2063  /^[[:lower:]]/D  /^[[:print:]]/DZ
2064  ------------------------------------------------------------------  ------------------------------------------------------------------
2065    0  37 Bra 0          Bra
2066    3     ^          ^
2067    4     [a-z]          [ -~]
2068   37  37 Ket          Ket
2069   40     End          End
2070  ------------------------------------------------------------------  ------------------------------------------------------------------
2071  Capturing subpattern count = 0  Capturing subpattern count = 0
2072  Options: anchored  Options: anchored
2073  No first char  No first char
2074  No need char  No need char
2075    
2076  /^[[:print:]]/D  /^[[:punct:]]/DZ
2077  ------------------------------------------------------------------  ------------------------------------------------------------------
2078    0  37 Bra 0          Bra
2079    3     ^          ^
2080    4     [ -~]          [!-/:-@[-`{-~]
2081   37  37 Ket          Ket
2082   40     End          End
2083  ------------------------------------------------------------------  ------------------------------------------------------------------
2084  Capturing subpattern count = 0  Capturing subpattern count = 0
2085  Options: anchored  Options: anchored
2086  No first char  No first char
2087  No need char  No need char
2088    
2089  /^[[:punct:]]/D  /^[[:space:]]/DZ
2090  ------------------------------------------------------------------  ------------------------------------------------------------------
2091    0  37 Bra 0          Bra
2092    3     ^          ^
2093    4     [!-/:-@[-`{-~]          [\x09-\x0d ]
2094   37  37 Ket          Ket
2095   40     End          End
2096  ------------------------------------------------------------------  ------------------------------------------------------------------
2097  Capturing subpattern count = 0  Capturing subpattern count = 0
2098  Options: anchored  Options: anchored
2099  No first char  No first char
2100  No need char  No need char
2101    
2102  /^[[:space:]]/D  /^[[:upper:]]/DZ
2103  ------------------------------------------------------------------  ------------------------------------------------------------------
2104    0  37 Bra 0          Bra
2105    3     ^          ^
2106    4     [\x09-\x0d ]          [A-Z]
2107   37  37 Ket          Ket
2108   40     End          End
2109  ------------------------------------------------------------------  ------------------------------------------------------------------
2110  Capturing subpattern count = 0  Capturing subpattern count = 0
2111  Options: anchored  Options: anchored
2112  No first char  No first char
2113  No need char  No need char
2114    
2115  /^[[:upper:]]/D  /^[[:xdigit:]]/DZ
2116  ------------------------------------------------------------------  ------------------------------------------------------------------
2117    0  37 Bra 0          Bra
2118    3     ^          ^
2119    4     [A-Z]          [0-9A-Fa-f]
2120   37  37 Ket          Ket
2121   40     End          End
2122  ------------------------------------------------------------------  ------------------------------------------------------------------
2123  Capturing subpattern count = 0  Capturing subpattern count = 0
2124  Options: anchored  Options: anchored
2125  No first char  No first char
2126  No need char  No need char
2127    
2128  /^[[:xdigit:]]/D  /^[[:word:]]/DZ
2129  ------------------------------------------------------------------  ------------------------------------------------------------------
2130    0  37 Bra 0          Bra
2131    3     ^          ^
2132    4     [0-9A-Fa-f]          [0-9A-Z_a-z]
2133   37  37 Ket          Ket
2134   40     End          End
2135  ------------------------------------------------------------------  ------------------------------------------------------------------
2136  Capturing subpattern count = 0  Capturing subpattern count = 0
2137  Options: anchored  Options: anchored
2138  No first char  No first char
2139  No need char  No need char
2140    
2141  /^[[:word:]]/D  /^[[:^cntrl:]]/DZ
2142  ------------------------------------------------------------------  ------------------------------------------------------------------
2143    0  37 Bra 0          Bra
2144    3     ^          ^
2145    4     [0-9A-Z_a-z]          [ -~\x80-\xff]
2146   37  37 Ket          Ket
2147   40     End          End
2148  ------------------------------------------------------------------  ------------------------------------------------------------------
2149  Capturing subpattern count = 0  Capturing subpattern count = 0
2150  Options: anchored  Options: anchored
2151  No first char  No first char
2152  No need char  No need char
2153    
2154  /^[[:^cntrl:]]/D  /^[12[:^digit:]]/DZ
2155  ------------------------------------------------------------------  ------------------------------------------------------------------
2156    0  37 Bra 0          Bra
2157    3     ^          ^
2158    4     [ -~\x80-\xff]          [\x00-/12:-\xff]
2159   37  37 Ket          Ket
2160   40     End          End
2161  ------------------------------------------------------------------  ------------------------------------------------------------------
2162  Capturing subpattern count = 0  Capturing subpattern count = 0
2163  Options: anchored  Options: anchored
2164  No first char  No first char
2165  No need char  No need char
2166    
2167  /^[12[:^digit:]]/D  /^[[:^blank:]]/DZ
2168  ------------------------------------------------------------------  ------------------------------------------------------------------
2169    0  37 Bra 0          Bra
2170    3     ^          ^
2171    4     [\x00-/1-2:-\xff]          [\x00-\x08\x0a-\x1f!-\xff]
2172   37  37 Ket          Ket
2173   40     End          End
2174  ------------------------------------------------------------------  ------------------------------------------------------------------
2175  Capturing subpattern count = 0  Capturing subpattern count = 0
2176  Options: anchored  Options: anchored
2177  No first char  No first char
2178  No need char  No need char
2179    
2180  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2181  ------------------------------------------------------------------  ------------------------------------------------------------------
2182    0  36 Bra 0          Bra
2183    3     [%0-1A-Za-z]          [%01A-Za-z]
2184   36  36 Ket          Ket
2185   39     End          End
2186  ------------------------------------------------------------------  ------------------------------------------------------------------
2187  Capturing subpattern count = 0  Capturing subpattern count = 0
2188  No options  No options
2189  No first char  No first char
2190  No need char  No need char
2191    
2192  /[[.ch.]]/  /[[.ch.]]/I
2193  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2194    
2195  /[[=ch=]]/  /[[=ch=]]/I
2196  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2197    
2198  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2199  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2200    
2201  /[[:upper:]]/i  /[[:upper:]]/Ii
2202  Capturing subpattern count = 0  Capturing subpattern count = 0
2203  Options: caseless  Options: caseless
2204  No first char  No first char
2205  No need char  No need char
2206      A      A
2207   0: A   0: A
2208      a      a
2209   0: a   0: a
2210    
2211  /[[:lower:]]/i  /[[:lower:]]/Ii
2212  Capturing subpattern count = 0  Capturing subpattern count = 0
2213  Options: caseless  Options: caseless
2214  No first char  No first char
2215  No need char  No need char
2216      A      A
2217   0: A   0: A
2218      a      a
2219   0: a   0: a
2220    
2221  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2222  Capturing subpattern count = 1  Capturing subpattern count = 1
2223  Options: caseless  Options: caseless
 Case state changes  
2224  No first char  No first char
2225  No need char  No need char
2226      ab      ab
# Line 2061  No need char Line 2234  No need char
2234   1: a   1: a
2235      Ab      Ab
2236  No match  No match
2237      AB      AB
2238  No match  No match
2239    
2240  / End of test input /  /[\200-\110]/I
2241    Failed: range out of order in character class at offset 9
2242    
2243    /^(?(0)f|b)oo/I
2244    Failed: invalid condition (?(0) at offset 6
2245    
2246    /This one's here because of the large output vector needed/I
2247  Capturing subpattern count = 0  Capturing subpattern count = 0
2248  No options  No options
2249  First char = ' '  First char = 'T'
2250  Need char = ' '  Need char = 'd'
2251    
2252    /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
2253    Capturing subpattern count = 271
2254    Max back reference = 270
2255    Partial matching not supported
2256    No options
2257    No first char
2258    No need char
2259        \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
2260     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
2261     1: 1
2262     2: 2
2263     3: 3
2264     4: 4
2265     5: 5
2266     6: 6
2267     7: 7
2268     8: 8
2269     9: 9
2270    10: 10
2271    11: 11
2272    12: 12
2273    13: 13
2274    14: 14
2275    15: 15
2276    16: 16
2277    17: 17
2278    18: 18
2279    19: 19
2280    20: 20
2281    21: 21
2282    22: 22
2283    23: 23
2284    24: 24
2285    25: 25
2286    26: 26
2287    27: 27
2288    28: 28
2289    29: 29
2290    30: 30
2291    31: 31
2292    32: 32
2293    33: 33
2294    34: 34
2295    35: 35
2296    36: 36
2297    37: 37
2298    38: 38
2299    39: 39
2300    40: 40
2301    41: 41
2302    42: 42
2303    43: 43
2304    44: 44
2305    45: 45
2306    46: 46
2307    47: 47
2308    48: 48
2309    49: 49
2310    50: 50
2311    51: 51
2312    52: 52
2313    53: 53
2314    54: 54
2315    55: 55
2316    56: 56
2317    57: 57
2318    58: 58
2319    59: 59
2320    60: 60
2321    61: 61
2322    62: 62
2323    63: 63
2324    64: 64
2325    65: 65
2326    66: 66
2327    67: 67
2328    68: 68
2329    69: 69
2330    70: 70
2331    71: 71
2332    72: 72
2333    73: 73
2334    74: 74
2335    75: 75
2336    76: 76
2337    77: 77
2338    78: 78
2339    79: 79
2340    80: 80
2341    81: 81
2342    82: 82
2343    83: 83
2344    84: 84
2345    85: 85
2346    86: 86
2347    87: 87
2348    88: 88
2349    89: 89
2350    90: 90
2351    91: 91
2352    92: 92
2353    93: 93
2354    94: 94
2355    95: 95
2356    96: 96
2357    97: 97
2358    98: 98
2359    99: 99
2360    100: 100
2361    101: 101
2362    102: 102
2363    103: 103
2364    104: 104
2365    105: 105
2366    106: 106
2367    107: 107
2368    108: 108
2369    109: 109
2370    110: 110
2371    111: 111
2372    112: 112
2373    113: 113
2374    114: 114
2375    115: 115
2376    116: 116
2377    117: 117
2378    118: 118
2379    119: 119
2380    120: 120
2381    121: 121
2382    122: 122
2383    123: 123
2384    124: 124
2385    125: 125
2386    126: 126
2387    127: 127
2388    128: 128
2389    129: 129
2390    130: 130
2391    131: 131
2392    132: 132
2393    133: 133
2394    134: 134
2395    135: 135
2396    136: 136
2397    137: 137
2398    138: 138
2399    139: 139
2400    140: 140
2401    141: 141
2402    142: 142
2403    143: 143
2404    144: 144
2405    145: 145
2406    146: 146
2407    147: 147
2408    148: 148
2409    149: 149
2410    150: 150
2411    151: 151
2412    152: 152
2413    153: 153
2414    154: 154
2415    155: 155
2416    156: 156
2417    157: 157
2418    158: 158
2419    159: 159
2420    160: 160
2421    161: 161
2422    162: 162
2423    163: 163
2424    164: 164
2425    165: 165
2426    166: 166
2427    167: 167
2428    168: 168
2429    169: 169
2430    170: 170
2431    171: 171
2432    172: 172
2433    173: 173
2434    174: 174
2435    175: 175
2436    176: 176
2437    177: 177
2438    178: 178
2439    179: 179
2440    180: 180
2441    181: 181
2442    182: 182
2443    183: 183
2444    184: 184
2445    185: 185
2446    186: 186
2447    187: 187
2448    188: 188
2449    189: 189
2450    190: 190
2451    191: 191
2452    192: 192
2453    193: 193
2454    194: 194
2455    195: 195
2456    196: 196
2457    197: 197
2458    198: 198
2459    199: 199
2460    200: 200
2461    201: 201
2462    202: 202
2463    203: 203
2464    204: 204
2465    205: 205
2466    206: 206
2467    207: 207
2468    208: 208
2469    209: 209
2470    210: 210
2471    211: 211
2472    212: 212
2473    213: 213
2474    214: 214
2475    215: 215
2476    216: 216
2477    217: 217
2478    218: 218
2479    219: 219
2480    220: 220
2481    221: 221
2482    222: 222
2483    223: 223
2484    224: 224
2485    225: 225
2486    226: 226
2487    227: 227
2488    228: 228
2489    229: 229
2490    230: 230
2491    231: 231
2492    232: 232
2493    233: 233
2494    234: 234
2495    235: 235
2496    236: 236
2497    237: 237
2498    238: 238
2499    239: 239
2500    240: 240
2501    241: 241
2502    242: 242
2503    243: 243
2504    244: 244
2505    245: 245
2506    246: 246
2507    247: 247
2508    248: 248
2509    249: 249
2510    250: 250
2511    251: 251
2512    252: 252
2513    253: 253
2514    254: 254
2515    255: 255
2516    256: 256
2517    257: 257
2518    258: 258
2519    259: 259
2520    260: 260
2521    261: 261
2522    262: 262
2523    263: 263
2524    264: 264
2525    265: 265
2526    266: 266
2527    267: 267
2528    268: 268
2529    269: 269
2530    270: ABC
2531    271: ABC
2532    
2533    /This one's here because Perl does this differently and PCRE can't at present/I
2534    Capturing subpattern count = 0
2535    No options
2536    First char = 'T'
2537    Need char = 't'
2538    
2539    /(main(O)?)+/I
2540    Capturing subpattern count = 2
2541    No options
2542    First char = 'm'
2543    Need char = 'n'
2544        mainmain
2545     0: mainmain
2546     1: main
2547        mainOmain
2548     0: mainOmain
2549     1: main
2550     2: O
2551    
2552    /These are all cases where Perl does it differently (nested captures)/I
2553    Capturing subpattern count = 1
2554    No options
2555    First char = 'T'
2556    Need char = 's'
2557    
2558    /^(a(b)?)+$/I
2559    Capturing subpattern count = 2
2560    Options: anchored
2561    No first char
2562    No need char
2563        aba
2564     0: aba
2565     1: a
2566     2: b
2567    
2568    /^(aa(bb)?)+$/I
2569    Capturing subpattern count = 2
2570    Options: anchored
2571    No first char
2572    No need char
2573        aabbaa
2574     0: aabbaa
2575     1: aa
2576     2: bb
2577    
2578    /^(aa|aa(bb))+$/I
2579    Capturing subpattern count = 2
2580    Options: anchored
2581    No first char
2582    No need char
2583        aabbaa
2584     0: aabbaa
2585     1: aa
2586     2: bb
2587    
2588    /^(aa(bb)??)+$/I
2589    Capturing subpattern count = 2
2590    Options: anchored
2591    No first char
2592    No need char
2593        aabbaa
2594     0: aabbaa
2595     1: aa
2596     2: bb
2597    
2598    /^(?:aa(bb)?)+$/I
2599    Capturing subpattern count = 1
2600    Options: anchored
2601    No first char
2602    No need char
2603        aabbaa
2604     0: aabbaa
2605     1: bb
2606    
2607    /^(aa(b(b))?)+$/I
2608    Capturing subpattern count = 3
2609    Options: anchored
2610    No first char
2611    No need char
2612        aabbaa
2613     0: aabbaa
2614     1: aa
2615     2: bb
2616     3: b
2617    
2618    /^(?:aa(b(b))?)+$/I
2619    Capturing subpattern count = 2
2620    Options: anchored
2621    No first char
2622    No need char
2623        aabbaa
2624     0: aabbaa
2625     1: bb
2626     2: b
2627    
2628    /^(?:aa(b(?:b))?)+$/I
2629    Capturing subpattern count = 1
2630    Options: anchored
2631    No first char
2632    No need char
2633        aabbaa
2634     0: aabbaa
2635     1: bb
2636    
2637    /^(?:aa(bb(?:b))?)+$/I
2638    Capturing subpattern count = 1
2639    Options: anchored
2640    No first char
2641    No need char
2642        aabbbaa
2643     0: aabbbaa
2644     1: bbb
2645    
2646    /^(?:aa(b(?:bb))?)+$/I
2647    Capturing subpattern count = 1
2648    Options: anchored
2649    No first char
2650    No need char
2651        aabbbaa
2652     0: aabbbaa
2653     1: bbb
2654    
2655    /^(?:aa(?:b(b))?)+$/I
2656    Capturing subpattern count = 1
2657    Options: anchored
2658    No first char
2659    No need char
2660        aabbaa
2661     0: aabbaa
2662     1: b
2663    
2664    /^(?:aa(?:b(bb))?)+$/I
2665    Capturing subpattern count = 1
2666    Options: anchored
2667    No first char
2668    No need char
2669        aabbbaa
2670     0: aabbbaa
2671     1: bb
2672    
2673    /^(aa(b(bb))?)+$/I
2674    Capturing subpattern count = 3
2675    Options: anchored
2676    No first char
2677    No need char
2678        aabbbaa
2679     0: aabbbaa
2680     1: aa
2681     2: bbb
2682     3: bb
2683    
2684    /^(aa(bb(bb))?)+$/I
2685    Capturing subpattern count = 3
2686    Options: anchored
2687    No first char
2688    No need char
2689        aabbbbaa
2690     0: aabbbbaa
2691     1: aa
2692     2: bbbb
2693     3: bb
2694    
2695    /--------------------------------------------------------------------/I
2696    Capturing subpattern count = 0
2697    No options
2698    First char = '-'
2699    Need char = '-'
2700    
2701    /#/IxDZ
2702    ------------------------------------------------------------------
2703            Bra
2704            Ket
2705            End
2706    ------------------------------------------------------------------
2707    Capturing subpattern count = 0
2708    Options: extended
2709    No first char
2710    No need char
2711    
2712    /a#/IxDZ
2713    ------------------------------------------------------------------
2714            Bra
2715            a
2716            Ket
2717            End
2718    ------------------------------------------------------------------
2719    Capturing subpattern count = 0
2720    Options: extended
2721    First char = 'a'
2722    No need char
2723    
2724    /[\s]/DZ
2725    ------------------------------------------------------------------
2726            Bra
2727            [\x09\x0a\x0c\x0d ]
2728            Ket
2729            End
2730    ------------------------------------------------------------------
2731    Capturing subpattern count = 0
2732    No options
2733    No first char
2734    No need char
2735    
2736    /[\S]/DZ
2737    ------------------------------------------------------------------
2738            Bra
2739            [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2740            Ket
2741            End
2742    ------------------------------------------------------------------
2743    Capturing subpattern count = 0
2744    No options
2745    No first char
2746    No need char
2747    
2748    /a(?i)b/DZ
2749    ------------------------------------------------------------------
2750            Bra
2751            a
2752         01 Opt
2753         NC b
2754            Ket
2755            End
2756    ------------------------------------------------------------------
2757    Capturing subpattern count = 0
2758    No options
2759    First char = 'a'
2760    Need char = 'b' (caseless)
2761        ab
2762     0: ab
2763        aB
2764     0: aB
2765        *** Failers
2766    No match
2767        AB
2768    No match
2769    
2770    /(a(?i)b)/DZ
2771    ------------------------------------------------------------------
2772            Bra
2773            CBra 1
2774            a
2775         01 Opt
2776         NC b
2777            Ket
2778         00 Opt
2779            Ket
2780            End
2781    ------------------------------------------------------------------
2782    Capturing subpattern count = 1
2783    No options
2784    First char = 'a'
2785    Need char = 'b' (caseless)
2786        ab
2787     0: ab
2788     1: ab
2789        aB
2790     0: aB
2791     1: aB
2792        *** Failers
2793    No match
2794        AB
2795    No match
2796    
2797    /   (?i)abc/IxDZ
2798    ------------------------------------------------------------------
2799            Bra
2800         NC abc
2801            Ket
2802            End
2803    ------------------------------------------------------------------
2804    Capturing subpattern count = 0
2805    Options: caseless extended
2806    First char = 'a' (caseless)
2807    Need char = 'c' (caseless)
2808    
2809    /#this is a comment
2810      (?i)abc/IxDZ
2811    ------------------------------------------------------------------
2812            Bra
2813         NC abc
2814            Ket
2815            End
2816    ------------------------------------------------------------------
2817    Capturing subpattern count = 0
2818    Options: caseless extended
2819    First char = 'a' (caseless)
2820    Need char = 'c' (caseless)
2821    
2822    /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2823    ------------------------------------------------------------------
2824            Bra
2825            123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2826            Ket
2827            End
2828    ------------------------------------------------------------------
2829    Capturing subpattern count = 0
2830    No options
2831    First char = '1'
2832    Need char = '0'
2833    
2834    /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2835    ------------------------------------------------------------------
2836            Bra
2837            123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2838            Ket
2839            End
2840    ------------------------------------------------------------------
2841    Capturing subpattern count = 0
2842    No options
2843    First char = '1'
2844    Need char = '0'
2845    
2846    /\Q\E/DZ
2847    ------------------------------------------------------------------
2848            Bra
2849            Ket
2850            End
2851    ------------------------------------------------------------------
2852    Capturing subpattern count = 0
2853    No options
2854    No first char
2855    No need char
2856        \
2857     0:
2858    
2859    /\Q\Ex/DZ
2860    ------------------------------------------------------------------
2861            Bra
2862            x
2863            Ket
2864            End
2865    ------------------------------------------------------------------
2866    Capturing subpattern count = 0
2867    No options
2868    First char = 'x'
2869    No need char
2870    
2871    / \Q\E/DZ
2872    ------------------------------------------------------------------
2873            Bra
2874    
2875            Ket
2876            End
2877    ------------------------------------------------------------------
2878    Capturing subpattern count = 0
2879    No options
2880    First char = ' '
2881    No need char
2882    
2883    /a\Q\E/DZ
2884    ------------------------------------------------------------------
2885            Bra
2886            a
2887            Ket
2888            End
2889    ------------------------------------------------------------------
2890    Capturing subpattern count = 0
2891    No options
2892    First char = 'a'
2893    No need char
2894      abc
2895     0: a
2896      bca
2897     0: a
2898      bac
2899     0: a
2900    
2901    /a\Q\Eb/DZ
2902    ------------------------------------------------------------------
2903            Bra
2904            ab
2905            Ket
2906            End
2907    ------------------------------------------------------------------
2908    Capturing subpattern count = 0
2909    No options
2910    First char = 'a'
2911    Need char = 'b'
2912      abc
2913     0: ab
2914    
2915    /\Q\Eabc/DZ
2916    ------------------------------------------------------------------
2917            Bra
2918            abc
2919            Ket
2920            End
2921    ------------------------------------------------------------------
2922    Capturing subpattern count = 0
2923    No options
2924    First char = 'a'
2925    Need char = 'c'
2926    
2927    /x*+\w/DZ
2928    ------------------------------------------------------------------
2929            Bra
2930            x*+
2931            \w
2932            Ket
2933            End
2934    ------------------------------------------------------------------
2935    Capturing subpattern count = 0
2936    Partial matching not supported
2937    No options
2938    No first char
2939    No need char
2940        *** Failers
2941     0: F
2942        xxxxx
2943    No match
2944    
2945    /x?+/DZ
2946    ------------------------------------------------------------------
2947            Bra
2948            x?+
2949            Ket
2950            End
2951    ------------------------------------------------------------------
2952    Capturing subpattern count = 0
2953    No options
2954    No first char
2955    No need char
2956    
2957    /x++/DZ
2958    ------------------------------------------------------------------
2959            Bra
2960            x++
2961            Ket
2962            End
2963    ------------------------------------------------------------------
2964    Capturing subpattern count = 0
2965    Partial matching not supported
2966    No options
2967    First char = 'x'
2968    No need char
2969    
2970    /x{1,3}+/DZ
2971    ------------------------------------------------------------------
2972            Bra
2973            Once
2974            x
2975            x{0,2}
2976            Ket
2977            Ket
2978            End
2979    ------------------------------------------------------------------
2980    Capturing subpattern count = 0
2981    Partial matching not supported
2982    No options
2983    First char = 'x'
2984    No need char
2985    
2986    /(x)*+/DZ
2987    ------------------------------------------------------------------
2988            Bra
2989            Once
2990            Brazero
2991            CBra 1
2992            x
2993            KetRmax
2994            Ket
2995            Ket
2996            End
2997    ------------------------------------------------------------------
2998    Capturing subpattern count = 1
2999    No options
3000    No first char
3001    No need char
3002    
3003    /^(\w++|\s++)*$/I
3004    Capturing subpattern count = 1
3005    Partial matching not supported
3006    Options: anchored
3007    No first char
3008    No need char
3009        now is the time for all good men to come to the aid of the party
3010     0: now is the time for all good men to come to the aid of the party
3011     1: party
3012        *** Failers
3013    No match
3014        this is not a line with only words and spaces!
3015    No match
3016    
3017    /(\d++)(\w)/I
3018    Capturing subpattern count = 2
3019    Partial matching not supported
3020    No options
3021    No first char
3022    No need char
3023        12345a
3024     0: 12345a
3025     1: 12345
3026     2: a
3027        *** Failers
3028    No match
3029        12345+
3030    No match
3031    
3032    /a++b/I
3033    Capturing subpattern count = 0
3034    Partial matching not supported
3035    No options
3036    First char = 'a'
3037    Need char = 'b'
3038        aaab
3039     0: aaab
3040    
3041    /(a++b)/I
3042    Capturing subpattern count = 1
3043    Partial matching not supported
3044    No options
3045    First char = 'a'
3046    Need char = 'b'
3047        aaab
3048     0: aaab
3049     1: aaab
3050    
3051    /(a++)b/I
3052    Capturing subpattern count = 1
3053    Partial matching not supported
3054    No options
3055    First char = 'a'
3056    Need char = 'b'
3057        aaab
3058     0: aaab
3059     1: aaa
3060    
3061    /([^()]++|\([^()]*\))+/I
3062    Capturing subpattern count = 1
3063    Partial matching not supported
3064    No options
3065    No first char
3066    No need char
3067        ((abc(ade)ufh()()x
3068     0: abc(ade)ufh()()x
3069     1: x
3070    
3071    /\(([^()]++|\([^()]+\))+\)/I
3072    Capturing subpattern count = 1
3073    Partial matching not supported
3074    No options
3075    First char = '('
3076    Need char = ')'
3077        (abc)
3078     0: (abc)
3079     1: abc
3080        (abc(def)xyz)
3081     0: (abc(def)xyz)
3082     1: xyz
3083        *** Failers
3084    No match
3085        ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3086    No match
3087    
3088    /(abc){1,3}+/DZ
3089    ------------------------------------------------------------------
3090            Bra
3091            Once
3092            CBra 1
3093            abc
3094            Ket
3095            Brazero
3096            Bra
3097            CBra 1
3098            abc
3099            Ket
3100            Brazero
3101            CBra 1
3102            abc
3103            Ket
3104            Ket
3105            Ket
3106            Ket
3107            End
3108    ------------------------------------------------------------------
3109    Capturing subpattern count = 1
3110    No options
3111    First char = 'a'
3112    Need char = 'c'
3113    
3114    /a+?+/I
3115    Failed: nothing to repeat at offset 3
3116    
3117    /a{2,3}?+b/I
3118    Failed: nothing to repeat at offset 7
3119    
3120    /(?U)a+?+/I
3121    Failed: nothing to repeat at offset 7
3122    
3123    /a{2,3}?+b/IU
3124    Failed: nothing to repeat at offset 7
3125    
3126    /x(?U)a++b/DZ
3127    ------------------------------------------------------------------
3128            Bra
3129            x
3130            a++
3131            b
3132            Ket
3133            End
3134    ------------------------------------------------------------------
3135    Capturing subpattern count = 0
3136    Partial matching not supported
3137    No options
3138    First char = 'x'
3139    Need char = 'b'
3140        xaaaab
3141     0: xaaaab
3142    
3143    /(?U)xa++b/DZ
3144    ------------------------------------------------------------------
3145            Bra
3146            x
3147            a++
3148            b
3149            Ket
3150            End
3151    ------------------------------------------------------------------
3152    Capturing subpattern count = 0
3153    Partial matching not supported
3154    Options: ungreedy
3155    First char = 'x'
3156    Need char = 'b'
3157        xaaaab
3158     0: xaaaab
3159    
3160    /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3161    ------------------------------------------------------------------
3162            Bra
3163            ^
3164            CBra 1
3165            CBra 2
3166            a+
3167            Ket
3168            CBra 3
3169            [ab]+?
3170            Ket
3171            CBra 4
3172            [bc]+
3173            Ket
3174            CBra 5
3175            \w*
3176            Ket
3177            Ket
3178            Ket
3179            End
3180    ------------------------------------------------------------------
3181    Capturing subpattern count = 5
3182    Partial matching not supported
3183    Options: anchored
3184    No first char
3185    No need char
3186    
3187    /^x(?U)a+b/DZ
3188    ------------------------------------------------------------------
3189            Bra
3190            ^
3191            x
3192            a++
3193            b
3194            Ket
3195            End
3196    ------------------------------------------------------------------
3197    Capturing subpattern count = 0
3198    Partial matching not supported
3199    Options: anchored
3200    No first char
3201    Need char = 'b'
3202    
3203    /^x(?U)(a+)b/DZ
3204    ------------------------------------------------------------------
3205            Bra
3206            ^
3207            x
3208            CBra 1
3209            a+?
3210            Ket
3211            b
3212            Ket
3213            End
3214    ------------------------------------------------------------------
3215    Capturing subpattern count = 1
3216    Partial matching not supported
3217    Options: anchored
3218    No first char
3219    Need char = 'b'
3220    
3221    /[.x.]/I
3222    Failed: POSIX collating elements are not supported at offset 0
3223    
3224    /[=x=]/I
3225    Failed: POSIX collating elements are not supported at offset 0
3226    
3227    /[:x:]/I
3228    Failed: POSIX named classes are supported only within a class at offset 0
3229    
3230    /\l/I
3231    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3232    
3233    /\L/I
3234    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3235    
3236    /\N{name}/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    /\U/I
3243    Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3244    
3245    /[/I
3246    Failed: missing terminating ] for character class at offset 1
3247    
3248    /[a-/I
3249    Failed: missing terminating ] for character class at offset 3
3250    
3251    /[[:space:]/I
3252    Failed: missing terminating ] for character class at offset 10
3253    
3254    /[\s]/IDZ
3255    ------------------------------------------------------------------
3256            Bra
3257            [\x09\x0a\x0c\x0d ]
3258            Ket
3259            End
3260    ------------------------------------------------------------------
3261    Capturing subpattern count = 0
3262    No options
3263    No first char
3264    No need char
3265    
3266    /[[:space:]]/IDZ
3267    ------------------------------------------------------------------
3268            Bra
3269            [\x09-\x0d ]
3270            Ket
3271            End
3272    ------------------------------------------------------------------
3273    Capturing subpattern count = 0
3274    No options
3275    No first char
3276    No need char
3277    
3278    /[[:space:]abcde]/IDZ
3279    ------------------------------------------------------------------
3280            Bra
3281            [\x09-\x0d a-e]
3282            Ket
3283            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|IDZ
3314    ------------------------------------------------------------------
3315            Bra
3316            8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3317            \b
3318            Ket
3319            End
3320    ------------------------------------------------------------------
3321    Capturing subpattern count = 0
3322    No options
3323    First char = '8'
3324    Need char = 'X'
3325    
3326    |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
3327    ------------------------------------------------------------------
3328            Bra
3329            $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3330            \b
3331            Ket
3332            End
3333    ------------------------------------------------------------------
3334    Capturing subpattern count = 0
3335    No options
3336    First char = '$'
3337    Need char = 'X'
3338    
3339    /(.*)\d+\1/I
3340    Capturing subpattern count = 1
3341    Max back reference = 1
3342    Partial matching not supported
3343    No options
3344    No first char
3345    No need char
3346    
3347    /(.*)\d+/I
3348    Capturing subpattern count = 1
3349    Partial matching not supported
3350    No options
3351    First char at start or follows newline
3352    No need char
3353    
3354    /(.*)\d+\1/Is
3355    Capturing subpattern count = 1
3356    Max back reference = 1
3357    Partial matching not supported
3358    Options: dotall
3359    No first char
3360    No need char
3361    
3362    /(.*)\d+/Is
3363    Capturing subpattern count = 1
3364    Partial matching not supported
3365    Options: anchored dotall
3366    No first char
3367    No need char
3368    
3369    /(.*(xyz))\d+\2/I
3370    Capturing subpattern count = 2
3371    Max back reference = 2
3372    Partial matching not supported
3373    No options
3374    First char at start or follows newline
3375    Need char = 'z'
3376    
3377    /((.*))\d+\1/I
3378    Capturing subpattern count = 2
3379    Max back reference = 1
3380    Partial matching not supported
3381    No options
3382    No first char
3383    No need char
3384        abc123bc
3385     0: bc123bc
3386     1: bc
3387     2: bc
3388    
3389    /a[b]/I
3390    Capturing subpattern count = 0
3391    No options
3392    First char = 'a'
3393    Need char = 'b'
3394    
3395    /(?=a).*/I
3396    Capturing subpattern count = 0
3397    Partial matching not supported
3398    No options
3399    First char = 'a'
3400    No need char
3401    
3402    /(?=abc).xyz/IiI
3403    Capturing subpattern count = 0
3404    Options: caseless
3405    First char = 'a' (caseless)
3406    Need char = 'z' (caseless)
3407    
3408    /(?=abc)(?i).xyz/I
3409    Capturing subpattern count = 0
3410    No options
3411    First char = 'a'
3412    Need char = 'z' (caseless)
3413    
3414    /(?=a)(?=b)/I
3415    Capturing subpattern count = 0
3416    No options
3417    First char = 'a'
3418    No need char
3419    
3420    /(?=.)a/I
3421    Capturing subpattern count = 0
3422    No options
3423    First char = 'a'
3424    No need char
3425    
3426    /((?=abcda)a)/I
3427    Capturing subpattern count = 1
3428    No options
3429    First char = 'a'
3430    Need char = 'a'
3431    
3432    /((?=abcda)ab)/I
3433    Capturing subpattern count = 1
3434    No options
3435    First char = 'a'
3436    Need char = 'b'
3437    
3438    /()a/I
3439    Capturing subpattern count = 1
3440    No options
3441    No first char
3442    Need char = 'a'
3443    
3444    /(?(1)ab|ac)/I
3445    Capturing subpattern count = 0
3446    No options
3447    First char = 'a'
3448    No need char
3449    
3450    /(?(1)abz|acz)/I
3451    Capturing subpattern count = 0
3452    No options
3453    First char = 'a'
3454    Need char = 'z'
3455    
3456    /(?(1)abz)/I
3457    Capturing subpattern count = 0
3458    No options
3459    No first char
3460    No need char
3461    
3462    /(?(1)abz)123/I
3463    Capturing subpattern count = 0
3464    No options
3465    No first char
3466    Need char = '3'
3467    
3468    /(a)+/I
3469    Capturing subpattern count = 1
3470    No options
3471    First char = 'a'
3472    No need char
3473    
3474    /(a){2,3}/I
3475    Capturing subpattern count = 1
3476    No options
3477    First char = 'a'
3478    Need char = 'a'
3479    
3480    /(a)*/I
3481    Capturing subpattern count = 1
3482    No options
3483    No first char
3484    No need char
3485    
3486    /[a]/I
3487    Capturing subpattern count = 0
3488    No options
3489    First char = 'a'
3490    No need char
3491    
3492    /[ab]/I
3493    Capturing subpattern count = 0
3494    No options
3495    No first char
3496    No need char
3497    
3498    /[ab]/IS
3499    Capturing subpattern count = 0
3500    No options
3501    No first char
3502    No need char
3503    Starting byte set: a b
3504    
3505    /[^a]/I
3506    Capturing subpattern count = 0
3507    No options
3508    No first char
3509    No need char
3510    
3511    /\d456/I
3512    Capturing subpattern count = 0
3513    No options
3514    No first char
3515    Need char = '6'
3516    
3517    /\d456/IS
3518    Capturing subpattern count = 0
3519    No options
3520    No first char
3521    Need char = '6'
3522    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3523    
3524    /a^b/I
3525    Capturing subpattern count = 0
3526    No options
3527    First char = 'a'
3528    Need char = 'b'
3529    
3530    /^a/Im
3531    Capturing subpattern count = 0
3532    Options: multiline
3533    First char at start or follows newline
3534    Need char = 'a'
3535      abcde
3536     0: a
3537      xy\nabc
3538     0: a
3539      *** Failers
3540    No match
3541      xyabc
3542    No match
3543    
3544    /c|abc/I
3545    Capturing subpattern count = 0
3546    No options
3547    No first char
3548    Need char = 'c'
3549    
3550    /(?i)[ab]/IS
3551    Capturing subpattern count = 0
3552    Options: caseless
3553    No first char
3554    No need char
3555    Starting byte set: A B a b
3556    
3557    /[ab](?i)cd/IS
3558    Capturing subpattern count = 0
3559    No options
3560    No first char
3561    Need char = 'd' (caseless)
3562    Starting byte set: a b
3563    
3564    /abc(?C)def/I
3565    Capturing subpattern count = 0
3566    No options
3567    First char = 'a'
3568    Need char = 'f'
3569        abcdef
3570    --->abcdef
3571      0 ^  ^       d
3572     0: abcdef
3573        1234abcdef
3574    --->1234abcdef
3575      0     ^  ^       d
3576     0: abcdef
3577        *** Failers
3578    No match
3579        abcxyz
3580    No match
3581        abcxyzf
3582    --->abcxyzf
3583      0 ^  ^        d
3584    No match
3585    
3586    /abc(?C)de(?C1)f/I
3587    Capturing subpattern count = 0
3588    No options
3589    First char = 'a'
3590    Need char = 'f'
3591        123abcdef
3592    --->123abcdef
3593      0    ^  ^       d
3594      1    ^    ^     f
3595     0: abcdef
3596    
3597    /(?C1)\dabc(?C2)def/I
3598    Capturing subpattern count = 0
3599    No options
3600    No first char
3601    Need char = 'f'
3602        1234abcdef
3603    --->1234abcdef
3604      1 ^              \d
3605      1  ^             \d
3606      1   ^            \d
3607      1    ^           \d
3608      2    ^   ^       d
3609     0: 4abcdef
3610        *** Failers
3611    No match
3612        abcdef
3613    --->abcdef
3614      1 ^          \d
3615      1  ^         \d
3616      1   ^        \d
3617      1    ^       \d
3618      1     ^      \d
3619      1      ^     \d
3620    No match
3621    
3622    /(?C255)ab/I
3623    Capturing subpattern count = 0
3624    No options
3625    First char = 'a'
3626    Need char = 'b'
3627    
3628    /(?C256)ab/I
3629    Failed: number after (?C is > 255 at offset 6
3630    
3631    /(?Cab)xx/I
3632    Failed: closing ) for (?C expected at offset 3
3633    
3634    /(?C12vr)x/I
3635    Failed: closing ) for (?C expected at offset 5
3636    
3637    /abc(?C)def/I
3638    Capturing subpattern count = 0
3639    No options
3640    First char = 'a'
3641    Need char = 'f'
3642        *** Failers
3643    No match
3644        \x83\x0\x61bcdef
3645    --->\x83\x00abcdef
3646      0         ^  ^       d
3647     0: abcdef
3648    
3649    /(abc)(?C)de(?C1)f/I
3650    Capturing subpattern count = 1
3651    No options
3652    First char = 'a'
3653    Need char = 'f'
3654        123abcdef
3655    --->123abcdef
3656      0    ^  ^       d
3657      1    ^    ^     f
3658     0: abcdef
3659     1: abc
3660        123abcdef\C+
3661    Callout 0: last capture = 1
3662     0: <unset>
3663     1: abc
3664    --->123abcdef
3665           ^  ^       d
3666    Callout 1: last capture = 1
3667     0: <unset>
3668     1: abc
3669    --->123abcdef
3670           ^    ^     f
3671     0: abcdef
3672     1: abc
3673        123abcdef\C-
3674     0: abcdef
3675     1: abc
3676        *** Failers
3677    No match
3678        123abcdef\C!1
3679    --->123abcdef
3680      0    ^  ^       d
3681      1    ^    ^     f
3682    No match
3683    
3684    /(?C0)(abc(?C1))*/I
3685    Capturing subpattern count = 1
3686    No options
3687    No first char
3688    No need char
3689        abcabcabc
3690    --->abcabcabc
3691      0 ^             (abc(?C1))*
3692      1 ^  ^          )
3693      1 ^     ^       )
3694      1 ^        ^    )
3695     0: abcabcabc
3696     1: abc
3697        abcabc\C!1!3
3698    --->abcabc
3699      0 ^          (abc(?C1))*
3700      1 ^  ^       )
3701      1 ^     ^    )
3702     0: abcabc
3703     1: abc
3704        *** Failers
3705    --->*** Failers
3706      0 ^               (abc(?C1))*
3707     0:
3708        abcabcabc\C!1!3
3709    --->abcabcabc
3710      0 ^             (abc(?C1))*
3711      1 ^  ^          )
3712      1 ^     ^       )
3713      1 ^        ^    )
3714     0: abcabc
3715     1: abc
3716    
3717    /(\d{3}(?C))*/I
3718    Capturing subpattern count = 1
3719    Partial matching not supported
3720    No options
3721    No first char
3722    No need char
3723        123\C+
3724    Callout 0: last capture = -1
3725     0: <unset>
3726    --->123
3727        ^  ^    )
3728     0: 123
3729     1: 123
3730        123456\C+
3731    Callout 0: last capture = -1
3732     0: <unset>
3733    --->123456
3734        ^  ^       )
3735    Callout 0: last capture = 1
3736     0: <unset>
3737     1: 123
3738    --->123456
3739        ^     ^    )
3740     0: 123456
3741     1: 456
3742        123456789\C+
3743    Callout 0: last capture = -1
3744     0: <unset>
3745    --->123456789
3746        ^  ^          )
3747    Callout 0: last capture = 1
3748     0: <unset>
3749     1: 123
3750    --->123456789
3751        ^     ^       )
3752    Callout 0: last capture = 1
3753     0: <unset>
3754     1: 456
3755    --->123456789
3756        ^        ^    )
3757     0: 123456789
3758     1: 789
3759    
3760    /((xyz)(?C)p|(?C1)xyzabc)/I
3761    Capturing subpattern count = 2
3762    No options
3763    First char = 'x'
3764    No need char
3765        xyzabc\C+
3766    Callout 0: last capture = 2
3767     0: <unset>
3768     1: <unset>
3769     2: xyz
3770    --->xyzabc
3771        ^  ^       p
3772    Callout 1: last capture = -1
3773     0: <unset>
3774    --->xyzabc
3775        ^          x
3776     0: xyzabc
3777     1: xyzabc
3778    
3779    /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3780    Capturing subpattern count = 3
3781    No options
3782    First char = 'X'
3783    Need char = 'x'
3784        Xxyzabc\C+
3785    Callout 0: last capture = 3
3786     0: <unset>
3787     1: X
3788     2: <unset>
3789     3: xyz
3790    --->Xxyzabc
3791        ^   ^       p
3792    Callout 1: last capture = 1
3793     0: <unset>
3794     1: X
3795    --->Xxyzabc
3796        ^^          x
3797     0: Xxyzabc
3798     1: X
3799     2: xyzabc
3800    
3801    /(?=(abc))(?C)abcdef/I
3802    Capturing subpattern count = 1
3803    No options
3804    First char = 'a'
3805    Need char = 'f'
3806        abcdef\C+
3807    Callout 0: last capture = 1
3808     0: <unset>
3809     1: abc
3810    --->abcdef
3811        ^          a
3812     0: abcdef
3813     1: abc
3814    
3815    /(?!(abc)(?C1)d)(?C2)abcxyz/I
3816    Capturing subpattern count = 1
3817    No options
3818    First char = 'a'
3819    Need char = 'z'
3820        abcxyz\C+
3821    Callout 1: last capture = 1
3822     0: <unset>
3823     1: abc
3824    --->abcxyz
3825        ^  ^       d
3826    Callout 2: last capture = -1
3827     0: <unset>
3828    --->abcxyz