/[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 51 by nigel, Sat Feb 24 21:39:37 2007 UTC revision 916 by ph10, Wed Feb 15 09:50:53 2012 UTC
# Line 1  Line 1 
1  PCRE version 3.4 22-Aug-2000  /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3  /(a)b|/      It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is a possible Perl
6        bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
11    /(a)b|/I
12  Capturing subpattern count = 1  Capturing subpattern count = 1
13  No options  No options
14  No first char  No first char
15  No need char  No need char
16    
17  /abc/  /abc/I
18  Capturing subpattern count = 0  Capturing subpattern count = 0
19  No options  No options
20  First char = 'a'  First char = 'a'
# Line 24  No match Line 32  No match
32      ABC      ABC
33  No match  No match
34    
35  /^abc/  /^abc/I
36  Capturing subpattern count = 0  Capturing subpattern count = 0
37  Options: anchored  Options: anchored
38  No first char  No first char
39  Need char = 'c'  No need char
40      abc      abc
41   0: abc   0: abc
42      \Aabc      \Aabc
# Line 40  No match Line 48  No match
48      \Adefabc      \Adefabc
49  No match  No match
50    
51  /a+bc/  /a+bc/I
52  Capturing subpattern count = 0  Capturing subpattern count = 0
53  No options  No options
54  First char = 'a'  First char = 'a'
55  Need char = 'c'  Need char = 'c'
56    
57  /a*bc/  /a*bc/I
58  Capturing subpattern count = 0  Capturing subpattern count = 0
59  No options  No options
60  No first char  No first char
61  Need char = 'c'  Need char = 'c'
62    
63  /a{3}bc/  /a{3}bc/I
64  Capturing subpattern count = 0  Capturing subpattern count = 0
65  No options  No options
66  First char = 'a'  First char = 'a'
67  Need char = 'c'  Need char = 'c'
68    
69  /(abc|a+z)/  /(abc|a+z)/I
70  Capturing subpattern count = 1  Capturing subpattern count = 1
71  No options  No options
72  First char = 'a'  First char = 'a'
73  No need char  No need char
74    
75  /^abc$/  /^abc$/I
76  Capturing subpattern count = 0  Capturing subpattern count = 0
77  Options: anchored  Options: anchored
78  No first char  No first char
79  Need char = 'c'  No need char
80      abc      abc
81   0: abc   0: abc
82      *** Failers      *** Failers
# Line 76  No match Line 84  No match
84      def\nabc      def\nabc
85  No match  No match
86    
87  /ab\gdef/X  /ab\idef/X
88  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
89    
90  /(?X)ab\gdef/X  /(?X)ab\idef/X
91  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
92    
93  /x{5,4}/  /x{5,4}/
# Line 91  Failed: number too big in {} quantifier Line 99  Failed: number too big in {} quantifier
99  /[abcd/  /[abcd/
100  Failed: missing terminating ] for character class at offset 5  Failed: missing terminating ] for character class at offset 5
101    
102  /[\B]/  /(?X)[\B]/
103  Failed: invalid escape sequence in character class at offset 2  Failed: invalid escape sequence in character class at offset 6
104    
105    /(?X)[\R]/
106    Failed: invalid escape sequence in character class at offset 6
107    
108    /(?X)[\X]/
109    Failed: invalid escape sequence in character class at offset 6
110    
111    /[\B]/BZ
112    ------------------------------------------------------------------
113            Bra
114            B
115            Ket
116            End
117    ------------------------------------------------------------------
118    
119    /[\R]/BZ
120    ------------------------------------------------------------------
121            Bra
122            R
123            Ket
124            End
125    ------------------------------------------------------------------
126    
127    /[\X]/BZ
128    ------------------------------------------------------------------
129            Bra
130            X
131            Ket
132            End
133    ------------------------------------------------------------------
134    
135  /[z-a]/  /[z-a]/
136  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
# Line 107  Failed: missing ) at offset 4 Line 145  Failed: missing ) at offset 4
145  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
146    
147  /(?z)abc/  /(?z)abc/
148  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
149    
150  /.*b/  /.*b/I
151  Capturing subpattern count = 0  Capturing subpattern count = 0
152  No options  No options
153  First char at start or follows \n  First char at start or follows newline
154  Need char = 'b'  Need char = 'b'
155    
156  /.*?b/  /.*?b/I
157  Capturing subpattern count = 0  Capturing subpattern count = 0
158  No options  No options
159  First char at start or follows \n  First char at start or follows newline
160  Need char = 'b'  Need char = 'b'
161    
162  /cat|dog|elephant/  /cat|dog|elephant/I
163  Capturing subpattern count = 0  Capturing subpattern count = 0
164  No options  No options
165  No first char  No first char
# Line 131  No need char Line 169  No need char
169      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
170   0: elephant   0: elephant
171    
172  /cat|dog|elephant/S  /cat|dog|elephant/IS
173  Capturing subpattern count = 0  Capturing subpattern count = 0
174  No options  No options
175  No first char  No first char
176  No need char  No need char
177  Starting character set: c d e  Subject length lower bound = 3
178    Starting byte set: c d e
179      this sentence eventually mentions a cat      this sentence eventually mentions a cat
180   0: cat   0: cat
181      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
182   0: elephant   0: elephant
183    
184  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
185  Capturing subpattern count = 0  Capturing subpattern count = 0
186  Options: caseless  Options: caseless
187  No first char  No first char
188  No need char  No need char
189  Starting character set: C D E c d e  Subject length lower bound = 3
190    Starting byte set: C D E c d e
191      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
192   0: CAT   0: CAT
193      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
194   0: elephant   0: elephant
195    
196  /a|[bcd]/S  /a|[bcd]/IS
197  Capturing subpattern count = 0  Capturing subpattern count = 0
198  No options  No options
199  No first char  No first char
200  No need char  No need char
201  Starting character set: a b c d  Subject length lower bound = 1
202    Starting byte set: a b c d
203    
204  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
205  Capturing subpattern count = 1  Capturing subpattern count = 1
206  No options  No options
207  No first char  No first char
208  No need char  No need char
209  Starting character set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Subject length lower bound = 1
210    Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
211    \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
212    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
213    ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d    ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d
# Line 180  Starting character set: \x00 \x01 \x02 \ Line 222  Starting character set: \x00 \x01 \x02 \
222    \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
223    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
224    
225  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
226  Capturing subpattern count = 1  Capturing subpattern count = 1
227  No options  No options
228  No first char  No first char
229  No need char  No need char
230  Starting character set: \x09 \x0a \x0b \x0c \x0d \x20 a b  Subject length lower bound = 1
231    Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
232    
233  /(ab\2)/  /(ab\2)/
234  Failed: back reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
235    
236  /{4,5}abc/  /{4,5}abc/
237  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
238    
239  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
240  Capturing subpattern count = 3  Capturing subpattern count = 3
241  Max back reference = 2  Max back reference = 2
242  No options  No options
# Line 218  Matched, but too many substrings Line 261  Matched, but too many substrings
261   0: abcb   0: abcb
262   1: a   1: a
263   2: b   2: b
264      \O12abcb      \O12abcb
265   0: abcb   0: abcb
266   1: a   1: a
267   2: b   2: b
268   3: c   3: c
269    
270  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
271  Capturing subpattern count = 3  Capturing subpattern count = 3
272  Max back reference = 2  Max back reference = 2
273  No options  No options
# Line 266  Matched, but too many substrings Line 309  Matched, but too many substrings
309   2: a   2: a
310   3: b   3: b
311    
312  /abc$/E  /abc$/IE
313  Capturing subpattern count = 0  Capturing subpattern count = 0
314  Options: dollar_endonly  Options: dollar_endonly
315  First char = 'a'  First char = 'a'
# Line 281  No match Line 324  No match
324  No match  No match
325    
326  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
327  Failed: back reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
328    
329  /the quick brown fox/  /the quick brown fox/I
330  Capturing subpattern count = 0  Capturing subpattern count = 0
331  No options  No options
332  First char = 't'  First char = 't'
# Line 293  Need char = 'x' Line 336  Need char = 'x'
336      this is a line with the quick brown fox      this is a line with the quick brown fox
337   0: the quick brown fox   0: the quick brown fox
338    
339  /the quick brown fox/A  /the quick brown fox/IA
340  Capturing subpattern count = 0  Capturing subpattern count = 0
341  Options: anchored  Options: anchored
342  No first char  No first char
343  Need char = 'x'  No need char
344      the quick brown fox      the quick brown fox
345   0: the quick brown fox   0: the quick brown fox
346      *** Failers      *** Failers
# Line 306  No match Line 349  No match
349  No match  No match
350    
351  /ab(?z)cd/  /ab(?z)cd/
352  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
353    
354  /^abc|def/  /^abc|def/I
355  Capturing subpattern count = 0  Capturing subpattern count = 0
356  No options  No options
357  No first char  No first char
# Line 318  No need char Line 361  No need char
361      abcdef\B      abcdef\B
362   0: def   0: def
363    
364  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
365  Capturing subpattern count = 3  Capturing subpattern count = 3
366  No options  No options
367  First char at start or follows \n  First char at start or follows newline
368  No need char  No need char
369      defabc      defabc
370   0: defabc   0: defabc
# Line 333  No need char Line 376  No need char
376   2: <unset>   2: <unset>
377   3: def   3: def
378    
 /abc/P  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/P  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/P  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/P  
     the quick brown fox  
  0: the quick brown fox  
     *** Failers  
 No match: POSIX code 17: match failed  
     The Quick Brown Fox  
 No match: POSIX code 17: match failed  
   
 /the quick brown fox/Pi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/P  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/P  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/P  
     abc  
 No match: POSIX code 17: match failed  
   
379  /)/  /)/
380  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
381    
382  /a[]b/  /a[]b/
383  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
384    
385  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
386  Capturing subpattern count = 0  Capturing subpattern count = 0
387  No options  No options
388  No first char  No first char
389  No need char  No need char
390      co-processors, and for      co-processors, and for
391   0: -pr   0: -pr
392    
393  /<.*>/  /<.*>/I
394  Capturing subpattern count = 0  Capturing subpattern count = 0
395  No options  No options
396  First char = '<'  First char = '<'
# Line 410  Need char = '>' Line 398  Need char = '>'
398      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
399   0: <def>ghi<klm>   0: <def>ghi<klm>
400    
401  /<.*?>/  /<.*?>/I
402  Capturing subpattern count = 0  Capturing subpattern count = 0
403  No options  No options
404  First char = '<'  First char = '<'
# Line 418  Need char = '>' Line 406  Need char = '>'
406      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
407   0: <def>   0: <def>
408    
409  /<.*>/U  /<.*>/IU
410  Capturing subpattern count = 0  Capturing subpattern count = 0
411  Options: ungreedy  Options: ungreedy
412  First char = '<'  First char = '<'
413  Need char = '>'  Need char = '>'
414      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
415   0: <def>   0: <def>
416    
417  /<.*>(?U)/  /(?U)<.*>/I
418  Capturing subpattern count = 0  Capturing subpattern count = 0
419  Options: ungreedy  Options: ungreedy
420  First char = '<'  First char = '<'
# Line 434  Need char = '>' Line 422  Need char = '>'
422      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
423   0: <def>   0: <def>
424    
425  /<.*?>/U  /<.*?>/IU
426  Capturing subpattern count = 0  Capturing subpattern count = 0
427  Options: ungreedy  Options: ungreedy
428  First char = '<'  First char = '<'
429  Need char = '>'  Need char = '>'
430      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
431   0: <def>ghi<klm>   0: <def>ghi<klm>
432    
433  /={3,}/U  /={3,}/IU
434  Capturing subpattern count = 0  Capturing subpattern count = 0
435  Options: ungreedy  Options: ungreedy
436  First char = '='  First char = '='
437  Need char = '='  Need char = '='
438      abc========def      abc========def
439   0: ===   0: ===
440    
441  /(?U)={3,}?/  /(?U)={3,}?/I
442  Capturing subpattern count = 0  Capturing subpattern count = 0
443  Options: ungreedy  Options: ungreedy
444  First char = '='  First char = '='
445  Need char = '='  Need char = '='
446      abc========def      abc========def
447   0: ========   0: ========
448    
449  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
450  Capturing subpattern count = 0  Capturing subpattern count = 0
451  No options  No options
452  First char = 'f'  First char = 'f'
453  Need char = 'o'  Need char = 'o'
454      foo      foo
455   0: foo   0: foo
456      catfoo      catfoo
457   0: foo   0: foo
458      *** Failers      *** Failers
459  No match  No match
460      the barfoo      the barfoo
461  No match  No match
462      and cattlefoo      and cattlefoo
463  No match  No match
464    
465  /(?<=a+)b/  /(?<=a+)b/
# Line 483  Failed: lookbehind assertion is not fixe Line 471  Failed: lookbehind assertion is not fixe
471  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
472  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
473    
474  /(?i)abc/  /(?i)abc/I
475  Capturing subpattern count = 0  Capturing subpattern count = 0
476  Options: caseless  Options: caseless
477  First char = 'a'  First char = 'a' (caseless)
478  Need char = 'c'  Need char = 'c' (caseless)
479    
480  /(a|(?m)a)/  /(a|(?m)a)/I
481  Capturing subpattern count = 1  Capturing subpattern count = 1
482  No options  No options
483  First char = 'a'  First char = 'a'
484  No need char  No need char
485    
486  /(?i)^1234/  /(?i)^1234/I
487  Capturing subpattern count = 0  Capturing subpattern count = 0
488  Options: anchored caseless  Options: anchored caseless
489  No first char  No first char
490  Need char = '4'  No need char
491    
492  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
493  Capturing subpattern count = 1  Capturing subpattern count = 1
494  Options: anchored  Options: anchored
 Case state changes  
495  No first char  No first char
496  No need char  No need char
497    
498  /(?s).*/  /(?s).*/I
499  Capturing subpattern count = 0  Capturing subpattern count = 0
500  Options: anchored dotall  Options: anchored dotall
501  No first char  No first char
502  No need char  No need char
503    
504  /[abcd]/S  /[abcd]/IS
505  Capturing subpattern count = 0  Capturing subpattern count = 0
506  No options  No options
507  No first char  No first char
508  No need char  No need char
509  Starting character set: a b c d  Subject length lower bound = 1
510    Starting byte set: a b c d
511    
512  /(?i)[abcd]/S  /(?i)[abcd]/IS
513  Capturing subpattern count = 0  Capturing subpattern count = 0
514  Options: caseless  Options: caseless
515  No first char  No first char
516  No need char  No need char
517  Starting character set: A B C D a b c d  Subject length lower bound = 1
518    Starting byte set: A B C D a b c d
519    
520  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
521  Capturing subpattern count = 1  Capturing subpattern count = 1
522  Options: multiline  Options: multiline
523  No first char  No first char
524  No need char  No need char
525  Starting character set: b c x y  Subject length lower bound = 1
526    Starting byte set: b c x y
527    
528  /(^a|^b)/m  /(^a|^b)/Im
529  Capturing subpattern count = 1  Capturing subpattern count = 1
530  Options: multiline  Options: multiline
531  First char at start or follows \n  First char at start or follows newline
532  No need char  No need char
533    
534  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
535  Capturing subpattern count = 1  Capturing subpattern count = 1
536  Options: caseless multiline  Options: caseless multiline
537  First char at start or follows \n  First char at start or follows newline
538  No need char  No need char
539    
540  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 554  Failed: conditional group contains more Line 544  Failed: conditional group contains more
544  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
545    
546  /(?(1a)/  /(?(1a)/
547  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
548    
549    /(?(1a))/
550    Failed: reference to non-existent subpattern at offset 6
551    
552  /(?(?i))/  /(?(?i))/
553  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
554    
555  /(?(abc))/  /(?(abc))/
556  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
557    
558  /(?(?<ab))/  /(?(?<ab))/
559  Failed: unrecognized character after (?< at offset 2  Failed: syntax error in subpattern name (missing terminator) at offset 7
560    
561  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
562  Capturing subpattern count = 1  Capturing subpattern count = 1
563  Max back reference = 1  Max back reference = 1
564  No options  No options
565  First char = 'b'  First char = 'b'
566  Need char = 'h'  Need char = 'h'
567    
568  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
569  Capturing subpattern count = 1  Capturing subpattern count = 1
570  Max back reference = 1  Max back reference = 1
571  No options  No options
572  Case state changes  First char = 'b' (caseless)
573  No first char  Need char = 'h' (caseless)
 Need char = 'h'  
574    
575  /((?i)b)/DS  /((?i)b)/IDZS
576  ------------------------------------------------------------------  ------------------------------------------------------------------
577    0  16 Bra 0          Bra
578    3   8 Bra 1          CBra 1
579    6  01 Opt       /i b
580    8   1 b          Ket
581   11   8 Ket          Ket
582   14  00 Opt          End
  16  16 Ket  
  19     End  
583  ------------------------------------------------------------------  ------------------------------------------------------------------
584  Capturing subpattern count = 1  Capturing subpattern count = 1
585  No options  No options
586  Case state changes  First char = 'b' (caseless)
587  No first char  No need char
588  Need char = 'b'  Subject length lower bound = 1
589  Starting character set: B b  No set of starting bytes
590    
591  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
592  Capturing subpattern count = 1  Capturing subpattern count = 1
593  No options  No options
 Case state changes  
594  No first char  No first char
595  No need char  No need char
596  Starting character set: C a b c d  Subject length lower bound = 1
597    Starting byte set: C a b c d
598    
599  /a$/  /a$/I
600  Capturing subpattern count = 0  Capturing subpattern count = 0
601  No options  No options
602  First char = 'a'  First char = 'a'
# Line 615  No need char Line 605  No need char
605   0: a   0: a
606      a\n      a\n
607   0: a   0: a
608      *** Failers      *** Failers
609  No match  No match
610      \Za      \Za
611  No match  No match
612      \Za\n      \Za\n
613  No match  No match
614    
615  /a$/m  /a$/Im
616  Capturing subpattern count = 0  Capturing subpattern count = 0
617  Options: multiline  Options: multiline
618  First char = 'a'  First char = 'a'
# Line 631  No need char Line 621  No need char
621   0: a   0: a
622      a\n      a\n
623   0: a   0: a
624      \Za\n      \Za\n
625   0: a   0: a
626      *** Failers      *** Failers
627  No match  No match
628      \Za      \Za
629  No match  No match
630    
631  /\Aabc/m  /\Aabc/Im
632  Capturing subpattern count = 0  Capturing subpattern count = 0
633  Options: anchored multiline  Options: anchored multiline
634  No first char  No first char
635  Need char = 'c'  No need char
636    
637  /^abc/m  /^abc/Im
638  Capturing subpattern count = 0  Capturing subpattern count = 0
639  Options: multiline  Options: multiline
640  First char at start or follows \n  First char at start or follows newline
641  Need char = 'c'  Need char = 'c'
642    
643  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
644  Capturing subpattern count = 5  Capturing subpattern count = 5
645  Options: anchored  Options: anchored
646  No first char  No first char
647  Need char = 'a'  No need char
648    aaaaabbbbbcccccdef    aaaaabbbbbcccccdef
649   0: aaaaabbbbbcccccdef   0: aaaaabbbbbcccccdef
650   1: aaaaabbbbbcccccdef   1: aaaaabbbbbcccccdef
# Line 663  Need char = 'a' Line 653  Need char = 'a'
653   4: bbbbccccc   4: bbbbccccc
654   5: def   5: def
655    
656  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
657  Capturing subpattern count = 0  Capturing subpattern count = 0
658  No options  No options
659  No first char  No first char
660  No need char  No need char
661  Starting character set: a b  Subject length lower bound = 1
662    Starting byte set: a b
663    
664  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
665  Capturing subpattern count = 1  Capturing subpattern count = 1
666  No options  No options
667  No first char  No first char
668  Need char = 'a'  Need char = 'a'
669  Starting character set: a o  Subject length lower bound = 5
670    Starting byte set: a o
671    
672  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
673  Capturing subpattern count = 0  Capturing subpattern count = 0
674  No options  No options
675  No first char  No first char
676  No need char  No need char
677  Starting character set: a b  Subject length lower bound = 1
678    Starting byte set: a b
679    
680    /(?<=foo\n)^bar/Im
681    Capturing subpattern count = 0
682    Contains explicit CR or LF match
683    Options: multiline
684    No first char
685    Need char = 'r'
686        foo\nbarbar
687     0: bar
688        ***Failers
689    No match
690        rhubarb
691    No match
692        barbell
693    No match
694        abc\nbarton
695    No match
696    
697  /(?<=foo\n)^bar/m  /^(?<=foo\n)bar/Im
698  Capturing subpattern count = 0  Capturing subpattern count = 0
699    Contains explicit CR or LF match
700  Options: multiline  Options: multiline
701  First char at start or follows \n  First char at start or follows newline
702  Need char = 'r'  Need char = 'r'
703        foo\nbarbar
704     0: bar
705        ***Failers
706    No match
707        rhubarb
708    No match
709        barbell
710    No match
711        abc\nbarton
712    No match
713    
714  /(?>^abc)/m  /(?>^abc)/Im
715  Capturing subpattern count = 0  Capturing subpattern count = 0
716  Options: multiline  Options: multiline
717  First char at start or follows \n  First char at start or follows newline
718  Need char = 'c'  Need char = 'c'
719      abc      abc
720   0: abc   0: abc
# Line 701  Need char = 'c' Line 722  Need char = 'c'
722   0: abc   0: abc
723      *** Failers      *** Failers
724  No match  No match
725      defabc      defabc
726  No match  No match
727    
728  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 714  Failed: lookbehind assertion is not fixe Line 735  Failed: lookbehind assertion is not fixe
735  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
736    
737  /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'  
738    
739  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
740  Capturing subpattern count = 0  Capturing subpattern count = 0
741  No options  No options
742  First char = '-'  First char = '-'
# Line 732  Need char = 't' Line 749  Need char = 't'
749  No match  No match
750      cart      cart
751  No match  No match
752      horse-and-cart      horse-and-cart
753  No match  No match
754    
755  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
756  Capturing subpattern count = 0  Capturing subpattern count = 0
757  No options  No options
 Case state changes  
758  No first char  No first char
759  No need char  No need char
760    
761  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
762  Capturing subpattern count = 2  Capturing subpattern count = 2
763  No options  No options
764  First char at start or follows \n  First char at start or follows newline
765  No need char  No need char
766      alphabetabcd      alphabetabcd
767   0: alphabetabcd   0: alphabetabcd
# Line 755  No need char Line 771  No need char
771   1: <unset>   1: <unset>
772   2: xyz   2: xyz
773    
774  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
775  Capturing subpattern count = 0  Capturing subpattern count = 0
776  No options  No options
 Case state changes  
777  First char = 'Z'  First char = 'Z'
778  Need char = 'Z'  Need char = 'Z'
779      abxyZZ      abxyZZ
# Line 771  Need char = 'Z' Line 786  Need char = 'Z'
786   0: ZZ   0: ZZ
787      bZZ      bZZ
788   0: ZZ   0: ZZ
789      BZZ      BZZ
790   0: ZZ   0: ZZ
791      *** Failers      *** Failers
792  No match  No match
793      ZZ      ZZ
794  No match  No match
795      abXYZZ      abXYZZ
796  No match  No match
797      zzz      zzz
798  No match  No match
799      bzz      bzz
800  No match  No match
801    
802  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
803  Capturing subpattern count = 1  Capturing subpattern count = 1
804  No options  No options
805  First char = 'b'  First char = 'b'
806  Need char = 'r'  Need char = 'r'
807      bar      bar
808   0: bar   0: bar
809      foobbar      foobbar
810   0: bar   0: bar
811      *** Failers      *** Failers
812  No match  No match
813      fooabar      fooabar
814  No match  No match
815    
816  /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
817  Capturing subpattern count = 0  Capturing subpattern count = 0
818  No options  No options
819  First char = 'T'  First char = 'T'
820  Need char = 't'  Need char = 't'
821    
822  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
823  Capturing subpattern count = 1  Capturing subpattern count = 1
824  Options: anchored  Options: anchored
825  No first char  No first char
826  No need char  No need char
827      *** Failers      *** Failers
828  No match  No match
829      a      a
830  No match  No match
831    
832  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/  /This one is here because Perl behaves differently; see also the following/I
833  Capturing subpattern count = 0  Capturing subpattern count = 0
834  No options  No options
835  First char = 'T'  First char = 'T'
836  Need char = 'g'  Need char = 'g'
837    
838  /^(a\1?){4}$/  /^(a\1?){4}$/I
839  Capturing subpattern count = 1  Capturing subpattern count = 1
840  Max back reference = 1  Max back reference = 1
841  Options: anchored  Options: anchored
842  No first char  No first char
843  Need char = 'a'  No need char
844        aaaa
845    No match
846      aaaaaa      aaaaaa
847   0: aaaaaa  No match
  1: aa  
848    
849  /These are syntax tests from Perl 5.005/  /Perl does not fail these two for the final subjects. Neither did PCRE until/
850    /release 8.01. The problem is in backtracking into a subpattern that contains/
851    No match
852    /a recursive reference to itself. PCRE has now made these into atomic patterns./
853    No match
854    
855    /^(xa|=?\1a){2}$/
856        xa=xaa
857     0: xa=xaa
858     1: =xaa
859        ** Failers
860    No match
861        xa=xaaa
862    No match
863    
864    /^(xa|=?\1a)+$/
865        xa=xaa
866     0: xa=xaa
867     1: =xaa
868        ** Failers
869    No match
870        xa=xaaa
871    No match
872    
873    /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 864  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 (? or (?- at offset 3
950    
951  /a(?{{})b/  /a(?{{})b/
952  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
953    
954  /a(?{}})b/  /a(?{}})b/
955  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
956    
957  /a(?{"{"})b/  /a(?{"{"})b/
958  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
959    
960  /a(?{"{"}})b/  /a(?{"{"}})b/
961  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- 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
   
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
965    
966  /[a[:xyz:/  /[a[:xyz:/
967  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
# Line 938  Failed: numbers out of order in {} quant Line 975  Failed: numbers out of order in {} quant
975  /abc/\  /abc/\
976  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
977    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
978  /abc/\i  /abc/\i
979  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
980    
981  /(a)bc(d)/  /(a)bc(d)/I
982  Capturing subpattern count = 2  Capturing subpattern count = 2
983  No options  No options
984  First char = 'a'  First char = 'a'
# Line 963  Need char = 'd' Line 997  Need char = 'd'
997   1: a   1: a
998   2: d   2: d
999  copy substring 5 failed -7  copy substring 5 failed -7
1000    
1001  /(.{20})/  /(.{20})/I
1002  Capturing subpattern count = 1  Capturing subpattern count = 1
1003  No options  No options
1004  No first char  No first char
# Line 975  No need char Line 1009  No need char
1009      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1010   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1011   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1012  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1013      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1014   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1015   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1016   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1017    
1018  /(.{15})/  /(.{15})/I
1019  Capturing subpattern count = 1  Capturing subpattern count = 1
1020  No options  No options
1021  No first char  No first char
# Line 995  No need char Line 1029  No need char
1029   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1030   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1031    
1032  /(.{16})/  /(.{16})/I
1033  Capturing subpattern count = 1  Capturing subpattern count = 1
1034  No options  No options
1035  No first char  No first char
# Line 1006  No need char Line 1040  No need char
1040      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1041   0: abcdefghijklmnop   0: abcdefghijklmnop
1042   1: abcdefghijklmnop   1: abcdefghijklmnop
1043  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1044   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1045   0L abcdefghijklmnop   0L abcdefghijklmnop
1046   1L abcdefghijklmnop   1L abcdefghijklmnop
1047    
1048  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1049  Capturing subpattern count = 3  Capturing subpattern count = 3
1050  Options: anchored  Options: anchored
1051  No first char  No first char
1052  Need char = 'f'  No need char
1053      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1054   0: adef   0: adef
1055   1: a   1: a
1056   2: <unset>   2: <unset>
# Line 1029  get substring 4 failed -7 Line 1063  get substring 4 failed -7
1063   1L a   1L a
1064   2L   2L
1065   3L f   3L f
1066      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1067   0: bcdef   0: bcdef
1068   1: bc   1: bc
1069   2: bc   2: bc
# Line 1042  get substring 4 failed -7 Line 1076  get substring 4 failed -7
1076   1L bc   1L bc
1077   2L bc   2L bc
1078   3L f   3L f
1079      adefghijk\C0      adefghijk\C0
1080   0: adef   0: adef
1081   1: a   1: a
1082   2: <unset>   2: <unset>
1083   3: f   3: f
1084   0C adef (4)   0C adef (4)
1085    
1086  /^abc\00def/  /^abc\00def/I
1087  Capturing subpattern count = 0  Capturing subpattern count = 0
1088  Options: anchored  Options: anchored
1089  No first char  No first char
1090  Need char = 'f'  No need char
1091      abc\00def\L\C0      abc\00def\L\C0
1092   0: abc\x00def   0: abc\x00def
1093   0C abc (7)   0C abc\x00def (7)
1094   0L abc   0L abc
1095    
1096  /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]+
1097  )((?:[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]+
1098  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 428  
1099  Capturing subpattern count = 8  Capturing subpattern count = 8
1100    Contains explicit CR or LF match
1101  No options  No options
1102  First char = 'w'  First char = 'w'
1103  Need char = 'd'  Need char = 'd'
1104    
1105  /.*X/D  /.*X/IDZ
1106  ------------------------------------------------------------------  ------------------------------------------------------------------
1107    0   8 Bra 0          Bra
1108    3     Any*          Any*
1109    5   1 X          X
1110    8   8 Ket          Ket
1111   11     End          End
1112  ------------------------------------------------------------------  ------------------------------------------------------------------
1113  Capturing subpattern count = 0  Capturing subpattern count = 0
1114  No options  No options
1115  First char at start or follows \n  First char at start or follows newline
1116  Need char = 'X'  Need char = 'X'
1117    
1118  /.*X/Ds  /.*X/IDZs
1119  ------------------------------------------------------------------  ------------------------------------------------------------------
1120    0   8 Bra 0          Bra
1121    3     Any*          AllAny*
1122    5   1 X          X
1123    8   8 Ket          Ket
1124   11     End          End
1125  ------------------------------------------------------------------  ------------------------------------------------------------------
1126  Capturing subpattern count = 0  Capturing subpattern count = 0
1127  Options: anchored dotall  Options: anchored dotall
1128  No first char  No first char
1129  Need char = 'X'  Need char = 'X'
1130    
1131  /(.*X|^B)/D  /(.*X|^B)/IDZ
1132  ------------------------------------------------------------------  ------------------------------------------------------------------
1133    0  21 Bra 0          Bra
1134    3   8 Bra 1          CBra 1
1135    6     Any*          Any*
1136    8   1 X          X
1137   11   7 Alt          Alt
1138   14     ^          ^
1139   15   1 B          B
1140   18  15 Ket          Ket
1141   21  21 Ket          Ket
1142   24     End          End
1143  ------------------------------------------------------------------  ------------------------------------------------------------------
1144  Capturing subpattern count = 1  Capturing subpattern count = 1
1145  No options  No options
1146  First char at start or follows \n  First char at start or follows newline
1147  No need char  No need char
1148    
1149  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1150  ------------------------------------------------------------------  ------------------------------------------------------------------
1151    0  21 Bra 0          Bra
1152    3   8 Bra 1          CBra 1
1153    6     Any*          AllAny*
1154    8   1 X          X
1155   11   7 Alt          Alt
1156   14     ^          ^
1157   15   1 B          B
1158   18  15 Ket          Ket
1159   21  21 Ket          Ket
1160   24     End          End
1161  ------------------------------------------------------------------  ------------------------------------------------------------------
1162  Capturing subpattern count = 1  Capturing subpattern count = 1
1163  Options: anchored dotall  Options: anchored dotall
1164  No first char  No first char
1165  No need char  No need char
1166    
1167  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1168  ------------------------------------------------------------------  ------------------------------------------------------------------
1169    0  21 Bra 0          Bra
1170    3   8 Bra 1          CBra 1
1171    6     Any*          AllAny*
1172    8   1 X          X
1173   11   7 Alt          Alt
1174   14     ^          ^
1175   15   1 B          B
1176   18  15 Ket          Ket
1177   21  21 Ket          Ket
1178   24     End          End
1179  ------------------------------------------------------------------  ------------------------------------------------------------------
1180  Capturing subpattern count = 1  Capturing subpattern count = 1
1181  Options: anchored dotall  Options: anchored dotall
1182  No first char  No first char
1183  No need char  No need char
1184    
1185  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1186  ------------------------------------------------------------------  ------------------------------------------------------------------
1187    0  27 Bra 0          Bra
1188    3  10 Bra 0          Bra
1189    6  04 Opt          AllAny*
1190    8     Any*          X
1191   10   1 X          Alt
1192   13   9 Alt          ^
1193   16  04 Opt          B
1194   18     ^          Ket
1195   19   1 B          Ket
1196   22  19 Ket          End
  25  00 Opt  
  27  27 Ket  
  30     End  
1197  ------------------------------------------------------------------  ------------------------------------------------------------------
1198  Capturing subpattern count = 0  Capturing subpattern count = 0
1199  No options  Options: anchored
1200  First char at start or follows \n  No first char
1201  No need char  No need char
1202    
1203  /\Biss\B/+  /\Biss\B/I+
1204  Capturing subpattern count = 0  Capturing subpattern count = 0
1205  No options  No options
1206  First char = 'i'  First char = 'i'
# Line 1178  Need char = 's' Line 1209  Need char = 's'
1209   0: iss   0: iss
1210   0+ issippi   0+ issippi
1211    
1212  /\Biss\B/+P  /iss/IG+
     Mississippi  
  0: iss  
  0+ issippi  
   
 /iss/G+  
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  No options  No options
1215  First char = 'i'  First char = 'i'
# Line 1194  Need char = 's' Line 1220  Need char = 's'
1220   0: iss   0: iss
1221   0+ ippi   0+ ippi
1222    
1223  /\Biss\B/G+  /\Biss\B/IG+
1224  Capturing subpattern count = 0  Capturing subpattern count = 0
1225  No options  No options
1226  First char = 'i'  First char = 'i'
# Line 1203  Need char = 's' Line 1229  Need char = 's'
1229   0: iss   0: iss
1230   0+ issippi   0+ issippi
1231    
1232  /\Biss\B/g+  /\Biss\B/Ig+
1233  Capturing subpattern count = 0  Capturing subpattern count = 0
1234  No options  No options
1235  First char = 'i'  First char = 'i'
# Line 1218  No match Line 1244  No match
1244      Mississippi\A      Mississippi\A
1245  No match  No match
1246    
1247  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1248  Capturing subpattern count = 0  Capturing subpattern count = 0
1249  No options  No options
1250  First char = 'i'  First char = 'i'
# Line 1229  Need char = 's' Line 1255  Need char = 's'
1255   0: iss   0: iss
1256   0+ ippi   0+ ippi
1257    
1258  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1259  Capturing subpattern count = 0  Capturing subpattern count = 0
1260  No options  No options
1261  First char = 'i'  First char = 'i'
# Line 1238  Need char = 's' Line 1264  Need char = 's'
1264   0: iss   0: iss
1265   0+ issippi   0+ issippi
1266    
1267  /^iss/g+  /^iss/Ig+
1268  Capturing subpattern count = 0  Capturing subpattern count = 0
1269  Options: anchored  Options: anchored
1270  No first char  No first char
1271  Need char = 's'  No need char
1272      ississippi      ississippi
1273   0: iss   0: iss
1274   0+ issippi   0+ issippi
1275    
1276  /.*iss/g+  /.*iss/Ig+
1277  Capturing subpattern count = 0  Capturing subpattern count = 0
1278  No options  No options
1279  First char at start or follows \n  First char at start or follows newline
1280  Need char = 's'  Need char = 's'
1281      abciss\nxyzisspqr      abciss\nxyzisspqr
1282   0: abciss   0: abciss
1283   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1284   0: xyziss   0: xyziss
1285   0+ pqr   0+ pqr
1286    
1287  /.i./+g  /.i./I+g
1288  Capturing subpattern count = 0  Capturing subpattern count = 0
1289  No options  No options
1290  No first char  No first char
# Line 1284  Need char = 'i' Line 1310  Need char = 'i'
1310   0+ river   0+ river
1311   0: riv   0: riv
1312   0+ er   0+ er
1313      Missouri river\A      Missouri river\A
1314   0: Mis   0: Mis
1315   0+ souri river   0+ souri river
1316    
1317  /^.is/+g  /^.is/I+g
1318  Capturing subpattern count = 0  Capturing subpattern count = 0
1319  Options: anchored  Options: anchored
1320  No first char  No first char
1321  Need char = 's'  No need char
1322      Mississippi      Mississippi
1323   0: Mis   0: Mis
1324   0+ sissippi   0+ sissippi
1325    
1326  /^ab\n/g+  /^ab\n/Ig+
1327  Capturing subpattern count = 0  Capturing subpattern count = 0
1328    Contains explicit CR or LF match
1329  Options: anchored  Options: anchored
1330  No first char  No first char
1331  Need char = 10  No need char
1332      ab\nab\ncd      ab\nab\ncd
1333   0: ab\x0a   0: ab\x0a
1334   0+ ab\x0acd   0+ ab\x0acd
1335    
1336  /^ab\n/mg+  /^ab\n/Img+
1337  Capturing subpattern count = 0  Capturing subpattern count = 0
1338    Contains explicit CR or LF match
1339  Options: multiline  Options: multiline
1340  First char at start or follows \n  First char at start or follows newline
1341  Need char = 10  Need char = \x0a
1342      ab\nab\ncd      ab\nab\ncd
1343   0: ab\x0a   0: ab\x0a
1344   0+ ab\x0acd   0+ ab\x0acd
1345   0: ab\x0a   0: ab\x0a
1346   0+ cd   0+ cd
1347    
1348  /abc/  /abc/I
1349  Capturing subpattern count = 0  Capturing subpattern count = 0
1350  No options  No options
1351  First char = 'a'  First char = 'a'
1352  Need char = 'c'  Need char = 'c'
1353    
1354  /abc|bac/  /abc|bac/I
1355  Capturing subpattern count = 0  Capturing subpattern count = 0
1356  No options  No options
1357  No first char  No first char
1358  Need char = 'c'  Need char = 'c'
1359    
1360  /(abc|bac)/  /(abc|bac)/I
1361  Capturing subpattern count = 1  Capturing subpattern count = 1
1362  No options  No options
1363  No first char  No first char
1364  Need char = 'c'  Need char = 'c'
1365    
1366  /(abc|(c|dc))/  /(abc|(c|dc))/I
1367  Capturing subpattern count = 2  Capturing subpattern count = 2
1368  No options  No options
1369  No first char  No first char
1370  Need char = 'c'  Need char = 'c'
1371    
1372  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1373  Capturing subpattern count = 2  Capturing subpattern count = 2
1374  No options  No options
1375  No first char  No first char
1376  Need char = 'c'  Need char = 'c'
1377    
1378  /a*/  /a*/I
1379  Capturing subpattern count = 0  Capturing subpattern count = 0
1380  No options  No options
1381  No first char  No first char
1382  No need char  No need char
1383    
1384  /a+/  /a+/I
1385  Capturing subpattern count = 0  Capturing subpattern count = 0
1386  No options  No options
1387  First char = 'a'  First char = 'a'
1388  No need char  No need char
1389    
1390  /(baa|a+)/  /(baa|a+)/I
1391  Capturing subpattern count = 1  Capturing subpattern count = 1
1392  No options  No options
1393  No first char  No first char
1394  Need char = 'a'  Need char = 'a'
1395    
1396  /a{0,3}/  /a{0,3}/I
1397  Capturing subpattern count = 0  Capturing subpattern count = 0
1398  No options  No options
1399  No first char  No first char
1400  No need char  No need char
1401    
1402  /baa{3,}/  /baa{3,}/I
1403  Capturing subpattern count = 0  Capturing subpattern count = 0
1404  No options  No options
1405  First char = 'b'  First char = 'b'
1406  Need char = 'a'  Need char = 'a'
1407    
1408  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1409  Capturing subpattern count = 1  Capturing subpattern count = 1
1410  No options  No options
1411  First char = '"'  First char = '"'
1412  Need char = '"'  Need char = '"'
1413    
1414  /(abc|ab[cd])/  /(abc|ab[cd])/I
1415  Capturing subpattern count = 1  Capturing subpattern count = 1
1416  No options  No options
1417  First char = 'a'  First char = 'a'
1418  No need char  No need char
1419    
1420  /(a|.)/  /(a|.)/I
1421  Capturing subpattern count = 1  Capturing subpattern count = 1
1422  No options  No options
1423  No first char  No first char
1424  No need char  No need char
1425    
1426  /a|ba|\w/  /a|ba|\w/I
1427  Capturing subpattern count = 0  Capturing subpattern count = 0
1428  No options  No options
1429  No first char  No first char
1430  No need char  No need char
1431    
1432  /abc(?=pqr)/  /abc(?=pqr)/I
1433  Capturing subpattern count = 0  Capturing subpattern count = 0
1434  No options  No options
1435  First char = 'a'  First char = 'a'
1436  Need char = 'r'  Need char = 'r'
1437    
1438  /...(?<=abc)/  /...(?<=abc)/I
1439  Capturing subpattern count = 0  Capturing subpattern count = 0
1440  No options  No options
1441  No first char  No first char
1442  No need char  No need char
1443    
1444  /abc(?!pqr)/  /abc(?!pqr)/I
1445  Capturing subpattern count = 0  Capturing subpattern count = 0
1446  No options  No options
1447  First char = 'a'  First char = 'a'
1448  Need char = 'c'  Need char = 'c'
1449    
1450  /ab./  /ab./I
1451  Capturing subpattern count = 0  Capturing subpattern count = 0
1452  No options  No options
1453  First char = 'a'  First char = 'a'
1454  Need char = 'b'  Need char = 'b'
1455    
1456  /ab[xyz]/  /ab[xyz]/I
1457  Capturing subpattern count = 0  Capturing subpattern count = 0
1458  No options  No options
1459  First char = 'a'  First char = 'a'
1460  Need char = 'b'  Need char = 'b'
1461    
1462  /abc*/  /abc*/I
1463  Capturing subpattern count = 0  Capturing subpattern count = 0
1464  No options  No options
1465  First char = 'a'  First char = 'a'
1466  Need char = 'b'  Need char = 'b'
1467    
1468  /ab.c*/  /ab.c*/I
1469  Capturing subpattern count = 0  Capturing subpattern count = 0
1470  No options  No options
1471  First char = 'a'  First char = 'a'
1472  Need char = 'b'  Need char = 'b'
1473    
1474  /a.c*/  /a.c*/I
1475  Capturing subpattern count = 0  Capturing subpattern count = 0
1476  No options  No options
1477  First char = 'a'  First char = 'a'
1478  No need char  No need char
1479    
1480  /.c*/  /.c*/I
1481  Capturing subpattern count = 0  Capturing subpattern count = 0
1482  No options  No options
1483  No first char  No first char
1484  No need char  No need char
1485    
1486  /ac*/  /ac*/I
1487  Capturing subpattern count = 0  Capturing subpattern count = 0
1488  No options  No options
1489  First char = 'a'  First char = 'a'
1490  No need char  No need char
1491    
1492  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1493  Capturing subpattern count = 1  Capturing subpattern count = 1
1494  No options  No options
1495  No first char  No first char
1496  No need char  No need char
1497    
1498  /a.c*|aba/  /a.c*|aba/I
1499  Capturing subpattern count = 0  Capturing subpattern count = 0
1500  No options  No options
1501  First char = 'a'  First char = 'a'
1502  No need char  No need char
1503    
1504  /.+a/  /.+a/I
1505  Capturing subpattern count = 0  Capturing subpattern count = 0
1506  No options  No options
1507  No first char  No first char
1508  Need char = 'a'  Need char = 'a'
1509    
1510  /(?=abcda)a.*/  /(?=abcda)a.*/I
1511  Capturing subpattern count = 0  Capturing subpattern count = 0
1512  No options  No options
1513  First char = 'a'  First char = 'a'
1514  No need char  Need char = 'a'
1515    
1516  /(?=a)a.*/  /(?=a)a.*/I
1517  Capturing subpattern count = 0  Capturing subpattern count = 0
1518  No options  No options
1519  First char = 'a'  First char = 'a'
1520  No need char  No need char
1521    
1522  /a(b)*/  /a(b)*/I
1523  Capturing subpattern count = 1  Capturing subpattern count = 1
1524  No options  No options
1525  First char = 'a'  First char = 'a'
1526  No need char  No need char
1527    
1528  /a\d*/  /a\d*/I
1529  Capturing subpattern count = 0  Capturing subpattern count = 0
1530  No options  No options
1531  First char = 'a'  First char = 'a'
1532  No need char  No need char
1533    
1534  /ab\d*/  /ab\d*/I
1535  Capturing subpattern count = 0  Capturing subpattern count = 0
1536  No options  No options
1537  First char = 'a'  First char = 'a'
1538  Need char = 'b'  Need char = 'b'
1539    
1540  /a(\d)*/  /a(\d)*/I
1541  Capturing subpattern count = 1  Capturing subpattern count = 1
1542  No options  No options
1543  First char = 'a'  First char = 'a'
1544  No need char  No need char
1545    
1546  /abcde{0,0}/  /abcde{0,0}/I
1547  Capturing subpattern count = 0  Capturing subpattern count = 0
1548  No options  No options
1549  First char = 'a'  First char = 'a'
1550  Need char = 'd'  Need char = 'd'
1551    
1552  /ab\d+/  /ab\d+/I
1553  Capturing subpattern count = 0  Capturing subpattern count = 0
1554  No options  No options
1555  First char = 'a'  First char = 'a'
1556  Need char = 'b'  Need char = 'b'
1557    
1558  /a(?(1)b)/  /a(?(1)b)(.)/I
1559  Capturing subpattern count = 0  Capturing subpattern count = 1
1560  No options  No options
1561  First char = 'a'  First char = 'a'
1562  No need char  No need char
1563    
1564  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1565  Capturing subpattern count = 0  Capturing subpattern count = 1
1566  No options  No options
1567  First char = 'a'  First char = 'a'
1568  Need char = 'g'  Need char = 'g'
1569    
1570  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1571  Capturing subpattern count = 0  Capturing subpattern count = 1
1572  No options  No options
1573  First char = 'a'  First char = 'a'
1574  No need char  No need char
1575    
1576  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1577  Capturing subpattern count = 0  Capturing subpattern count = 1
1578  No options  No options
1579  First char = 'a'  First char = 'a'
1580  Need char = 'g'  Need char = 'g'
1581    
1582  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1583  Capturing subpattern count = 0  Capturing subpattern count = 1
1584  No options  No options
1585  First char = 'a'  First char = 'a'
1586  Need char = 'b'  Need char = 'b'
1587    
1588  /ab\d{0}e/  /ab\d{0}e/I
1589  Capturing subpattern count = 0  Capturing subpattern count = 0
1590  No options  No options
1591  First char = 'a'  First char = 'a'
1592  Need char = 'e'  Need char = 'e'
1593    
1594  /a?b?/  /a?b?/I
1595  Capturing subpattern count = 0  Capturing subpattern count = 0
1596  No options  No options
1597  No first char  No first char
# Line 1578  No need char Line 1606  No need char
1606   0:   0:
1607      *** Failers      *** Failers
1608   0:   0:
1609      \N      \N
1610  No match  No match
1611    
1612  /|-/  /|-/I
1613  Capturing subpattern count = 0  Capturing subpattern count = 0
1614  No options  No options
1615  No first char  No first char
# Line 1594  No need char Line 1622  No need char
1622   0: -   0: -
1623      *** Failers      *** Failers
1624   0:   0:
1625      \Nabc      \Nabc
1626  No match  No match
1627    
1628  /a*(b+)(z)(z)/P  /^.?abcd/IS
     aaaabbbbzzzz  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
  0: aaaabbbbzz  
     aaaabbbbzzzz\O2  
  0: aaaabbbbzz  
  1: bbbb  
     aaaabbbbzzzz\O3  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
     aaaabbbbzzzz\O4  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O5  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
   
 /^.?abcd/S  
1629  Capturing subpattern count = 0  Capturing subpattern count = 0
1630  Options: anchored  Options: anchored
1631  No first char  No first char
1632  Need char = 'd'  Need char = 'd'
1633  Study returned NULL  Subject length lower bound = 4
1634    No set of starting bytes
1635    
1636  /\(             # ( at start  /\(             # ( at start
1637    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1638  Study returned NULL Line 1640  Study returned NULL
1640    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1641    )*            # Zero or more contents    )*            # Zero or more contents
1642    \)            # Closing )    \)            # Closing )
1643    /x    /Ix
1644  Capturing subpattern count = 0  Capturing subpattern count = 0
1645  Options: extended  Options: extended
1646  First char = '('  First char = '('
# Line 1649  Need char = ')' Line 1651  Need char = ')'
1651   0: (abcd)   0: (abcd)
1652      xyz(abcd)      xyz(abcd)
1653   0: (abcd)   0: (abcd)
1654      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1655   0: (ab(xy)cd)   0: (ab(xy)cd)
1656      (ab(xycd)pqr      (ab(xycd)pqr
1657   0: (xycd)   0: (xycd)
1658      () abc ()      () abc ()
1659   0: ()   0: ()
1660      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1661   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1662      *** Failers      *** Failers
1663  No match  No match
1664      abcd      abcd
1665  No match  No match
1666      abcd)      abcd)
1667  No match  No match
1668      (abcd      (abcd
1669  No match  No match
1670    
1671  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1672  Capturing subpattern count = 1  Capturing subpattern count = 1
1673  Options: extended  Options: extended
1674  First char = '('  First char = '('
1675  Need char = ')'  Need char = ')'
1676      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1677   0: (ab(xy)cd)   0: (ab(xy)cd)
1678   1: cd   1: cd
1679      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1680  Need char = ')' Line 1682  Need char = ')'
1682   0: (x(y)z)   0: (x(y)z)
1683   1: z   1: z
1684    
1685  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1686  Capturing subpattern count = 0  Capturing subpattern count = 0
1687  Options: extended  Options: extended
1688  First char = '('  First char = '('
# Line 1689  Need char = ')' Line 1691  Need char = ')'
1691   0: (abcd)   0: (abcd)
1692      (ab(xy)cd)      (ab(xy)cd)
1693   0: (xy)   0: (xy)
1694      (a(b(c)d)e)      (a(b(c)d)e)
1695   0: (c)   0: (c)
1696      ((ab))      ((ab))
1697   0: ((ab))   0: ((ab))
1698      *** Failers      *** Failers
1699  No match  No match
1700      ()      ()
1701  No match  No match
1702    
1703  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1704  Capturing subpattern count = 0  Capturing subpattern count = 0
1705  Options: extended  Options: extended
1706  First char = '('  First char = '('
# Line 1708  Need char = ')' Line 1710  Need char = ')'
1710      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1711   0: (fsh)   0: (fsh)
1712    
1713  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1714  Capturing subpattern count = 1  Capturing subpattern count = 1
1715  Options: extended  Options: extended
1716  First char = '('  First char = '('
# Line 1717  Need char = ')' Line 1719  Need char = ')'
1719   0: (ab(xy)cd)   0: (ab(xy)cd)
1720   1: cd   1: cd
1721    
1722  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1723  Capturing subpattern count = 2  Capturing subpattern count = 2
1724  Options: extended  Options: extended
1725  First char = '('  First char = '('
# Line 1727  Need char = ')' Line 1729  Need char = ')'
1729   1: ab(xy)cd   1: ab(xy)cd
1730   2: cd   2: cd
1731    
1732  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1733  Capturing subpattern count = 3  Capturing subpattern count = 3
1734  Options: extended  Options: extended
1735  First char = '('  First char = '('
# Line 1743  Need char = ')' Line 1745  Need char = ')'
1745   2: ab(xy)cd   2: ab(xy)cd
1746   3: cd   3: cd
1747    
1748  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1749  Capturing subpattern count = 3  Capturing subpattern count = 3
1750  Options: extended  Options: extended
1751  First char = '('  First char = '('
# Line 1759  Need char = ')' Line 1761  Need char = ')'
1761   2: 123   2: 123
1762   3: cd   3: cd
1763    
1764  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1765  Capturing subpattern count = 11  Capturing subpattern count = 11
1766  Options: extended  Options: extended
1767  First char = '('  First char = '('
# Line 1778  Need char = ')' Line 1780  Need char = ')'
1780  10: ab(xy)cd  10: ab(xy)cd
1781  11: cd  11: cd
1782    
1783  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1784  Capturing subpattern count = 3  Capturing subpattern count = 3
1785  Options: extended  Options: extended
1786  First char = '('  First char = '('
# Line 1787  Need char = ')' Line 1789  Need char = ')'
1789   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1790   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1791   2: 123   2: 123
  3: <p>qrs  
1792    
1793  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1794  Capturing subpattern count = 3  Capturing subpattern count = 3
1795  Options: extended  Options: extended
1796  First char = '('  First char = '('
# Line 1805  Need char = ')' Line 1806  Need char = ')'
1806   2: ij   2: ij
1807   3: (cd(ef)gh)   3: (cd(ef)gh)
1808    
1809  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1810    ------------------------------------------------------------------
1811            Bra
1812            ^
1813            [0-9A-Za-z]
1814            Ket
1815            End
1816    ------------------------------------------------------------------
1817    Capturing subpattern count = 0
1818    Options: anchored
1819    No first char
1820    No need char
1821    
1822    /^[[:^alnum:]]/DZ
1823    ------------------------------------------------------------------
1824            Bra
1825            ^
1826            [\x00-/:-@[-`{-\xff] (neg)
1827            Ket
1828            End
1829    ------------------------------------------------------------------
1830    Capturing subpattern count = 0
1831    Options: anchored
1832    No first char
1833    No need char
1834    
1835    /^[[:alpha:]]/DZ
1836    ------------------------------------------------------------------
1837            Bra
1838            ^
1839            [A-Za-z]
1840            Ket
1841            End
1842    ------------------------------------------------------------------
1843    Capturing subpattern count = 0
1844    Options: anchored
1845    No first char
1846    No need char
1847    
1848    /^[[:^alpha:]]/DZ
1849    ------------------------------------------------------------------
1850            Bra
1851            ^
1852            [\x00-@[-`{-\xff] (neg)
1853            Ket
1854            End
1855    ------------------------------------------------------------------
1856    Capturing subpattern count = 0
1857    Options: anchored
1858    No first char
1859    No need char
1860    
1861    /[_[:alpha:]]/IS
1862    Capturing subpattern count = 0
1863    No options
1864    No first char
1865    No need char
1866    Subject length lower bound = 1
1867    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
1868      _ 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
1869    
1870    /^[[:ascii:]]/DZ
1871    ------------------------------------------------------------------
1872            Bra
1873            ^
1874            [\x00-\x7f]
1875            Ket
1876            End
1877    ------------------------------------------------------------------
1878    Capturing subpattern count = 0
1879    Options: anchored
1880    No first char
1881    No need char
1882    
1883    /^[[:^ascii:]]/DZ
1884    ------------------------------------------------------------------
1885            Bra
1886            ^
1887            [\x80-\xff] (neg)
1888            Ket
1889            End
1890    ------------------------------------------------------------------
1891    Capturing subpattern count = 0
1892    Options: anchored
1893    No first char
1894    No need char
1895    
1896    /^[[:blank:]]/DZ
1897  ------------------------------------------------------------------  ------------------------------------------------------------------
1898    0  37 Bra 0          Bra
1899    3     ^          ^
1900    4     [0-9A-Za-z]          [\x09 ]
1901   37  37 Ket          Ket
1902   40     End          End
1903  ------------------------------------------------------------------  ------------------------------------------------------------------
1904  Capturing subpattern count = 0  Capturing subpattern count = 0
1905  Options: anchored  Options: anchored
1906  No first char  No first char
1907  No need char  No need char
1908    
1909  /^[[:alpha:]]/D  /^[[:^blank:]]/DZ
1910  ------------------------------------------------------------------  ------------------------------------------------------------------
1911    0  37 Bra 0          Bra
1912    3     ^          ^
1913    4     [A-Za-z]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1914   37  37 Ket          Ket
1915   40     End          End
1916  ------------------------------------------------------------------  ------------------------------------------------------------------
1917  Capturing subpattern count = 0  Capturing subpattern count = 0
1918  Options: anchored  Options: anchored
1919  No first char  No first char
1920  No need char  No need char
1921    
1922  /^[[:ascii:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
1923    Capturing subpattern count = 0
1924    Contains explicit CR or LF match
1925    No options
1926    No first char
1927    No need char
1928    Subject length lower bound = 1
1929    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1930    
1931    /^[[:cntrl:]]/DZ
1932  ------------------------------------------------------------------  ------------------------------------------------------------------
1933    0  37 Bra 0          Bra
1934    3     ^          ^
1935    4     [\x00-\x7f]          [\x00-\x1f\x7f]
1936   37  37 Ket          Ket
1937   40     End          End
1938  ------------------------------------------------------------------  ------------------------------------------------------------------
1939  Capturing subpattern count = 0  Capturing subpattern count = 0
1940  Options: anchored  Options: anchored
1941  No first char  No first char
1942  No need char  No need char
1943    
1944  /^[[:cntrl:]]/D  /^[[:digit:]]/DZ
1945  ------------------------------------------------------------------  ------------------------------------------------------------------
1946    0  37 Bra 0          Bra
1947    3     ^          ^
1948    4     [\x00-\x1f\x7f]          [0-9]
1949   37  37 Ket          Ket
1950   40     End          End
1951  ------------------------------------------------------------------  ------------------------------------------------------------------
1952  Capturing subpattern count = 0  Capturing subpattern count = 0
1953  Options: anchored  Options: anchored
1954  No first char  No first char
1955  No need char  No need char
1956    
1957  /^[[:digit:]]/D  /^[[:graph:]]/DZ
1958  ------------------------------------------------------------------  ------------------------------------------------------------------
1959    0  37 Bra 0          Bra
1960    3     ^          ^
1961    4     [0-9]          [!-~]
1962   37  37 Ket          Ket
1963   40     End          End
1964  ------------------------------------------------------------------  ------------------------------------------------------------------
1965  Capturing subpattern count = 0  Capturing subpattern count = 0
1966  Options: anchored  Options: anchored
1967  No first char  No first char
1968  No need char  No need char
1969    
1970  /^[[:graph:]]/D  /^[[:lower:]]/DZ
1971  ------------------------------------------------------------------  ------------------------------------------------------------------
1972    0  37 Bra 0          Bra
1973    3     ^          ^
1974    4     [!-~]          [a-z]
1975   37  37 Ket          Ket
1976   40     End          End
1977  ------------------------------------------------------------------  ------------------------------------------------------------------
1978  Capturing subpattern count = 0  Capturing subpattern count = 0
1979  Options: anchored  Options: anchored
1980  No first char  No first char
1981  No need char  No need char
1982    
1983  /^[[:lower:]]/D  /^[[:print:]]/DZ
1984  ------------------------------------------------------------------  ------------------------------------------------------------------
1985    0  37 Bra 0          Bra
1986    3     ^          ^
1987    4     [a-z]          [ -~]
1988   37  37 Ket          Ket
1989   40     End          End
1990  ------------------------------------------------------------------  ------------------------------------------------------------------
1991  Capturing subpattern count = 0  Capturing subpattern count = 0
1992  Options: anchored  Options: anchored
1993  No first char  No first char
1994  No need char  No need char
1995    
1996  /^[[:print:]]/D  /^[[:punct:]]/DZ
1997  ------------------------------------------------------------------  ------------------------------------------------------------------
1998    0  37 Bra 0          Bra
1999    3     ^          ^
2000    4     [ -~]          [!-/:-@[-`{-~]
2001   37  37 Ket          Ket
2002   40     End          End
2003  ------------------------------------------------------------------  ------------------------------------------------------------------
2004  Capturing subpattern count = 0  Capturing subpattern count = 0
2005  Options: anchored  Options: anchored
2006  No first char  No first char
2007  No need char  No need char
2008    
2009  /^[[:punct:]]/D  /^[[:space:]]/DZ
2010  ------------------------------------------------------------------  ------------------------------------------------------------------
2011    0  37 Bra 0          Bra
2012    3     ^          ^
2013    4     [!-/:-@[-`{-~]          [\x09-\x0d ]
2014   37  37 Ket          Ket
2015   40     End          End
2016  ------------------------------------------------------------------  ------------------------------------------------------------------
2017  Capturing subpattern count = 0  Capturing subpattern count = 0
2018  Options: anchored  Options: anchored
2019  No first char  No first char
2020  No need char  No need char
2021    
2022  /^[[:space:]]/D  /^[[:upper:]]/DZ
2023  ------------------------------------------------------------------  ------------------------------------------------------------------
2024    0  37 Bra 0          Bra
2025    3     ^          ^
2026    4     [\x09-\x0d ]          [A-Z]
2027   37  37 Ket          Ket
2028   40     End          End
2029  ------------------------------------------------------------------  ------------------------------------------------------------------
2030  Capturing subpattern count = 0  Capturing subpattern count = 0
2031  Options: anchored  Options: anchored
2032  No first char  No first char
2033  No need char  No need char
2034    
2035  /^[[:upper:]]/D  /^[[:xdigit:]]/DZ
2036  ------------------------------------------------------------------  ------------------------------------------------------------------
2037    0  37 Bra 0          Bra
2038    3     ^          ^
2039    4     [A-Z]          [0-9A-Fa-f]
2040   37  37 Ket          Ket
2041   40     End          End
2042  ------------------------------------------------------------------  ------------------------------------------------------------------
2043  Capturing subpattern count = 0  Capturing subpattern count = 0
2044  Options: anchored  Options: anchored
2045  No first char  No first char
2046  No need char  No need char
2047    
2048  /^[[:xdigit:]]/D  /^[[:word:]]/DZ
2049  ------------------------------------------------------------------  ------------------------------------------------------------------
2050    0  37 Bra 0          Bra
2051    3     ^          ^
2052    4     [0-9A-Fa-f]          [0-9A-Z_a-z]
2053   37  37 Ket          Ket
2054   40     End          End
2055  ------------------------------------------------------------------  ------------------------------------------------------------------
2056  Capturing subpattern count = 0  Capturing subpattern count = 0
2057  Options: anchored  Options: anchored
2058  No first char  No first char
2059  No need char  No need char
2060    
2061  /^[[:word:]]/D  /^[[:^cntrl:]]/DZ
2062  ------------------------------------------------------------------  ------------------------------------------------------------------
2063    0  37 Bra 0          Bra
2064    3     ^          ^
2065    4     [0-9A-Z_a-z]          [ -~\x80-\xff] (neg)
2066   37  37 Ket          Ket
2067   40     End          End
2068  ------------------------------------------------------------------  ------------------------------------------------------------------
2069  Capturing subpattern count = 0  Capturing subpattern count = 0
2070  Options: anchored  Options: anchored
2071  No first char  No first char
2072  No need char  No need char
2073    
2074  /^[[:^cntrl:]]/D  /^[12[:^digit:]]/DZ
2075  ------------------------------------------------------------------  ------------------------------------------------------------------
2076    0  37 Bra 0          Bra
2077    3     ^          ^
2078    4     [ -~\x80-\xff]          [\x00-/12:-\xff] (neg)
2079   37  37 Ket          Ket
2080   40     End          End
2081  ------------------------------------------------------------------  ------------------------------------------------------------------
2082  Capturing subpattern count = 0  Capturing subpattern count = 0
2083  Options: anchored  Options: anchored
2084  No first char  No first char
2085  No need char  No need char
2086    
2087  /^[12[:^digit:]]/D  /^[[:^blank:]]/DZ
2088  ------------------------------------------------------------------  ------------------------------------------------------------------
2089    0  37 Bra 0          Bra
2090    3     ^          ^
2091    4     [\x00-/1-2:-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2092   37  37 Ket          Ket
2093   40     End          End
2094  ------------------------------------------------------------------  ------------------------------------------------------------------
2095  Capturing subpattern count = 0  Capturing subpattern count = 0
2096  Options: anchored  Options: anchored
2097  No first char  No first char
2098  No need char  No need char
2099    
2100  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2101  ------------------------------------------------------------------  ------------------------------------------------------------------
2102    0  36 Bra 0          Bra
2103    3     [%0-1A-Za-z]          [%01A-Za-z]
2104   36  36 Ket          Ket
2105   39     End          End
2106  ------------------------------------------------------------------  ------------------------------------------------------------------
2107  Capturing subpattern count = 0  Capturing subpattern count = 0
2108  No options  No options
2109  No first char  No first char
2110  No need char  No need char
2111    
2112  /[[.ch.]]/  /[[.ch.]]/I
2113  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2114    
2115  /[[=ch=]]/  /[[=ch=]]/I
2116  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2117    
2118  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2119  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2120    
2121  /[[:upper:]]/i  /[[:upper:]]/Ii
2122  Capturing subpattern count = 0  Capturing subpattern count = 0
2123  Options: caseless  Options: caseless
2124  No first char  No first char
2125  No need char  No need char
2126      A      A
2127   0: A   0: A
2128      a      a
2129   0: a   0: a
2130    
2131  /[[:lower:]]/i  /[[:lower:]]/Ii
2132  Capturing subpattern count = 0  Capturing subpattern count = 0
2133  Options: caseless  Options: caseless
2134  No first char  No first char
2135  No need char  No need char
2136      A      A
2137   0: A   0: A
2138      a      a
2139   0: a   0: a
2140    
2141  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2142  Capturing subpattern count = 1  Capturing subpattern count = 1
2143  Options: caseless  Options: caseless
 Case state changes  
2144  No first char  No first char
2145  No need char  No need char
2146      ab      ab
# Line 2058  No need char Line 2154  No need char
2154   1: a   1: a
2155      Ab      Ab
2156  No match  No match
2157      AB      AB
2158  No match  No match
2159    
2160  /[\200-\410]/  /[\200-\110]/I
2161  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2162    
2163  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2164  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2165    
2166  / End of testinput2 /  /This one's here because of the large output vector needed/I
2167  Capturing subpattern count = 0  Capturing subpattern count = 0
2168  No options  No options
2169  First char = ' '  First char = 'T'
2170  Need char = ' '  Need char = 'd'
2171    
2172    /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2173    Capturing subpattern count = 271
2174    Max back reference = 270
2175    No options
2176    No first char
2177    No need char
2178        \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
2179     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
2180     1: 1
2181     2: 2
2182     3: 3
2183     4: 4
2184     5: 5
2185     6: 6
2186     7: 7
2187     8: 8
2188     9: 9
2189    10: 10
2190    11: 11
2191    12: 12
2192    13: 13
2193    14: 14
2194    15: 15
2195    16: 16
2196    17: 17
2197    18: 18
2198    19: 19
2199    20: 20
2200    21: 21
2201    22: 22
2202    23: 23
2203    24: 24
2204    25: 25
2205    26: 26
2206    27: 27
2207    28: 28
2208    29: 29
2209    30: 30
2210    31: 31
2211    32: 32
2212    33: 33
2213    34: 34
2214    35: 35
2215    36: 36
2216    37: 37
2217    38: 38
2218    39: 39
2219    40: 40
2220    41: 41
2221    42: 42
2222    43: 43
2223    44: 44
2224    45: 45
2225    46: 46
2226    47: 47
2227    48: 48
2228    49: 49
2229    50: 50
2230    51: 51
2231    52: 52
2232    53: 53
2233    54: 54
2234    55: 55
2235    56: 56
2236    57: 57
2237    58: 58
2238    59: 59
2239    60: 60
2240    61: 61
2241    62: 62
2242    63: 63
2243    64: 64
2244    65: 65
2245    66: 66
2246    67: 67
2247    68: 68
2248    69: 69
2249    70: 70
2250    71: 71
2251    72: 72
2252    73: 73
2253    74: 74
2254    75: 75
2255    76: 76
2256    77: 77
2257    78: 78
2258    79: 79
2259    80: 80
2260    81: 81
2261    82: 82
2262    83: 83
2263    84: 84
2264    85: 85
2265    86: 86
2266    87: 87
2267    88: 88
2268    89: 89
2269    90: 90
2270    91: 91
2271    92: 92
2272    93: 93
2273    94: 94
2274    95: 95
2275    96: 96
2276    97: 97
2277    98: 98
2278    99: 99
2279    100: 100
2280    101: 101
2281    102: 102
2282    103: 103
2283    104: 104
2284    105: 105
2285    106: 106
2286    107: 107
2287    108: 108
2288    109: 109
2289    110: 110
2290    111: 111
2291    112: 112
2292    113: 113
2293    114: 114
2294    115: 115
2295    116: 116
2296    117: 117
2297    118: 118
2298    119: 119
2299    120: 120
2300    121: 121
2301    122: 122
2302    123: 123
2303    124: 124
2304    125: 125
2305    126: 126
2306    127: 127
2307    128: 128
2308    129: 129
2309    130: 130
2310    131: 131
2311    132: 132
2312    133: 133
2313    134: 134
2314    135: 135
2315    136: 136
2316    137: 137
2317    138: 138
2318    139: 139
2319    140: 140
2320    141: 141
2321    142: 142
2322    143: 143
2323    144: 144
2324    145: 145
2325    146: 146
2326    147: 147
2327    148: 148
2328    149: 149
2329    150: 150
2330    151: 151
2331    152: 152
2332    153: 153
2333    154: 154
2334    155: 155
2335    156: 156
2336    157: 157
2337    158: 158
2338    159: 159
2339    160: 160
2340    161: 161
2341    162: 162
2342    163: 163
2343    164: 164
2344    165: 165
2345    166: 166
2346    167: 167
2347    168: 168
2348    169: 169
2349    170: 170
2350    171: 171
2351    172: 172
2352    173: 173
2353    174: 174
2354    175: 175
2355    176: 176
2356    177: 177
2357    178: 178
2358    179: 179
2359    180: 180
2360    181: 181
2361    182: 182
2362    183: 183
2363    184: 184
2364    185: 185
2365    186: 186
2366    187: 187
2367    188: 188
2368    189: 189
2369    190: 190
2370    191: 191
2371    192: 192
2372    193: 193
2373    194: 194
2374    195: 195
2375    196: 196
2376    197: 197
2377    198: 198
2378    199: 199
2379    200: 200
2380    201: 201
2381    202: 202
2382    203: 203
2383    204: 204
2384    205: 205
2385    206: 206
2386    207: 207
2387    208: 208
2388    209: 209
2389    210: 210
2390    211: 211
2391    212: 212
2392    213: 213
2393    214: 214
2394    215: 215
2395    216: 216
2396    217: 217
2397    218: 218
2398    219: 219
2399    220: 220
2400    221: 221
2401    222: 222
2402    223: 223
2403    224: 224
2404    225: 225
2405    226: 226
2406    227: 227
2407    228: 228
2408    229: 229
2409    230: 230
2410    231: 231
2411    232: 232
2412    233: 233
2413    234: 234
2414    235: 235
2415    236: 236
2416    237: 237
2417    238: 238
2418    239: 239
2419    240: 240
2420    241: 241
2421    242: 242
2422    243: 243
2423    244: 244
2424    245: 245
2425    246: 246
2426    247: 247
2427    248: 248
2428    249: 249
2429    250: 250
2430    251: 251
2431    252: 252
2432    253: 253
2433    254: 254
2434    255: 255
2435    256: 256
2436    257: 257
2437    258: 258
2438    259: 259
2439    260: 260
2440    261: 261
2441    262: 262
2442    263: 263
2443    264: 264
2444    265: 265
2445    266: 266
2446    267: 267
2447    268: 268
2448    269: 269
2449    270: ABC
2450    271: ABC
2451    
2452    /This one's here because Perl does this differently and PCRE can't at present/I
2453    Capturing subpattern count = 0
2454    No options
2455    First char = 'T'
2456    Need char = 't'
2457    
2458    /(main(O)?)+/I
2459    Capturing subpattern count = 2
2460    No options
2461    First char = 'm'
2462    Need char = 'n'
2463        mainmain
2464     0: mainmain
2465     1: main
2466        mainOmain
2467     0: mainOmain
2468     1: main
2469     2: O
2470    
2471    /These are all cases where Perl does it differently (nested captures)/I
2472    Capturing subpattern count = 1
2473    No options
2474    First char = 'T'
2475    Need char = 's'
2476    
2477    /^(a(b)?)+$/I
2478    Capturing subpattern count = 2
2479    Options: anchored
2480    No first char
2481    No need char
2482        aba
2483     0: aba
2484     1: a
2485     2: b
2486    
2487    /^(aa(bb)?)+$/I
2488    Capturing subpattern count = 2
2489    Options: anchored
2490    No first char
2491    No need char
2492        aabbaa
2493     0: aabbaa
2494     1: aa
2495     2: bb
2496    
2497    /^(aa|aa(bb))+$/I
2498    Capturing subpattern count = 2
2499    Options: anchored
2500    No first char
2501    No need char
2502        aabbaa
2503     0: aabbaa
2504     1: aa
2505     2: bb
2506    
2507    /^(aa(bb)??)+$/I
2508    Capturing subpattern count = 2
2509    Options: anchored
2510    No first char
2511    No need char
2512        aabbaa
2513     0: aabbaa
2514     1: aa
2515     2: bb
2516    
2517    /^(?:aa(bb)?)+$/I
2518    Capturing subpattern count = 1
2519    Options: anchored
2520    No first char
2521    No need char
2522        aabbaa
2523     0: aabbaa
2524     1: bb
2525    
2526    /^(aa(b(b))?)+$/I
2527    Capturing subpattern count = 3
2528    Options: anchored
2529    No first char
2530    No need char
2531        aabbaa
2532     0: aabbaa
2533     1: aa
2534     2: bb
2535     3: b
2536    
2537    /^(?:aa(b(b))?)+$/I
2538    Capturing subpattern count = 2
2539    Options: anchored
2540    No first char
2541    No need char
2542        aabbaa
2543     0: aabbaa
2544     1: bb
2545     2: b
2546    
2547    /^(?:aa(b(?:b))?)+$/I
2548    Capturing subpattern count = 1
2549    Options: anchored
2550    No first char
2551    No need char
2552        aabbaa
2553     0: aabbaa
2554     1: bb
2555    
2556    /^(?:aa(bb(?:b))?)+$/I
2557    Capturing subpattern count = 1
2558    Options: anchored
2559    No first char
2560    No need char
2561        aabbbaa
2562     0: aabbbaa
2563     1: bbb
2564    
2565    /^(?:aa(b(?:bb))?)+$/I
2566    Capturing subpattern count = 1
2567    Options: anchored
2568    No first char
2569    No need char
2570        aabbbaa
2571     0: aabbbaa
2572     1: bbb
2573    
2574    /^(?:aa(?:b(b))?)+$/I
2575    Capturing subpattern count = 1
2576    Options: anchored
2577    No first char
2578    No need char
2579        aabbaa
2580     0: aabbaa
2581     1: b
2582    
2583    /^(?:aa(?:b(bb))?)+$/I
2584    Capturing subpattern count = 1
2585    Options: anchored
2586    No first char
2587    No need char
2588        aabbbaa
2589     0: aabbbaa
2590     1: bb
2591    
2592    /^(aa(b(bb))?)+$/I
2593    Capturing subpattern count = 3
2594    Options: anchored
2595    No first char
2596    No need char
2597        aabbbaa
2598     0: aabbbaa
2599     1: aa
2600     2: bbb
2601     3: bb
2602    
2603    /^(aa(bb(bb))?)+$/I
2604    Capturing subpattern count = 3
2605    Options: anchored
2606    No first char
2607    No need char
2608        aabbbbaa
2609     0: aabbbbaa
2610     1: aa
2611     2: bbbb
2612     3: bb
2613    
2614    /--------------------------------------------------------------------/I
2615    Capturing subpattern count = 0
2616    No options
2617    First char = '-'
2618    Need char = '-'
2619    
2620    /#/IxDZ
2621    ------------------------------------------------------------------
2622            Bra
2623            Ket
2624            End
2625    ------------------------------------------------------------------
2626    Capturing subpattern count = 0
2627    Options: extended
2628    No first char
2629    No need char
2630    
2631    /a#/IxDZ
2632    ------------------------------------------------------------------
2633            Bra
2634            a
2635            Ket
2636            End
2637    ------------------------------------------------------------------
2638    Capturing subpattern count = 0
2639    Options: extended
2640    First char = 'a'
2641    No need char
2642    
2643    /[\s]/DZ
2644    ------------------------------------------------------------------
2645            Bra
2646            [\x09\x0a\x0c\x0d ]
2647            Ket
2648            End
2649    ------------------------------------------------------------------
2650    Capturing subpattern count = 0
2651    No options
2652    No first char
2653    No need char
2654    
2655    /[\S]/DZ
2656    ------------------------------------------------------------------
2657            Bra
2658            [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2659            Ket
2660            End
2661    ------------------------------------------------------------------
2662    Capturing subpattern count = 0
2663    No options
2664    No first char
2665    No need char
2666    
2667    /a(?i)b/DZ
2668    ------------------------------------------------------------------
2669            Bra
2670            a
2671         /i b
2672            Ket
2673            End
2674    ------------------------------------------------------------------
2675    Capturing subpattern count = 0
2676    No options
2677    First char = 'a'
2678    Need char = 'b' (caseless)
2679        ab
2680     0: ab
2681        aB
2682     0: aB
2683        *** Failers
2684    No match
2685        AB
2686    No match
2687    
2688    /(a(?i)b)/DZ
2689    ------------------------------------------------------------------
2690            Bra
2691            CBra 1
2692            a
2693         /i b
2694            Ket
2695            Ket
2696            End
2697    ------------------------------------------------------------------
2698    Capturing subpattern count = 1
2699    No options
2700    First char = 'a'
2701    Need char = 'b' (caseless)
2702        ab
2703     0: ab
2704     1: ab
2705        aB
2706     0: aB
2707     1: aB
2708        *** Failers
2709    No match
2710        AB
2711    No match
2712    
2713    /   (?i)abc/IxDZ
2714    ------------------------------------------------------------------
2715            Bra
2716         /i abc
2717            Ket
2718            End
2719    ------------------------------------------------------------------
2720    Capturing subpattern count = 0
2721    Options: caseless extended
2722    First char = 'a' (caseless)
2723    Need char = 'c' (caseless)
2724    
2725    /#this is a comment
2726      (?i)abc/IxDZ
2727    ------------------------------------------------------------------
2728            Bra
2729         /i abc
2730            Ket
2731            End
2732    ------------------------------------------------------------------
2733    Capturing subpattern count = 0
2734    Options: caseless extended
2735    First char = 'a' (caseless)
2736    Need char = 'c' (caseless)
2737    
2738    /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2739    ------------------------------------------------------------------
2740            Bra
2741            123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2742            Ket
2743            End
2744    ------------------------------------------------------------------
2745    Capturing subpattern count = 0
2746    No options
2747    First char = '1'
2748    Need char = '0'
2749    
2750    /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2751    ------------------------------------------------------------------
2752            Bra
2753            123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2754            Ket
2755            End
2756    ------------------------------------------------------------------
2757    Capturing subpattern count = 0
2758    No options
2759    First char = '1'
2760    Need char = '0'
2761    
2762    /\Q\E/DZ
2763    ------------------------------------------------------------------
2764            Bra
2765            Ket
2766            End
2767    ------------------------------------------------------------------
2768    Capturing subpattern count = 0
2769    No options
2770    No first char
2771    No need char
2772        \
2773     0:
2774    
2775    /\Q\Ex/DZ
2776    ------------------------------------------------------------------
2777            Bra
2778            x
2779            Ket
2780            End
2781    ------------------------------------------------------------------
2782    Capturing subpattern count = 0
2783    No options
2784    First char = 'x'
2785    No need char
2786    
2787    / \Q\E/DZ
2788    ------------------------------------------------------------------
2789            Bra
2790    
2791            Ket
2792            End
2793    ------------------------------------------------------------------
2794    Capturing subpattern count = 0
2795    No options
2796    First char = ' '
2797    No need char
2798    
2799    /a\Q\E/DZ
2800    ------------------------------------------------------------------
2801            Bra
2802            a
2803            Ket
2804            End
2805    ------------------------------------------------------------------
2806    Capturing subpattern count = 0
2807    No options
2808    First char = 'a'
2809    No need char
2810      abc
2811     0: a
2812      bca
2813     0: a
2814      bac
2815     0: a
2816    
2817    /a\Q\Eb/DZ
2818    ------------------------------------------------------------------
2819            Bra
2820            ab
2821            Ket
2822            End
2823    ------------------------------------------------------------------
2824    Capturing subpattern count = 0
2825    No options
2826    First char = 'a'
2827    Need char = 'b'
2828      abc
2829     0: ab
2830    
2831    /\Q\Eabc/DZ
2832    ------------------------------------------------------------------
2833            Bra
2834            abc
2835            Ket
2836            End
2837    ------------------------------------------------------------------
2838    Capturing subpattern count = 0
2839    No options
2840    First char = 'a'
2841    Need char = 'c'
2842    
2843    /x*+\w/DZ
2844    ------------------------------------------------------------------
2845            Bra
2846            x*+
2847            \w
2848            Ket
2849            End
2850    ------------------------------------------------------------------
2851    Capturing subpattern count = 0
2852    No options
2853    No first char
2854    No need char
2855        *** Failers
2856     0: F
2857        xxxxx
2858    No match
2859    
2860    /x?+/DZ
2861    ------------------------------------------------------------------
2862            Bra
2863            x?+
2864            Ket
2865            End
2866    ------------------------------------------------------------------
2867    Capturing subpattern count = 0
2868    No options
2869    No first char
2870    No need char
2871    
2872    /x++/DZ
2873    ------------------------------------------------------------------
2874            Bra
2875            x++
2876            Ket
2877            End
2878    ------------------------------------------------------------------
2879    Capturing subpattern count = 0
2880    No options
2881    First char = 'x'
2882    No need char
2883    
2884    /x{1,3}+/DZ
2885    ------------------------------------------------------------------
2886            Bra
2887            Once
2888            x
2889            x{0,2}
2890            Ket
2891            Ket
2892            End
2893    ------------------------------------------------------------------
2894    Capturing subpattern count = 0
2895    No options
2896    First char = 'x'
2897    No need char
2898    
2899    /(x)*+/DZ
2900    ------------------------------------------------------------------
2901            Bra
2902            Braposzero
2903            CBraPos 1
2904            x
2905            KetRpos
2906            Ket
2907            End
2908    ------------------------------------------------------------------
2909    Capturing subpattern count = 1
2910    No options
2911    No first char
2912    No need char
2913    
2914    /^(\w++|\s++)*$/I
2915    Capturing subpattern count = 1
2916    Options: anchored
2917    No first char
2918    No need char
2919        now is the time for all good men to come to the aid of the party
2920     0: now is the time for all good men to come to the aid of the party
2921     1: party
2922        *** Failers
2923    No match
2924        this is not a line with only words and spaces!
2925    No match
2926    
2927    /(\d++)(\w)/I
2928    Capturing subpattern count = 2
2929    No options
2930    No first char
2931    No need char
2932        12345a
2933     0: 12345a
2934     1: 12345
2935     2: a
2936        *** Failers
2937    No match
2938        12345+
2939    No match
2940    
2941    /a++b/I
2942    Capturing subpattern count = 0
2943    No options
2944    First char = 'a'
2945    Need char = 'b'
2946        aaab
2947     0: aaab
2948    
2949    /(a++b)/I
2950    Capturing subpattern count = 1
2951    No options
2952    First char = 'a'
2953    Need char = 'b'
2954        aaab
2955     0: aaab
2956     1: aaab
2957    
2958    /(a++)b/I
2959    Capturing subpattern count = 1
2960    No options
2961    First char = 'a'
2962    Need char = 'b'
2963        aaab
2964     0: aaab
2965     1: aaa
2966    
2967    /([^()]++|\([^()]*\))+/I
2968    Capturing subpattern count = 1
2969    No options
2970    No first char
2971    No need char
2972        ((abc(ade)ufh()()x
2973     0: abc(ade)ufh()()x
2974     1: x
2975    
2976    /\(([^()]++|\([^()]+\))+\)/I
2977    Capturing subpattern count = 1
2978    No options
2979    First char = '('
2980    Need char = ')'
2981        (abc)
2982     0: (abc)
2983     1: abc
2984        (abc(def)xyz)
2985     0: (abc(def)xyz)
2986     1: xyz
2987        *** Failers
2988    No match
2989        ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2990    No match
2991    
2992    /(abc){1,3}+/DZ
2993    ------------------------------------------------------------------
2994            Bra
2995            Once
2996            CBra 1
2997            abc
2998            Ket
2999            Brazero
3000            Bra
3001            CBra 1
3002            abc
3003            Ket
3004            Brazero
3005            CBra 1
3006            abc
3007            Ket
3008            Ket
3009            Ket
3010            Ket
3011            End
3012    ------------------------------------------------------------------
3013    Capturing subpattern count = 1
3014    No options
3015    First char = 'a'
3016    Need char = 'c'
3017    
3018    /a+?+/I
3019    Failed: nothing to repeat at offset 3
3020    
3021    /a{2,3}?+b/I
3022    Failed: nothing to repeat at offset 7
3023    
3024    /(?U)a+?+/I
3025    Failed: nothing to repeat at offset 7
3026    
3027    /a{2,3}?+b/IU
3028    Failed: nothing to repeat at offset 7
3029    
3030    /x(?U)a++b/DZ
3031    ------------------------------------------------------------------
3032            Bra
3033            x
3034            a++
3035            b
3036            Ket
3037            End
3038    ------------------------------------------------------------------
3039    Capturing subpattern count = 0
3040    No options
3041    First char = 'x'
3042    Need char = 'b'
3043        xaaaab
3044     0: xaaaab
3045    
3046    /(?U)xa++b/DZ
3047    ------------------------------------------------------------------
3048            Bra
3049            x
3050            a++
3051            b
3052            Ket
3053            End
3054    ------------------------------------------------------------------
3055    Capturing subpattern count = 0
3056    Options: ungreedy
3057    First char = 'x'
3058    Need char = 'b'
3059        xaaaab
3060     0: xaaaab
3061    
3062    /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3063    ------------------------------------------------------------------
3064            Bra
3065            ^
3066            CBra 1
3067            CBra 2
3068            a+
3069            Ket
3070            CBra 3
3071            [ab]+?
3072            Ket
3073            CBra 4
3074            [bc]+
3075            Ket
3076            CBra 5
3077            \w*
3078            Ket
3079            Ket
3080            Ket
3081            End
3082    ------------------------------------------------------------------
3083    Capturing subpattern count = 5
3084    Options: anchored
3085    No first char
3086    No need char
3087    
3088    /^x(?U)a+b/DZ
3089    ------------------------------------------------------------------
3090            Bra
3091            ^
3092            x
3093            a++
3094            b
3095            Ket
3096            End
3097    ------------------------------------------------------------------
3098    Capturing subpattern count = 0
3099    Options: anchored
3100    No first char
3101    Need char = 'b'
3102    
3103    /^x(?U)(a+)b/DZ
3104    ------------------------------------------------------------------
3105            Bra
3106            ^
3107            x
3108            CBra 1
3109            a+?
3110            Ket
3111            b
3112            Ket
3113            End
3114    ------------------------------------------------------------------
3115    Capturing subpattern count = 1
3116    Options: anchored
3117    No first char
3118    Need char = 'b'
3119    
3120    /[.x.]/I
3121    Failed: POSIX collating elements are not supported at offset 0
3122    
3123    /[=x=]/I
3124    Failed: POSIX collating elements are not supported at offset 0
3125    
3126    /[:x:]/I
3127    Failed: POSIX named classes are supported only within a class at offset 0
3128    
3129    /\l/I
3130    Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3131    
3132    /\L/I
3133    Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3134    
3135    /\N{name}/I
3136    Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3137    
3138    /\u/I
3139    Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3140    
3141    /\U/I
3142    Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3143    
3144    /[/I
3145    Failed: missing terminating ] for character class at offset 1
3146    
3147    /[a-/I
3148    Failed: missing terminating ] for character class at offset 3
3149    
3150    /[[:space:]/I
3151    Failed: missing terminating ] for character class at offset 10
3152    
3153    /[\s]/IDZ
3154    ------------------------------------------------------------------
3155            Bra
3156            [\x09\x0a\x0c\x0d ]
3157            Ket
3158            End
3159    ------------------------------------------------------------------
3160    Capturing subpattern count = 0
3161    No options
3162    No first char
3163    No need char
3164    
3165    /[[:space:]]/IDZ
3166    ------------------------------------------------------------------
3167            Bra
3168            [\x09-\x0d ]
3169            Ket
3170            End
3171    ------------------------------------------------------------------
3172    Capturing subpattern count = 0
3173    No options
3174    No first char
3175    No need char
3176    
3177    /[[:space:]abcde]/IDZ
3178    ------------------------------------------------------------------
3179            Bra
3180            [\x09-\x0d a-e]
3181            Ket
3182            End
3183    ------------------------------------------------------------------
3184    Capturing subpattern count = 0
3185    No options
3186    No first char
3187    No need char
3188    
3189    /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3190    Capturing subpattern count = 0
3191    Options: extended
3192    First char = '<'
3193    Need char = '>'
3194        <>
3195     0: <>
3196        <abcd>
3197     0: <abcd>
3198        <abc <123> hij>
3199     0: <abc <123> hij>
3200        <abc <def> hij>
3201     0: <def>
3202        <abc<>def>
3203     0: <abc<>def>
3204        <abc<>
3205     0: <>
3206        *** Failers
3207    No match
3208        <abc
3209    No match
3210    
3211    |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
3212    ------------------------------------------------------------------
3213            Bra
3214            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
3215            \b
3216            Ket
3217            End
3218    ------------------------------------------------------------------
3219    Capturing subpattern count = 0
3220    No options
3221    First char = '8'
3222    Need char = 'X'
3223    
3224    |\$\<\.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
3225    ------------------------------------------------------------------
3226            Bra
3227            $<.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
3228            \b
3229            Ket
3230            End
3231    ------------------------------------------------------------------
3232    Capturing subpattern count = 0
3233    No options
3234    First char = '$'
3235    Need char = 'X'
3236    
3237    /(.*)\d+\1/I
3238    Capturing subpattern count = 1
3239    Max back reference = 1
3240    No options
3241    No first char
3242    No need char
3243    
3244    /(.*)\d+/I
3245    Capturing subpattern count = 1
3246    No options
3247    First char at start or follows newline
3248    No need char
3249    
3250    /(.*)\d+\1/Is
3251    Capturing subpattern count = 1
3252    Max back reference = 1
3253    Options: dotall
3254    No first char
3255    No need char
3256    
3257    /(.*)\d+/Is
3258    Capturing subpattern count = 1
3259    Options: anchored dotall
3260    No first char
3261    No need char
3262    
3263    /(.*(xyz))\d+\2/I
3264    Capturing subpattern count = 2
3265    Max back reference = 2
3266    No options
3267    First char at start or follows newline
3268    Need char = 'z'
3269    
3270    /((.*))\d+\1/I
3271    Capturing subpattern count = 2
3272    Max back reference = 1
3273    No options
3274    No first char
3275    No need char
3276        abc123bc
3277     0: bc123bc
3278     1: bc
3279     2: bc
3280    
3281    /a[b]/I
3282    Capturing subpattern count = 0
3283    No options
3284    First char = 'a'
3285    Need char = 'b'
3286    
3287    /(?=a).*/I
3288    Capturing subpattern count = 0
3289    No options
3290    First char = 'a'
3291    No need char
3292    
3293    /(?=abc).xyz/IiI
3294    Capturing subpattern count = 0
3295    Options: caseless
3296    First char = 'a' (caseless)
3297    Need char = 'z' (caseless)
3298    
3299    /(?=abc)(?i).xyz/I
3300    Capturing subpattern count = 0
3301    No options
3302    First char = 'a'
3303    Need char = 'z' (caseless)
3304    
3305    /(?=a)(?=b)/I
3306    Capturing subpattern count = 0
3307    No options
3308    First char = 'a'
3309    No need char
3310    
3311    /(?=.)a/I
3312    Capturing subpattern count = 0
3313    No options
3314    First char = 'a'
3315    No need char
3316    
3317    /((?=abcda)a)/I
3318    Capturing subpattern count = 1
3319    No options
3320    First char = 'a'
3321    Need char = 'a'
3322    
3323    /((?=abcda)ab)/I
3324    Capturing subpattern count = 1
3325    No options
3326    First char = 'a'
3327    Need char = 'b'
3328    
3329    /()a/I
3330    Capturing subpattern count = 1
3331    No options
3332    No first char
3333    Need char = 'a'
3334    
3335    /(?(1)ab|ac)(.)/I
3336    Capturing subpattern count = 1
3337    No options
3338    First char = 'a'
3339    No need char
3340    
3341    /(?(1)abz|acz)(.)/I
3342    Capturing subpattern count = 1
3343    No options
3344    First char = 'a'
3345    Need char = 'z'
3346    
3347    /(?(1)abz)(.)/I
3348    Capturing subpattern count = 1
3349    No options
3350    No first char
3351    No need char
3352    
3353    /(?(1)abz)(1)23/I
3354    Capturing subpattern count = 1
3355    No options
3356    No first char
3357    Need char = '3'
3358    
3359    /(a)+/I
3360    Capturing subpattern count = 1
3361    No options
3362    First char = 'a'
3363    No need char
3364    
3365    /(a){2,3}/I
3366    Capturing subpattern count = 1
3367    No options
3368    First char = 'a'
3369    Need char = 'a'
3370    
3371    /(a)*/I
3372    Capturing subpattern count = 1
3373    No options
3374    No first char
3375    No need char
3376    
3377    /[a]/I
3378    Capturing subpattern count = 0
3379    No options
3380    First char = 'a'
3381    No need char
3382    
3383    /[ab]/I
3384    Capturing subpattern count = 0
3385    No options
3386    No first char
3387    No need char
3388    
3389    /[ab]/IS
3390    Capturing subpattern count = 0
3391    No options
3392    No first char
3393    No need char
3394    Subject length lower bound = 1
3395    Starting byte set: a b
3396    
3397    /[^a]/I
3398    Capturing subpattern count = 0
3399    No options
3400    No first char
3401    No need char
3402    
3403    /\d456/I
3404    Capturing subpattern count = 0
3405    No options
3406    No first char
3407    Need char = '6'
3408    
3409    /\d456/IS
3410    Capturing subpattern count = 0
3411    No options
3412    No first char
3413    Need char = '6'
3414    Subject length lower bound = 4
3415    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3416    
3417    /a^b/I
3418    Capturing subpattern count = 0
3419    No options
3420    First char = 'a'
3421    Need char = 'b'
3422    
3423    /^a/Im
3424    Capturing subpattern count = 0
3425    Options: multiline
3426    First char at start or follows newline
3427    Need char = 'a'
3428      abcde
3429     0: a
3430      xy\nabc
3431     0: a
3432      *** Failers
3433    No match
3434      xyabc
3435    No match
3436    
3437    /c|abc/I
3438    Capturing subpattern count = 0
3439    No options
3440    No first char
3441    Need char = 'c'
3442    
3443    /(?i)[ab]/IS
3444    Capturing subpattern count = 0
3445    Options: caseless
3446    No first char
3447    No need char
3448    Subject length lower bound = 1
3449    Starting byte set: A B a b
3450    
3451    /[ab](?i)cd/IS
3452    Capturing subpattern count = 0
3453    No options
3454    No first char
3455    Need char = 'd' (caseless)
3456    Subject length lower bound = 3
3457    Starting byte set: a b
3458    
3459    /abc(?C)def/I
3460    Capturing subpattern count = 0
3461    No options
3462    First char = 'a'
3463    Need char = 'f'
3464        abcdef
3465    --->abcdef
3466      0 ^  ^       d
3467     0: abcdef
3468        1234abcdef
3469    --->1234abcdef
3470      0     ^  ^       d
3471     0: abcdef
3472        *** Failers
3473    No match
3474        abcxyz
3475    No match
3476        abcxyzf
3477    --->abcxyzf
3478      0 ^  ^        d
3479    No match
3480    
3481    /abc(?C)de(?C1)f/I
3482    Capturing subpattern count = 0
3483    No options
3484    First char = 'a'
3485    Need char = 'f'
3486        123abcdef
3487    --->123abcdef
3488      0    ^  ^       d
3489      1    ^    ^     f
3490     0: abcdef
3491    
3492    /(?C1)\dabc(?C2)def/IS
3493    Capturing subpattern count = 0
3494    No options
3495    No first char
3496    Need char = 'f'
3497    Subject length lower bound = 7
3498    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3499        1234abcdef
3500    --->1234abcdef
3501      1 ^              \d
3502      1  ^             \d
3503      1   ^            \d
3504      1    ^           \d
3505      2    ^   ^       d
3506     0: 4abcdef
3507        *** Failers
3508    No match
3509        abcdef
3510    No match
3511    
3512    /(?C1)\dabc(?C2)def/ISS
3513    Capturing subpattern count = 0
3514    No options
3515    No first char
3516    Need char = 'f'
3517        1234abcdef
3518    --->1234abcdef
3519      1 ^              \d
3520      1  ^             \d
3521      1   ^            \d
3522      1    ^           \d
3523      2    ^   ^       d
3524     0: 4abcdef
3525        *** Failers
3526    No match
3527        abcdef
3528    --->abcdef
3529      1 ^          \d
3530      1  ^         \d
3531      1   ^        \d
3532      1    ^       \d
3533      1     ^      \d
3534      1      ^     \d
3535    No match
3536    
3537    /(?C255)ab/I
3538    Capturing subpattern count = 0
3539    No options
3540    First char = 'a'
3541    Need char = 'b'
3542    
3543    /(?C256)ab/I
3544    Failed: number after (?C is > 255 at offset 6
3545    
3546    /(?Cab)xx/I
3547    Failed: closing ) for (?C expected at offset 3
3548    
3549    /(?C12vr)x/I
3550    Failed: closing ) for (?C expected at offset 5
3551    
3552    /abc(?C)def/I
3553    Capturing subpattern count = 0
3554    No options
3555    First char = 'a'
3556    Need char = 'f'
3557        *** Failers
3558    No match
3559        \x83\x0\x61bcdef
3560    --->\x83\x00abcdef
3561      0         ^  ^       d
3562     0: abcdef
3563    
3564    /(abc)(?C)de(?C1)f/I
3565    Capturing subpattern count = 1
3566    No options
3567    First char = 'a'
3568    Need char = 'f'
3569        123abcdef
3570    --->123abcdef
3571      0    ^  ^       d
3572      1    ^    ^     f
3573     0: abcdef
3574     1: abc
3575        123abcdef\C+
3576    Callout 0: last capture = 1
3577     0: <unset>
3578     1: abc
3579    --->123abcdef
3580           ^  ^       d
3581    Callout 1: last capture = 1
3582     0: <unset>
3583     1: abc
3584    --->123abcdef
3585           ^    ^     f
3586     0: abcdef
3587     1: abc
3588        123abcdef\C-
3589     0: abcdef
3590     1: abc
3591        *** Failers
3592    No match
3593        123abcdef\C!1
3594    --->123abcdef
3595      0    ^  ^       d
3596      1    ^    ^     f
3597    No match
3598    
3599    /(?C0)(abc(?C1))*/I
3600    Capturing subpattern count = 1
3601    No options
3602    No first char
3603    No need char
3604        abcabcabc
3605    --->abcabcabc
3606      0 ^             (abc(?C1))*
3607      1 ^  ^          )
3608      1 ^     ^       )
3609      1 ^        ^    )
3610     0: abcabcabc
3611     1: abc
3612        abcabc\C!1!3
3613    --->abcabc
3614      0 ^          (abc(?C1))*
3615      1 ^  ^       )
3616      1 ^     ^    )
3617     0: abcabc
3618     1: abc
3619        *** Failers
3620    --->*** Failers
3621      0 ^               (abc(?C1))*
3622     0:
3623        abcabcabc\C!1!3
3624    --->abcabcabc
3625      0 ^             (abc(?C1))*
3626      1 ^  ^          )
3627      1 ^     ^       )
3628      1 ^        ^    )
3629     0: abcabc
3630     1: abc
3631    
3632    /(\d{3}(?C))*/I
3633    Capturing subpattern count = 1
3634    No options
3635    No first char
3636    No need char
3637        123\C+
3638    Callout 0: last capture = -1
3639     0: <unset>
3640    --->123
3641        ^  ^    )
3642     0: 123
3643     1: 123
3644        123456\C+
3645    Callout 0: last capture = -1
3646     0: <unset>
3647    --->123456
3648        ^  ^       )
3649    Callout 0: last capture = 1
3650     0: <unset>
3651     1: 123
3652    --->123456
3653        ^     ^    )
3654     0: 123456
3655     1: 456
3656        123456789\C+
3657    Callout 0: last capture = -1
3658     0: <unset>
3659    --->123456789
3660        ^  ^          )
3661    Callout 0: last capture = 1
3662     0: <unset>
3663     1: 123
3664    --->123456789
3665        ^     ^       )
3666    Callout 0: last capture = 1
3667     0: <unset>
3668     1: 456
3669    --->123456789
3670        ^        ^    )
3671     0: 123456789
3672     1: 789
3673    
3674    /((xyz)(?C)p|(?C1)xyzabc)/I
3675    Capturing subpattern count = 2
3676    No options
3677    First char = 'x'
3678    No need char
3679        xyzabc\C+
3680    Callout 0: last capture = 2
3681     0: <unset>
3682     1: <unset>
3683     2: xyz
3684    --->xyzabc
3685        ^  ^       p
3686    Callout 1: last capture = -1
3687     0: <unset>
3688    --->xyzabc
3689        ^          x
3690     0: xyzabc
3691     1: xyzabc
3692    
3693    /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3694    Capturing subpattern count = 3
3695    No options
3696    First char = 'X'
3697    Need char = 'x'
3698        Xxyzabc\C+
3699    Callout 0: last capture = 3
3700     0: <unset>
3701     1: X
3702     2: <unset>
3703     3: xyz
3704    --->Xxyzabc
3705        ^   ^       p
3706    Callout 1: last capture = 1
3707     0: <unset>
3708     1: X
3709    --->Xxyzabc
3710        ^^          x
3711     0: Xxyzabc
3712     1: X
3713     2: xyzabc
3714    
3715    /(?=(abc))(?C)abcdef/I
3716    Capturing subpattern count = 1
3717    No options
3718    First char = 'a'
3719    Need char = 'f'
3720        abcdef\C+
3721    Callout 0: last capture = 1
3722     0: <unset>
3723     1: abc
3724    --->abcdef
3725        ^          a
3726     0: abcdef
3727     1: abc
3728    
3729    /(?!(abc)(?C1)d)(?C2)abcxyz/I
3730    Capturing subpattern count = 1
3731    No options
3732    First char = 'a'
3733    Need char = 'z'
3734        abcxyz\C+
3735    Callout 1: last capture = 1
3736     0: <unset>
3737     1: abc
3738    --->abcxyz
3739        ^  ^       d
3740    Callout 2: last capture = -1
3741     0: <unset>
3742    --->abcxyz
3743        ^          a
3744     0: abcxyz
3745    
3746    /(?<=(abc)(?C))xyz/I
3747    Capturing subpattern count = 1
3748