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