/[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 79 by nigel, Sat Feb 24 21:40:52 2007 UTC revision 1286 by ph10, Fri Mar 15 14:58:48 2013 UTC
# Line 1  Line 1 
1  PCRE version 6.1 21-Jun-2005  /-- 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
# 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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
# Line 80  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 98  Failed: missing terminating ] for charac Line 102  Failed: missing terminating ] for charac
102  /(?X)[\B]/  /(?X)[\B]/
103  Failed: invalid escape sequence in character class at offset 6  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
137    
# Line 111  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
 Partial matching not supported  
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
 Partial matching not supported  
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 137  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    Subject length lower bound = 3
178  Starting byte set: c d e  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    Subject length lower bound = 3
190  Starting byte set: C D E c d e  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    Subject length lower bound = 1
202  Starting byte set: a b c d  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    Subject length lower bound = 1
210  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
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 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 186  Starting byte set: \x00 \x01 \x02 \x03 \ Line 222  Starting byte set: \x00 \x01 \x02 \x03 \
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    Subject length lower bound = 1
231  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
232    
233  /(ab\2)/  /(ab\2)/
# Line 199  Failed: reference to non-existent subpat Line 236  Failed: reference to non-existent subpat
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 224  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 272  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 289  No match Line 326  No match
326  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
327  Failed: 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 299  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
# Line 312  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 324  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
 Partial matching not supported  
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 340  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
 Partial matching not supported  
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
 Partial matching not supported  
395  No options  No options
396  First char = '<'  First char = '<'
397  Need char = '>'  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
 Partial matching not supported  
403  No options  No options
404  First char = '<'  First char = '<'
405  Need char = '>'  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
 Partial matching not supported  
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
 Partial matching not supported  
419  Options: ungreedy  Options: ungreedy
420  First char = '<'  First char = '<'
421  Need char = '>'  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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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 498  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' (caseless)  First char = 'a' (caseless)
479  Need char = 'c' (caseless)  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  No need char  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
 Partial matching not supported  
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    Subject length lower bound = 1
511  Starting byte set: a b c d  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    Subject length lower bound = 1
519  Starting byte set: A B C D a b c d  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    Subject length lower bound = 1
527  Starting byte set: b c x y  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 570  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 5  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
 Partial matching not supported  
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
 Partial matching not supported  
572  No options  No options
 Case state changes  
573  First char = 'b' (caseless)  First char = 'b' (caseless)
574  Need char = 'h' (caseless)  Need char = 'h' (caseless)
575    
576  /((?i)b)/DS  /((?i)b)/IDZS
577  ------------------------------------------------------------------  ------------------------------------------------------------------
578    0  15 Bra 0          Bra
579    3   7 Bra 1          CBra 1
580    6  01 Opt       /i b
581    8  NC b          Ket
582   10   7 Ket          Ket
583   13  00 Opt          End
  15  15 Ket  
  18     End  
584  ------------------------------------------------------------------  ------------------------------------------------------------------
585  Capturing subpattern count = 1  Capturing subpattern count = 1
586  No options  No options
 Case state changes  
587  First char = 'b' (caseless)  First char = 'b' (caseless)
588  No need char  No need char
589  Study returned NULL  Subject length lower bound = 1
590    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
 Partial matching not supported  
594  No options  No options
 Case state changes  
595  No first char  No first char
596  No need char  No need char
597    Subject length lower bound = 1
598  Starting byte set: C a b c d  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 634  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 650  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  No need char  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
 Partial matching not supported  
647  Options: anchored  Options: anchored
648  No first char  No first char
649  No need char  No need char
# Line 683  No need char Line 655  No need char
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    Max lookbehind = 3
664    Subject length lower bound = 1
665  Starting byte set: a b  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    Max lookbehind = 3
673    Subject length lower bound = 5
674  Starting byte set: a o  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    Subject length lower bound = 1
682  Starting byte set: a b  Starting byte set: a b
683    
684  /(?<=foo\n)^bar/m  /(?<=foo\n)^bar/Im
685  Capturing subpattern count = 0  Capturing subpattern count = 0
686    Contains explicit CR or LF match
687  Options: multiline  Options: multiline
688  No first char  No first char
689  Need char = 'r'  Need char = 'r'
690      foo\nbarbar  Max lookbehind = 4
691        foo\nbarbar
692   0: bar   0: bar
693      ***Failers      ***Failers
694  No match  No match
695      rhubarb      rhubarb
696  No match  No match
697      barbell      barbell
698  No match  No match
699      abc\nbarton      abc\nbarton
700  No match  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      foo\nbarbar  Max lookbehind = 4
709        foo\nbarbar
710   0: bar   0: bar
711      ***Failers      ***Failers
712  No match  No match
713      rhubarb      rhubarb
714  No match  No match
715      barbell      barbell
716  No match  No match
717      abc\nbarton      abc\nbarton
718  No match  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 747  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 760  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 778  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
 Partial matching not supported  
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 802  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 818  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  No need char  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 919  Failed: reference to non-existent subpat Line 923  Failed: reference to non-existent subpat
923  /(a)|\2/  /(a)|\2/
924  Failed: 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  /:(?:/  /:(?:/
# Line 953  Failed: missing ) at offset 4 Line 957  Failed: missing ) at offset 4
957  Failed: unrecognized character after (?< at offset 3  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 985  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 1010  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
 Partial matching not supported  
1014  No options  No options
1015  No first char  No first char
1016  No need char  No need char
# Line 1023  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
 Partial matching not supported  
1031  No options  No options
1032  No first char  No first char
1033  No need char  No need char
# Line 1044  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
 Partial matching not supported  
1045  No options  No options
1046  No first char  No first char
1047  No need char  No need char
# Line 1056  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  No need char  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 1079  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 1092  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  No need char  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): 432  
1110  Capturing subpattern count = 8  Capturing subpattern count = 8
1111  Partial matching not supported  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   7 Bra 0          Bra
1119    3     Any*          Any*
1120    5     X          X
1121    7   7 Ket          Ket
1122   10     End          End
1123  ------------------------------------------------------------------  ------------------------------------------------------------------
1124  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1125  No options  No options
1126  First char at start or follows \n  First char at start or follows newline
1127  Need char = 'X'  Need char = 'X'
1128    
1129  /.*X/Ds  /.*X/IDZs
1130  ------------------------------------------------------------------  ------------------------------------------------------------------
1131    0   7 Bra 0          Bra
1132    3     Any*          AllAny*
1133    5     X          X
1134    7   7 Ket          Ket
1135   10     End          End
1136  ------------------------------------------------------------------  ------------------------------------------------------------------
1137  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
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  19 Bra 0          Bra
1145    3   7 Bra 1          CBra 1
1146    6     Any*          Any*
1147    8     X          X
1148   10   6 Alt          Alt
1149   13     ^          ^
1150   14     B          B
1151   16  13 Ket          Ket
1152   19  19 Ket          Ket
1153   22     End          End
1154  ------------------------------------------------------------------  ------------------------------------------------------------------
1155  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1156  No options  No options
1157  First char at start or follows \n  First char at start or follows newline
1158  No need char  No need char
1159    
1160  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1161  ------------------------------------------------------------------  ------------------------------------------------------------------
1162    0  19 Bra 0          Bra
1163    3   7 Bra 1          CBra 1
1164    6     Any*          AllAny*
1165    8     X          X
1166   10   6 Alt          Alt
1167   13     ^          ^
1168   14     B          B
1169   16  13 Ket          Ket
1170   19  19 Ket          Ket
1171   22     End          End
1172  ------------------------------------------------------------------  ------------------------------------------------------------------
1173  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
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  19 Bra 0          Bra
1181    3   7 Bra 1          CBra 1
1182    6     Any*          AllAny*
1183    8     X          X
1184   10   6 Alt          Alt
1185   13     ^          ^
1186   14     B          B
1187   16  13 Ket          Ket
1188   19  19 Ket          Ket
1189   22     End          End
1190  ------------------------------------------------------------------  ------------------------------------------------------------------
1191  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
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  25 Bra 0          Bra
1199    3   9 Bra 0          Bra
1200    6  04 Opt          AllAny*
1201    8     Any*          X
1202   10     X          Alt
1203   12   8 Alt          ^
1204   15  04 Opt          B
1205   17     ^          Ket
1206   18     B          Ket
1207   20  17 Ket          End
  23  00 Opt  
  25  25 Ket  
  28     End  
1208  ------------------------------------------------------------------  ------------------------------------------------------------------
1209  Capturing subpattern count = 0  Capturing subpattern count = 0
1210  Partial matching not supported  Options: anchored
1211  No options  No first char
 First char at start or follows \n  
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 1251  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 1275  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
# Line 1303  No need char Line 1288  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
 Partial matching not supported  
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 1342  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
# Line 1355  No need char Line 1339  No need char
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  No need char  No need char
# Line 1364  No need char Line 1349  No need char
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
1529  No options  No options
1530  First char = 'a'  First char = 'a'
1531  Need char = 'a'  Need char = 'a'
1532    
1533  /(?=a)a.*/  /(?=a)a.*/I
1534  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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
 Partial matching not supported  
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 1655  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 1671  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 1715  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
 Partial matching not supported  
1662  Options: extended  Options: extended
1663  First char = '('  First char = '('
1664  Need char = ')'  Need char = ')'
# Line 1727  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
 Partial matching not supported  
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 1759  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
 Partial matching not supported  
1704  Options: extended  Options: extended
1705  First char = '('  First char = '('
1706  Need char = ')'  Need char = ')'
# Line 1769  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
 Partial matching not supported  
1722  Options: extended  Options: extended
1723  First char = '('  First char = '('
1724  Need char = ')'  Need char = ')'
# Line 1789  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
 Partial matching not supported  
1732  Options: extended  Options: extended
1733  First char = '('  First char = '('
1734  Need char = ')'  Need char = ')'
# Line 1799  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
 Partial matching not supported  
1741  Options: extended  Options: extended
1742  First char = '('  First char = '('
1743  Need char = ')'  Need char = ')'
# Line 1810  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
 Partial matching not supported  
1751  Options: extended  Options: extended
1752  First char = '('  First char = '('
1753  Need char = ')'  Need char = ')'
# Line 1827  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
 Partial matching not supported  
1767  Options: extended  Options: extended
1768  First char = '('  First char = '('
1769  Need char = ')'  Need char = ')'
# Line 1844  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
 Partial matching not supported  
1783  Options: extended  Options: extended
1784  First char = '('  First char = '('
1785  Need char = ')'  Need char = ')'
# Line 1864  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
 Partial matching not supported  
1802  Options: extended  Options: extended
1803  First char = '('  First char = '('
1804  Need char = ')'  Need char = ')'
# Line 1874  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: <unset>  
1809    
1810  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1811  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1812  Options: extended  Options: extended
1813  First char = '('  First char = '('
1814  Need char = ')'  Need char = ')'
# Line 1893  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    0  37 Bra 0          Bra
1842    3     ^          ^
1843    4     [0-9A-Za-z]          [\x00-/:-@[-`{-\xff] (neg)
1844   37  37 Ket          Ket
1845   40     End          End
1846  ------------------------------------------------------------------  ------------------------------------------------------------------
1847  Capturing subpattern count = 0  Capturing subpattern count = 0
1848  Options: anchored  Options: anchored
1849  No first char  No first char
1850  No need char  No need char
1851    
1852  /^[[:^alnum:]]/D  /^[[:alpha:]]/DZ
1853  ------------------------------------------------------------------  ------------------------------------------------------------------
1854    0  37 Bra 0          Bra
1855    3     ^          ^
1856    4     [\x00-/:-@[-`{-\xff]          [A-Za-z]
1857   37  37 Ket          Ket
1858   40     End          End
1859  ------------------------------------------------------------------  ------------------------------------------------------------------
1860  Capturing subpattern count = 0  Capturing subpattern count = 0
1861  Options: anchored  Options: anchored
1862  No first char  No first char
1863  No need char  No need char
1864    
1865  /^[[:alpha:]]/D  /^[[:^alpha:]]/DZ
1866  ------------------------------------------------------------------  ------------------------------------------------------------------
1867    0  37 Bra 0          Bra
1868    3     ^          ^
1869    4     [A-Za-z]          [\x00-@[-`{-\xff] (neg)
1870   37  37 Ket          Ket
1871   40     End          End
1872  ------------------------------------------------------------------  ------------------------------------------------------------------
1873  Capturing subpattern count = 0  Capturing subpattern count = 0
1874  Options: anchored  Options: anchored
1875  No first char  No first char
1876  No need char  No need char
1877    
1878  /^[[:^alpha:]]/D  /[_[: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    0  37 Bra 0          Bra
1890    3     ^          ^
1891    4     [\x00-@[-`{-\xff]          [\x00-\x7f]
1892   37  37 Ket          Ket
1893   40     End          End
1894  ------------------------------------------------------------------  ------------------------------------------------------------------
1895  Capturing subpattern count = 0  Capturing subpattern count = 0
1896  Options: anchored  Options: anchored
1897  No first char  No first char
1898  No need char  No need char
1899    
1900  /^[[:ascii:]]/D  /^[[:^ascii:]]/DZ
1901  ------------------------------------------------------------------  ------------------------------------------------------------------
1902    0  37 Bra 0          Bra
1903    3     ^          ^
1904    4     [\x00-\x7f]          [\x80-\xff] (neg)
1905   37  37 Ket          Ket
1906   40     End          End
1907  ------------------------------------------------------------------  ------------------------------------------------------------------
1908  Capturing subpattern count = 0  Capturing subpattern count = 0
1909  Options: anchored  Options: anchored
1910  No first char  No first char
1911  No need char  No need char
1912    
1913  /^[[:^ascii:]]/D  /^[[:blank:]]/DZ
1914  ------------------------------------------------------------------  ------------------------------------------------------------------
1915    0  37 Bra 0          Bra
1916    3     ^          ^
1917    4     [\x80-\xff]          [\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  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1927  ------------------------------------------------------------------  ------------------------------------------------------------------
1928    0  37 Bra 0          Bra
1929    3     ^          ^
1930    4     [\x09 ]          [\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  /^[[:cntrl:]]/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-\x1f\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  /^[[:digit:]]/D  /^[[:digit:]]/DZ
1962  ------------------------------------------------------------------  ------------------------------------------------------------------
1963    0  37 Bra 0          Bra
1964    3     ^          ^
1965    4     [0-9]          [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  /^[[:graph:]]/D  /^[[:graph:]]/DZ
1975  ------------------------------------------------------------------  ------------------------------------------------------------------
1976    0  37 Bra 0          Bra
1977    3     ^          ^
1978    4     [!-~]          [!-~]
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  /^[[:lower:]]/D  /^[[:lower:]]/DZ
1988  ------------------------------------------------------------------  ------------------------------------------------------------------
1989    0  37 Bra 0          Bra
1990    3     ^          ^
1991    4     [a-z]          [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  /^[[:print:]]/D  /^[[:print:]]/DZ
2001  ------------------------------------------------------------------  ------------------------------------------------------------------
2002    0  37 Bra 0          Bra
2003    3     ^          ^
2004    4     [ -~]          [ -~]
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  /^[[:punct:]]/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  /^[[:space:]]/D  /^[[:space:]]/DZ
2027  ------------------------------------------------------------------  ------------------------------------------------------------------
2028    0  37 Bra 0          Bra
2029    3     ^          ^
2030    4     [\x09-\x0d ]          [\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  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2040  ------------------------------------------------------------------  ------------------------------------------------------------------
2041    0  37 Bra 0          Bra
2042    3     ^          ^
2043    4     [A-Z]          [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  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2053  ------------------------------------------------------------------  ------------------------------------------------------------------
2054    0  37 Bra 0          Bra
2055    3     ^          ^
2056    4     [0-9A-Fa-f]          [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  /^[[:word:]]/D  /^[[:word:]]/DZ
2066  ------------------------------------------------------------------  ------------------------------------------------------------------
2067    0  37 Bra 0          Bra
2068    3     ^          ^
2069    4     [0-9A-Z_a-z]          [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  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2079  ------------------------------------------------------------------  ------------------------------------------------------------------
2080    0  37 Bra 0          Bra
2081    3     ^          ^
2082    4     [ -~\x80-\xff]          [ -~\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  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2092  ------------------------------------------------------------------  ------------------------------------------------------------------
2093    0  37 Bra 0          Bra
2094    3     ^          ^
2095    4     [\x00-/12:-\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  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2105  ------------------------------------------------------------------  ------------------------------------------------------------------
2106    0  37 Bra 0          Bra
2107    3     ^          ^
2108    4     [\x00-\x08\x0a-\x1f!-\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     [%01A-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 2211  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  /This one's here because of the large output vector needed/  /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 = 'T'  First char = 'T'
2187  Need char = 'd'  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)/  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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  Capturing subpattern count = 271
2191  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2192  No options  No options
2193  No first char  No first char
2194  No need char  No need char
# Line 2507  No need char Line 2466  No need char
2466  270: ABC  270: ABC
2467  271: ABC  271: ABC
2468    
2469  /This one's here because Perl does this differently and PCRE can't at present/  /This one's here because Perl does this differently and PCRE can't at present/I
2470  Capturing subpattern count = 0  Capturing subpattern count = 0
2471  No options  No options
2472  First char = 'T'  First char = 'T'
2473  Need char = 't'  Need char = 't'
2474    
2475  /(main(O)?)+/  /(main(O)?)+/I
2476  Capturing subpattern count = 2  Capturing subpattern count = 2
2477  No options  No options
2478  First char = 'm'  First char = 'm'
# Line 2525  Need char = 'n' Line 2484  Need char = 'n'
2484   0: mainOmain   0: mainOmain
2485   1: main   1: main
2486   2: O   2: O
2487    
2488  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2489  Capturing subpattern count = 1  Capturing subpattern count = 1
2490  No options  No options
2491  First char = 'T'  First char = 'T'
2492  Need char = 's'  Need char = 's'
2493    
2494  /^(a(b)?)+$/  /^(a(b)?)+$/I
2495  Capturing subpattern count = 2  Capturing subpattern count = 2
2496  Options: anchored  Options: anchored
2497  No first char  No first char
# Line 2541  No need char Line 2500  No need char
2500   0: aba   0: aba
2501   1: a   1: a
2502   2: b   2: b
2503    
2504  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2505  Capturing subpattern count = 2  Capturing subpattern count = 2
2506  Options: anchored  Options: anchored
2507  No first char  No first char
2508  No need char  No need char
2509      aabbaa      aabbaa
2510   0: aabbaa   0: aabbaa
2511   1: aa   1: aa
2512   2: bb   2: bb
2513    
2514  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2515  Capturing subpattern count = 2  Capturing subpattern count = 2
2516  Options: anchored  Options: anchored
2517  No first char  No first char
2518  No need char  No need char
2519      aabbaa      aabbaa
2520   0: aabbaa   0: aabbaa
2521   1: aa   1: aa
2522   2: bb   2: bb
2523    
2524  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2525  Capturing subpattern count = 2  Capturing subpattern count = 2
2526  Options: anchored  Options: anchored
2527  No first char  No first char
2528  No need char  No need char
2529      aabbaa      aabbaa
2530   0: aabbaa   0: aabbaa
2531   1: aa   1: aa
2532   2: bb   2: bb
2533    
2534  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2535  Capturing subpattern count = 1  Capturing subpattern count = 1
2536  Options: anchored  Options: anchored
2537  No first char  No first char
2538  No need char  No need char
2539      aabbaa      aabbaa
2540   0: aabbaa   0: aabbaa
2541   1: bb   1: bb
2542    
2543  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2544  Capturing subpattern count = 3  Capturing subpattern count = 3
2545  Options: anchored  Options: anchored
2546  No first char  No first char
2547  No need char  No need char
2548      aabbaa      aabbaa
2549   0: aabbaa   0: aabbaa
2550   1: aa   1: aa
2551   2: bb   2: bb
2552   3: b   3: b
2553    
2554  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2555  Capturing subpattern count = 2  Capturing subpattern count = 2
2556  Options: anchored  Options: anchored
2557  No first char  No first char
2558  No need char  No need char
2559      aabbaa      aabbaa
2560   0: aabbaa   0: aabbaa
2561   1: bb   1: bb
2562   2: b   2: b
2563    
2564  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2565  Capturing subpattern count = 1  Capturing subpattern count = 1
2566  Options: anchored  Options: anchored
2567  No first char  No first char
2568  No need char  No need char
2569      aabbaa      aabbaa
2570   0: aabbaa   0: aabbaa
2571   1: bb   1: bb
2572    
2573  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2574  Capturing subpattern count = 1  Capturing subpattern count = 1
2575  Options: anchored  Options: anchored
2576  No first char  No first char
2577  No need char  No need char
2578      aabbbaa      aabbbaa
2579   0: aabbbaa   0: aabbbaa
2580   1: bbb   1: bbb
2581    
2582  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2583  Capturing subpattern count = 1  Capturing subpattern count = 1
2584  Options: anchored  Options: anchored
2585  No first char  No first char
2586  No need char  No need char
2587      aabbbaa      aabbbaa
2588   0: aabbbaa   0: aabbbaa
2589   1: bbb   1: bbb
2590    
2591  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2592  Capturing subpattern count = 1  Capturing subpattern count = 1
2593  Options: anchored  Options: anchored
2594  No first char  No first char
2595  No need char  No need char
2596      aabbaa      aabbaa
2597   0: aabbaa   0: aabbaa
2598   1: b   1: b
2599    
2600  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2601  Capturing subpattern count = 1  Capturing subpattern count = 1
2602  Options: anchored  Options: anchored
2603  No first char  No first char
2604  No need char  No need char
2605      aabbbaa      aabbbaa
2606   0: aabbbaa   0: aabbbaa
2607   1: bb   1: bb
2608    
2609  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2610  Capturing subpattern count = 3  Capturing subpattern count = 3
2611  Options: anchored  Options: anchored
2612  No first char  No first char
2613  No need char  No need char
2614      aabbbaa      aabbbaa
2615   0: aabbbaa   0: aabbbaa
2616   1: aa   1: aa
2617   2: bbb   2: bbb
2618   3: bb   3: bb
2619    
2620  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2621  Capturing subpattern count = 3  Capturing subpattern count = 3
2622  Options: anchored  Options: anchored
2623  No first char  No first char
2624  No need char  No need char
2625      aabbbbaa      aabbbbaa
2626   0: aabbbbaa   0: aabbbbaa
2627   1: aa   1: aa
2628   2: bbbb   2: bbbb
2629   3: bb   3: bb
2630    
2631  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2632  Capturing subpattern count = 0  Capturing subpattern count = 0
2633  No options  No options
2634  First char = '-'  First char = '-'
2635  Need char = '-'  Need char = '-'
2636    
2637  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2638  ------------------------------------------------------------------  ------------------------------------------------------------------
2639    0   3 Bra 0          Bra
2640    3   3 Ket          Ket
2641    6     End          End
2642  ------------------------------------------------------------------  ------------------------------------------------------------------
2643  Capturing subpattern count = 0  Capturing subpattern count = 0
2644  Options: extended  Options: extended
2645  No first char  No first char
2646  No need char  No need char
2647    
2648  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 9  
2649  ------------------------------------------------------------------  ------------------------------------------------------------------
2650    0   5 Bra 0          Bra
2651    3     a          a
2652    5   5 Ket          Ket
2653    8     End          End
2654  ------------------------------------------------------------------  ------------------------------------------------------------------
2655  Capturing subpattern count = 0  Capturing subpattern count = 0
2656  Options: extended  Options: extended
2657  First char = 'a'  First char = 'a'
2658  No need char  No need char
2659    
2660  /[\s]/D  /[\s]/DZ
2661  ------------------------------------------------------------------  ------------------------------------------------------------------
2662    0  36 Bra 0          Bra
2663    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
2664   36  36 Ket          Ket
2665   39     End          End
2666  ------------------------------------------------------------------  ------------------------------------------------------------------
2667  Capturing subpattern count = 0  Capturing subpattern count = 0
2668  No options  No options
2669  No first char  No first char
2670  No need char  No need char
2671    
2672  /[\S]/D  /[\S]/DZ
2673  ------------------------------------------------------------------  ------------------------------------------------------------------
2674    0  36 Bra 0          Bra
2675    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2676   36  36 Ket          Ket
2677   39     End          End
2678  ------------------------------------------------------------------  ------------------------------------------------------------------
2679  Capturing subpattern count = 0  Capturing subpattern count = 0
2680  No options  No options
2681  No first char  No first char
2682  No need char  No need char
2683    
2684  /a(?i)b/D  /a(?i)b/DZ
2685  ------------------------------------------------------------------  ------------------------------------------------------------------
2686    0   9 Bra 0          Bra
2687    3     a          a
2688    5  01 Opt       /i b
2689    7  NC b          Ket
2690    9   9 Ket          End
  12     End  
2691  ------------------------------------------------------------------  ------------------------------------------------------------------
2692  Capturing subpattern count = 0  Capturing subpattern count = 0
2693  No options  No options
 Case state changes  
2694  First char = 'a'  First char = 'a'
2695  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2696      ab      ab
2697   0: ab   0: ab
2698      aB      aB
2699   0: aB   0: aB
2700      *** Failers      *** Failers
2701  No match  No match
2702      AB      AB
2703  No match  No match
2704    
2705  /(a(?i)b)/D  /(a(?i)b)/DZ
2706  ------------------------------------------------------------------  ------------------------------------------------------------------
2707    0  17 Bra 0          Bra
2708    3   9 Bra 1          CBra 1
2709    6     a          a
2710    8  01 Opt       /i b
2711   10  NC b          Ket
2712   12   9 Ket          Ket
2713   15  00 Opt          End
  17  17 Ket  
  20     End  
2714  ------------------------------------------------------------------  ------------------------------------------------------------------
2715  Capturing subpattern count = 1  Capturing subpattern count = 1
2716  No options  No options
 Case state changes  
2717  First char = 'a'  First char = 'a'
2718  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2719      ab      ab
# Line 2770  Need char = 'b' (caseless) Line 2722  Need char = 'b' (caseless)
2722      aB      aB
2723   0: aB   0: aB
2724   1: aB   1: aB
2725      *** Failers      *** Failers
2726  No match  No match
2727      AB      AB
2728  No match  No match
2729    
2730  /   (?i)abc/xD  /   (?i)abc/IxDZ
2731  ------------------------------------------------------------------  ------------------------------------------------------------------
2732    0   9 Bra 0          Bra
2733    3  NC abc       /i abc
2734    9   9 Ket          Ket
2735   12     End          End
2736  ------------------------------------------------------------------  ------------------------------------------------------------------
2737  Capturing subpattern count = 0  Capturing subpattern count = 0
2738  Options: caseless extended  Options: caseless extended
# Line 2788  First char = 'a' (caseless) Line 2740  First char = 'a' (caseless)
2740  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2741    
2742  /#this is a comment  /#this is a comment
2743    (?i)abc/xD    (?i)abc/IxDZ
2744  ------------------------------------------------------------------  ------------------------------------------------------------------
2745    0   9 Bra 0          Bra
2746    3  NC abc       /i abc
2747    9   9 Ket          Ket
2748   12     End          End
2749  ------------------------------------------------------------------  ------------------------------------------------------------------
2750  Capturing subpattern count = 0  Capturing subpattern count = 0
2751  Options: caseless extended  Options: caseless extended
2752  First char = 'a' (caseless)  First char = 'a' (caseless)
2753  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2754    
2755  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2756  ------------------------------------------------------------------  ------------------------------------------------------------------
2757    0 603 Bra 0          Bra
2758    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2759  603 603 Ket          Ket
2760  606     End          End
2761  ------------------------------------------------------------------  ------------------------------------------------------------------
2762  Capturing subpattern count = 0  Capturing subpattern count = 0
2763  No options  No options
2764  First char = '1'  First char = '1'
2765  Need char = '0'  Need char = '0'
2766    
2767  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2768  ------------------------------------------------------------------  ------------------------------------------------------------------
2769    0 603 Bra 0          Bra
2770    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2771  603 603 Ket          Ket
2772  606     End          End
2773  ------------------------------------------------------------------  ------------------------------------------------------------------
2774  Capturing subpattern count = 0  Capturing subpattern count = 0
2775  No options  No options
2776  First char = '1'  First char = '1'
2777  Need char = '0'  Need char = '0'
2778    
2779  /\Q\E/D  /\Q\E/DZ
2780  ------------------------------------------------------------------  ------------------------------------------------------------------
2781    0   3 Bra 0          Bra
2782    3   3 Ket          Ket
2783    6     End          End
2784  ------------------------------------------------------------------  ------------------------------------------------------------------
2785  Capturing subpattern count = 0  Capturing subpattern count = 0
2786  No options  No options
# Line 2837  No need char Line 2789  No need char
2789      \      \
2790   0:   0:
2791    
2792  /\Q\Ex/D  /\Q\Ex/DZ
2793  ------------------------------------------------------------------  ------------------------------------------------------------------
2794    0   5 Bra 0          Bra
2795    3     x          x
2796    5   5 Ket          Ket
2797    8     End          End
2798  ------------------------------------------------------------------  ------------------------------------------------------------------
2799  Capturing subpattern count = 0  Capturing subpattern count = 0
2800  No options  No options
2801  First char = 'x'  First char = 'x'
2802  No need char  No need char
2803    
2804  / \Q\E/D  / \Q\E/DZ
2805  ------------------------------------------------------------------  ------------------------------------------------------------------
2806    0   5 Bra 0          Bra
2807    3  
2808    5   5 Ket          Ket
2809    8     End          End
2810  ------------------------------------------------------------------  ------------------------------------------------------------------
2811  Capturing subpattern count = 0  Capturing subpattern count = 0
2812  No options  No options
2813  First char = ' '  First char = ' '
2814  No need char  No need char
2815    
2816  /a\Q\E/D  /a\Q\E/DZ
2817  ------------------------------------------------------------------  ------------------------------------------------------------------
2818    0   5 Bra 0          Bra
2819    3     a          a
2820    5   5 Ket          Ket
2821    8     End          End
2822  ------------------------------------------------------------------  ------------------------------------------------------------------
2823  Capturing subpattern count = 0  Capturing subpattern count = 0
2824  No options  No options
# Line 2876  No need char Line 2828  No need char
2828   0: a   0: a
2829    bca    bca
2830   0: a   0: a
2831    bac    bac
2832   0: a   0: a
2833    
2834  /a\Q\Eb/D  /a\Q\Eb/DZ
2835  ------------------------------------------------------------------  ------------------------------------------------------------------
2836    0   7 Bra 0          Bra
2837    3     ab          ab
2838    7   7 Ket          Ket
2839   10     End          End
2840  ------------------------------------------------------------------  ------------------------------------------------------------------
2841  Capturing subpattern count = 0  Capturing subpattern count = 0
2842  No options  No options
# Line 2893  Need char = 'b' Line 2845  Need char = 'b'
2845    abc    abc
2846   0: ab   0: ab
2847    
2848  /\Q\Eabc/D  /\Q\Eabc/DZ
2849  ------------------------------------------------------------------  ------------------------------------------------------------------
2850    0   9 Bra 0          Bra
2851    3     abc          abc
2852    9   9 Ket          Ket
2853   12     End          End
2854  ------------------------------------------------------------------  ------------------------------------------------------------------
2855  Capturing subpattern count = 0  Capturing subpattern count = 0
2856  No options  No options
2857  First char = 'a'  First char = 'a'
2858  Need char = 'c'  Need char = 'c'
2859    
2860  /x*+\w/D  /x*+\w/DZ
2861  ------------------------------------------------------------------  ------------------------------------------------------------------
2862    0  12 Bra 0          Bra
2863    3   5 Once          x*+
2864    6     x*          \w
2865    8   5 Ket          Ket
2866   11     \w          End
  12  12 Ket  
  15     End  
2867  ------------------------------------------------------------------  ------------------------------------------------------------------
2868  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2869  No options  No options
2870  No first char  No first char
2871  No need char  No need char
# Line 2924  No need char Line 2873  No need char
2873   0: F   0: F
2874      xxxxx      xxxxx
2875  No match  No match
2876    
2877  /x?+/D  /x?+/DZ
2878  ------------------------------------------------------------------  ------------------------------------------------------------------
2879    0  11 Bra 0          Bra
2880    3   5 Once          x?+
2881    6     x?          Ket
2882    8   5 Ket          End
  11  11 Ket  
  14     End  
2883  ------------------------------------------------------------------  ------------------------------------------------------------------
2884  Capturing subpattern count = 0  Capturing subpattern count = 0
2885  No options  No options
2886  No first char  No first char
2887  No need char  No need char
2888    
2889  /x++/D  /x++/DZ
2890  ------------------------------------------------------------------  ------------------------------------------------------------------
2891    0  11 Bra 0          Bra
2892    3   5 Once          x++
2893    6     x+          Ket
2894    8   5 Ket          End
  11  11 Ket  
  14     End  
2895  ------------------------------------------------------------------  ------------------------------------------------------------------
2896  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2897  No options  No options
2898  First char = 'x'  First char = 'x'
2899  No need char  No need char
2900    
2901  /x{1,3}+/D  /x{1,3}+/DZ
2902  ------------------------------------------------------------------  ------------------------------------------------------------------
2903    0  15 Bra 0          Bra
2904    3   9 Once          Once
2905    6     x          x
2906    8     x{,2}          x{0,2}
2907   12   9 Ket          Ket
2908   15  15 Ket          Ket
2909   18     End          End
2910  ------------------------------------------------------------------  ------------------------------------------------------------------
2911  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2912  No options  No options
2913  First char = 'x'  First char = 'x'
2914  No need char  No need char
2915    
2916  /(x)*+/D  /(x)*+/DZ
2917  ------------------------------------------------------------------  ------------------------------------------------------------------
2918    0  18 Bra 0          Bra
2919    3  12 Once          Braposzero
2920    6     Brazero          CBraPos 1
2921    7   5 Bra 1          x
2922   10     x          KetRpos
2923   12   5 KetRmax          Ket
2924   15  12 Ket          End
  18  18 Ket  
  21     End  
2925  ------------------------------------------------------------------  ------------------------------------------------------------------
2926  Capturing subpattern count = 1  Capturing subpattern count = 1
2927  No options  No options
2928  No first char  No first char
2929  No need char  No need char
2930    
2931  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2932  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2933  Options: anchored  Options: anchored
2934  No first char  No first char
2935  No need char  No need char
# Line 3000  No need char Line 2940  No need char
2940  No match  No match
2941      this is not a line with only words and spaces!      this is not a line with only words and spaces!
2942  No match  No match
2943    
2944  /(\d++)(\w)/  /(\d++)(\w)/I
2945  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
2946  No options  No options
2947  No first char  No first char
2948  No need char  No need char
# Line 3013  No need char Line 2952  No need char
2952   2: a   2: a
2953      *** Failers      *** Failers
2954  No match  No match
2955      12345+      12345+
2956  No match  No match
2957    
2958  /a++b/  /a++b/I
2959  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2960  No options  No options
2961  First char = 'a'  First char = 'a'
2962  Need char = 'b'  Need char = 'b'
2963      aaab      aaab
2964   0: aaab   0: aaab
2965    
2966  /(a++b)/  /(a++b)/I
2967  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2968  No options  No options
2969  First char = 'a'  First char = 'a'
2970  Need char = 'b'  Need char = 'b'
# Line 3035  Need char = 'b' Line 2972  Need char = 'b'
2972   0: aaab   0: aaab
2973   1: aaab   1: aaab
2974    
2975  /(a++)b/  /(a++)b/I
2976  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2977  No options  No options
2978  First char = 'a'  First char = 'a'
2979  Need char = 'b'  Need char = 'b'
# Line 3045  Need char = 'b' Line 2981  Need char = 'b'
2981   0: aaab   0: aaab
2982   1: aaa   1: aaa
2983    
2984  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
2985  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2986  No options  No options
2987  No first char  No first char
2988  No need char  No need char
2989      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
2990   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
2991   1: x   1: x
2992    
2993  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
2994  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2995  No options  No options
2996  First char = '('  First char = '('
2997  Need char = ')'  Need char = ')'
# Line 3069  Need char = ')' Line 3003  Need char = ')'
3003   1: xyz   1: xyz
3004      *** Failers      *** Failers
3005  No match  No match
3006      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3007  No match  No match
3008    
3009  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3010  ------------------------------------------------------------------  ------------------------------------------------------------------
3011    0  53 Bra 0          Bra
3012    3  47 Once          Once
3013    6   9 Bra 1          CBra 1
3014    9     abc          abc
3015   15   9 Ket          Ket
3016   18     Brazero          Brazero
3017   19  28 Bra 0          Bra
3018   22   9 Bra 1          CBra 1
3019   25     abc          abc
3020   31   9 Ket          Ket
3021   34     Brazero          Brazero
3022   35   9 Bra 1          CBra 1
3023   38     abc          abc
3024   44   9 Ket          Ket
3025   47  28 Ket          Ket
3026   50  47 Ket          Ket
3027   53  53 Ket          Ket
3028   56     End          End
3029  ------------------------------------------------------------------  ------------------------------------------------------------------
3030  Capturing subpattern count = 1  Capturing subpattern count = 1
3031  No options  No options
3032  First char = 'a'  First char = 'a'
3033  Need char = 'c'  Need char = 'c'
3034    
3035  /a+?+/  /a+?+/I
3036  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3037    
3038  /a{2,3}?+b/  /a{2,3}?+b/I
3039  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3040    
3041  /(?U)a+?+/  /(?U)a+?+/I
3042  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3043    
3044  /a{2,3}?+b/U  /a{2,3}?+b/IU
3045  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3046    
3047  /x(?U)a++b/D  /x(?U)a++b/DZ
3048  ------------------------------------------------------------------  ------------------------------------------------------------------
3049    0  15 Bra 0          Bra
3050    3     x          x
3051    5   5 Once          a++
3052    8     a+          b
3053   10   5 Ket          Ket
3054   13     b          End
  15  15 Ket  
  18     End  
3055  ------------------------------------------------------------------  ------------------------------------------------------------------
3056  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3057  No options  No options
3058  First char = 'x'  First char = 'x'
3059  Need char = 'b'  Need char = 'b'
3060      xaaaab      xaaaab
3061   0: xaaaab   0: xaaaab
3062    
3063  /(?U)xa++b/D  /(?U)xa++b/DZ
3064  ------------------------------------------------------------------  ------------------------------------------------------------------
3065    0  15 Bra 0          Bra
3066    3     x          x
3067    5   5 Once          a++
3068    8     a+          b
3069   10   5 Ket          Ket
3070   13     b          End
  15  15 Ket  
  18     End  
3071  ------------------------------------------------------------------  ------------------------------------------------------------------
3072  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3073  Options: ungreedy  Options: ungreedy
3074  First char = 'x'  First char = 'x'
3075  Need char = 'b'  Need char = 'b'
3076      xaaaab      xaaaab
3077   0: xaaaab   0: xaaaab
3078    
3079  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3080  ------------------------------------------------------------------  ------------------------------------------------------------------
3081    0 106 Bra 0          Bra
3082    3     ^          ^
3083    4  99 Bra 1          CBra 1
3084    7   5 Bra 2          CBra 2
3085   10     a+          a+
3086   12   5 Ket          Ket
3087   15  37 Bra 3          CBra 3
3088   18     [ab]+?          [ab]+?
3089   52  37 Ket          Ket
3090   55  37 Bra 4          CBra 4
3091   58     [bc]+          [bc]+
3092   92  37 Ket          Ket
3093   95   5 Bra 5          CBra 5
3094   98     \w*          \w*
3095  100   5 Ket          Ket
3096  103  99 Ket          Ket
3097  106 106 Ket          Ket
3098  109     End          End
3099  ------------------------------------------------------------------  ------------------------------------------------------------------
3100  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3101  Options: anchored  Options: anchored
3102  No first char  No first char
3103  No need char  No need char
3104    
3105  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3106  ------------------------------------------------------------------  ------------------------------------------------------------------
3107    0  10 Bra 0          Bra
3108    3     ^          ^
3109    4     x          x
3110    6     a+?          a++
3111    8     b          b
3112   10  10 Ket          Ket
3113   13     End          End
3114  ------------------------------------------------------------------  ------------------------------------------------------------------
3115  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3116  Options: anchored  Options: anchored
3117  No first char  No first char
3118  Need char = 'b'  Need char = 'b'
3119    
3120  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3121  ------------------------------------------------------------------  ------------------------------------------------------------------
3122    0  16 Bra 0          Bra
3123    3     ^          ^
3124    4     x          x
3125    6   5 Bra 1          CBra 1
3126    9     a+?          a+?
3127   11   5 Ket          Ket
3128   14     b          b
3129   16  16 Ket          Ket
3130   19     End          End
3131  ------------------------------------------------------------------  ------------------------------------------------------------------
3132  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3133  Options: anchored  Options: anchored
3134  No first char  No first char
3135  Need char = 'b'  Need char = 'b'
3136    
3137  /[.x.]/  /[.x.]/I
3138  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3139    
3140  /[=x=]/  /[=x=]/I
3141  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3142    
3143  /[:x:]/  /[:x:]/I
3144  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3145    
3146  /\l/  /\l/I
3147  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3148    
3149  /\L/  /\L/I
3150  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3151    
3152  /\N{name}/  /\N{name}/I
3153  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3154    
3155  /\u/  /\u/I
3156  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3157    
3158  /\U/  /\U/I
3159  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  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  Failed: missing terminating ] for character class at offset 1
3163    
3164  /[a-/  /[a-/I
3165  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3166    
3167  /[[:space:]/  /[[:space:]/I
3168  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3169    
3170  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3171  ------------------------------------------------------------------  ------------------------------------------------------------------
3172    0  36 Bra 0          Bra
3173    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
3174   36  36 Ket          Ket
3175   39     End          End
3176  ------------------------------------------------------------------  ------------------------------------------------------------------
3177  Capturing subpattern count = 0  Capturing subpattern count = 0
3178  No options  No options
3179  No first char  No first char
3180  No need char  No need char
3181    
3182  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3183  ------------------------------------------------------------------  ------------------------------------------------------------------
3184    0  36 Bra 0          Bra
3185    3     [\x09-\x0d ]          [\x09-\x0d ]
3186   36  36 Ket          Ket
3187   39     End          End
3188  ------------------------------------------------------------------  ------------------------------------------------------------------
3189  Capturing subpattern count = 0  Capturing subpattern count = 0
3190  No options  No options
3191  No first char  No first char
3192  No need char  No need char
3193    
3194  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3195  ------------------------------------------------------------------  ------------------------------------------------------------------
3196    0  36 Bra 0          Bra
3197    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3198   36  36 Ket          Ket
3199   39     End          End
3200  ------------------------------------------------------------------  ------------------------------------------------------------------
3201  Capturing subpattern count = 0  Capturing subpattern count = 0
3202  No options  No options
3203  No first char  No first char
3204  No need char  No need char
3205    
3206  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3207  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3208  Options: extended  Options: extended
3209  First char = '<'  First char = '<'
3210  Need char = '>'  Need char = '>'
# Line 3295  Need char = '>' Line 3216  Need char = '>'
3216   0: <abc <123> hij>   0: <abc <123> hij>
3217      <abc <def> hij>      <abc <def> hij>
3218   0: <def>   0: <def>
3219      <abc<>def>      <abc<>def>
3220   0: <abc<>def>   0: <abc<>def>
3221      <abc<>      <abc<>
3222   0: <>   0: <>
3223      *** Failers      *** Failers
3224  No match  No match
3225      <abc      <abc
3226  No match  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|DM  |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
 Memory allocation (code space): 826  
3229  ------------------------------------------------------------------  ------------------------------------------------------------------
3230    0 822 Bra 0          Bra
3231    3     8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X          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  821     \b          \b
3233  822 822 Ket          Ket
3234  825     End          End
3235  ------------------------------------------------------------------  ------------------------------------------------------------------
3236  Capturing subpattern count = 0  Capturing subpattern count = 0
3237  No options  No options
3238  First char = '8'  First char = '8'
3239  Need char = 'X'  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|DM  |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
 Memory allocation (code space): 816  
3243  ------------------------------------------------------------------  ------------------------------------------------------------------
3244    0 812 Bra 0          Bra
3245    3     $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X          $<.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  811     \b          \b
3247  812 812 Ket          Ket
3248  815     End          End
3249  ------------------------------------------------------------------  ------------------------------------------------------------------
3250  Capturing subpattern count = 0  Capturing subpattern count = 0
3251  No options  No options
3252  First char = '$'  First char = '$'
3253  Need char = 'X'  Need char = 'X'
3254    Max lookbehind = 1
3255    
3256  /(.*)\d+\1/I  /(.*)\d+\1/I
3257  Capturing subpattern count = 1  Capturing subpattern count = 1
3258  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3259  No options  No options
3260  No first char  No first char
3261  No need char  No need char
3262    
3263  /(.*)\d+/I  /(.*)\d+/I
3264  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3265  No options  No options
3266  First char at start or follows \n  First char at start or follows newline
3267  No need char  No need char
3268    
3269  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3270  Capturing subpattern count = 1  Capturing subpattern count = 1
3271  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3272  Options: dotall  Options: dotall
3273  No first char  No first char
3274  No need char  No need char
3275    
3276  /(.*)\d+/Is  /(.*)\d+/Is
3277  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3278  Options: anchored dotall  Options: anchored dotall
3279  No first char  No first char
3280  No need char  No need char
# Line 3365  No need char Line 3282  No need char
3282  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3283  Capturing subpattern count = 2  Capturing subpattern count = 2
3284  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3285  No options  No options
3286  First char at start or follows \n  First char at start or follows newline
3287  Need char = 'z'  Need char = 'z'
3288    
3289  /((.*))\d+\1/I  /((.*))\d+\1/I
3290  Capturing subpattern count = 2  Capturing subpattern count = 2
3291  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3292  No options  No options
3293  No first char  No first char
3294  No need char  No need char
# Line 3381  No need char Line 3296  No need char
3296   0: bc123bc   0: bc123bc
3297   1: bc   1: bc
3298   2: bc   2: bc
3299    
3300  /a[b]/I  /a[b]/I
3301  Capturing subpattern count = 0  Capturing subpattern count = 0
3302  No options  No options
# Line 3390  Need char = 'b' Line 3305  Need char = 'b'
3305    
3306  /(?=a).*/I  /(?=a).*/I
3307  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3308  No options  No options
3309  First char = 'a'  First char = 'a'
3310  No need char  No need char
3311    
3312  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3313  Capturing subpattern count = 0  Capturing subpattern count = 0
3314  Options: caseless  Options: caseless
3315  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3404  Need char = 'z' (caseless) Line 3318  Need char = 'z' (caseless)
3318  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3319  Capturing subpattern count = 0  Capturing subpattern count = 0
3320  No options  No options
 Case state changes  
3321  First char = 'a'  First char = 'a'
3322  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3323    
# Line 3438  No options Line 3351  No options
3351  No first char  No first char
3352  Need char = 'a'  Need char = 'a'
3353    
3354  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3355  Capturing subpattern count = 0  Capturing subpattern count = 1
3356  No options  No options
3357  First char = 'a'  First char = 'a'
3358  No need char  No need char
3359    
3360  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3361  Capturing subpattern count = 0  Capturing subpattern count = 1
3362  No options  No options
3363  First char = 'a'  First char = 'a'
3364  Need char = 'z'  Need char = 'z'
3365    
3366  /(?(1)abz)/I  /(?(1)abz)(.)/I
3367  Capturing subpattern count = 0  Capturing subpattern count = 1
3368  No options  No options
3369  No first char  No first char
3370  No need char  No need char
3371    
3372  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3373  Capturing subpattern count = 0  Capturing subpattern count = 1
3374  No options  No options
3375  No first char  No first char
3376  Need char = '3'  Need char = '3'
# Line 3497  Capturing subpattern count = 0 Line 3410  Capturing subpattern count = 0
3410  No options  No options
3411  No first char  No first char
3412  No need char  No need char
3413    Subject length lower bound = 1
3414  Starting byte set: a b  Starting byte set: a b
3415    
3416  /[^a]/I  /[^a]/I
# Line 3516  Capturing subpattern count = 0 Line 3430  Capturing subpattern count = 0
3430  No options  No options
3431  No first char  No first char
3432  Need char = '6'  Need char = '6'
3433    Subject length lower bound = 4
3434  Starting byte set: 0 1 2 3 4 5 6 7 8 9  Starting byte set: 0 1 2 3 4 5 6 7 8 9
3435    
3436  /a^b/I  /a^b/I
# Line 3524  No options Line 3439  No options
3439  First char = 'a'  First char = 'a'
3440  Need char = 'b'  Need char = 'b'
3441    
3442  /^a/mI  /^a/Im
3443  Capturing subpattern count = 0  Capturing subpattern count = 0
3444  Options: multiline  Options: multiline
3445  First char at start or follows \n  First char at start or follows newline
3446  Need char = 'a'  Need char = 'a'
3447    abcde    abcde
3448   0: a   0: a
3449    xy\nabc    xy\nabc
3450   0: a   0: a
3451    *** Failers    *** Failers
3452  No match  No match
3453    xyabc    xyabc
3454  No match  No match
3455    
3456  /c|abc/I  /c|abc/I
# Line 3549  Capturing subpattern count = 0 Line 3464  Capturing subpattern count = 0
3464  Options: caseless  Options: caseless
3465  No first char  No first char
3466  No need char  No need char
3467    Subject length lower bound = 1
3468  Starting byte set: A B a b  Starting byte set: A B a b
3469    
3470  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3471  Capturing subpattern count = 0  Capturing subpattern count = 0
3472  No options  No options
 Case state changes  
3473  No first char  No first char
3474  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3475    Subject length lower bound = 3
3476  Starting byte set: a b  Starting byte set: a b
3477    
3478  /abc(?C)def/  /abc(?C)def/I
3479  Capturing subpattern count = 0  Capturing subpattern count = 0
3480  No options  No options
3481  First char = 'a'  First char = 'a'
# Line 3568  Need char = 'f' Line 3484  Need char = 'f'
3484  --->abcdef  --->abcdef
3485    0 ^  ^       d    0 ^  ^       d
3486   0: abcdef   0: abcdef
3487      1234abcdef      1234abcdef
3488  --->1234abcdef  --->1234abcdef
3489    0     ^  ^       d    0     ^  ^       d
3490   0: abcdef   0: abcdef
# Line 3576  Need char = 'f' Line 3492  Need char = 'f'
3492  No match  No match
3493      abcxyz      abcxyz
3494  No match  No match
3495      abcxyzf      abcxyzf
3496  --->abcxyzf  --->abcxyzf
3497    0 ^  ^        d    0 ^  ^        d
3498  No match  No match
3499    
3500  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3501  Capturing subpattern count = 0  Capturing subpattern count = 0
3502  No options  No options
3503  First char = 'a'  First char = 'a'
# Line 3591  Need char = 'f' Line 3507  Need char = 'f'
3507    0    ^  ^       d    0    ^  ^       d
3508    1    ^    ^     f    1    ^    ^     f
3509   0: abcdef   0: abcdef
3510    
3511  /(?C1)\dabc(?C2)def/  /(?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  Capturing subpattern count = 0
3533  No options  No options
3534  No first char  No first char
# Line 3607  Need char = 'f' Line 3543  Need char = 'f'
3543   0: 4abcdef   0: 4abcdef
3544      *** Failers      *** Failers
3545  No match  No match
3546      abcdef      abcdef
3547  --->abcdef  --->abcdef
3548    1 ^          \d    1 ^          \d
3549    1  ^         \d    1  ^         \d
# Line 3616  No match Line 3552  No match
3552    1     ^      \d    1     ^      \d
3553    1      ^     \d    1      ^     \d
3554  No match  No match
3555    
3556  /(?C255)ab/  /(?C255)ab/I
3557  Capturing subpattern count = 0  Capturing subpattern count = 0
3558  No options  No options
3559  First char = 'a'  First char = 'a'
3560  Need char = 'b'  Need char = 'b'
3561    
3562  /(?C256)ab/  /(?C256)ab/I
3563  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3564    
3565  /(?Cab)xx/  /(?Cab)xx/I
3566  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3567    
3568  /(?C12vr)x/  /(?C12vr)x/I
3569  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3570    
3571  /abc(?C)def/  /abc(?C)def/I
3572  Capturing subpattern count = 0  Capturing subpattern count = 0
3573  No options  No options
3574  First char = 'a'  First char = 'a'
# Line 3644  No match Line 3580  No match
3580    0         ^  ^       d    0         ^  ^       d
3581   0: abcdef   0: abcdef
3582    
3583  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3584  Capturing subpattern count = 1  Capturing subpattern count = 1
3585  No options  No options
3586  First char = 'a'  First char = 'a'
# Line 3655  Need char = 'f' Line 3591  Need char = 'f'
3591    1    ^    ^     f    1    ^    ^     f
3592   0: abcdef   0: abcdef
3593   1: abc   1: abc
3594      123abcdef\C+      123abcdef\C+
3595  Callout 0: last capture = 1  Callout 0: last capture = 1
3596   0: <unset>   0: <unset>
3597   1: abc   1: abc
# Line 3668  Callout 1: last capture = 1 Line 3604  Callout 1: last capture = 1
3604         ^    ^     f         ^    ^     f
3605   0: abcdef   0: abcdef
3606   1: abc   1: abc
3607      123abcdef\C-      123abcdef\C-
3608   0: abcdef   0: abcdef
3609   1: abc   1: abc
3610      *** Failers      *** Failers
3611  No match  No match
3612      123abcdef\C!1      123abcdef\C!1
3613  --->123abcdef  --->123abcdef
3614    0    ^  ^       d    0    ^  ^       d
3615    1    ^    ^     f    1    ^    ^     f
3616  No match  No match
3617    
3618  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3619  Capturing subpattern count = 1  Capturing subpattern count = 1
3620  No options  No options
3621  No first char  No first char
# Line 3692  No need char Line 3628  No need char
3628    1 ^        ^    )    1 ^        ^    )
3629   0: abcabcabc   0: abcabcabc
3630   1: abc   1: abc
3631      abcabc\C!1!3      abcabc\C!1!3
3632  --->abcabc  --->abcabc
3633    0 ^          (abc(?C1))*    0 ^          (abc(?C1))*
3634    1 ^  ^       )    1 ^  ^       )
# Line 3703  No need char Line 3639  No need char
3639  --->*** Failers  --->*** Failers
3640    0 ^               (abc(?C1))*    0 ^               (abc(?C1))*
3641   0:   0:
3642      abcabcabc\C!1!3      abcabcabc\C!1!3
3643  --->abcabcabc  --->abcabcabc
3644    0 ^             (abc(?C1))*    0 ^             (abc(?C1))*
3645    1 ^  ^          )    1 ^  ^          )
# Line 3712  No need char Line 3648  No need char
3648   0: abcabc   0: abcabc
3649   1: abc   1: abc
3650    
3651  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3652  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3653  No options  No options
3654  No first char  No first char
3655  No need char  No need char
# Line 3737  Callout 0: last capture = 1 Line 3672  Callout 0: last capture = 1
3672      ^     ^    )      ^     ^    )
3673   0: 123456   0: 123456
3674   1: 456   1: 456
3675      123456789\C+      123456789\C+
3676  Callout 0: last capture = -1  Callout 0: last capture = -1
3677   0: <unset>   0: <unset>
3678  --->123456789  --->123456789
# Line 3755  Callout 0: last capture = 1 Line 3690  Callout 0: last capture = 1
3690   0: 123456789   0: 123456789
3691   1: 789   1: 789
3692    
3693  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3694  Capturing subpattern count = 2  Capturing subpattern count = 2
3695  No options  No options
3696  First char = 'x'  First char = 'x'
# Line 3774  Callout 1: last capture = -1 Line 3709  Callout 1: last capture = -1
3709   0: xyzabc   0: xyzabc
3710   1: xyzabc   1: xyzabc
3711    
3712  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3713  Capturing subpattern count = 3  Capturing subpattern count = 3
3714  No options  No options
3715  First char = 'X'  First char = 'X'
# Line 3796  Callout 1: last capture = 1 Line 3731  Callout 1: last capture = 1
3731   1: X   1: X
3732   2: xyzabc   2: xyzabc
3733    
3734  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3735  Capturing subpattern count = 1  Capturing subpattern count = 1
3736  No options  No options
3737  First char = 'a'  First char = 'a'
# Line 3809  Callout 0: last capture = 1 Line 3744  Callout 0: last capture = 1
3744      ^          a      ^          a
3745   0: abcdef   0: abcdef
3746   1: abc   1: abc
3747    
3748  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3749  Capturing subpattern count = 1  Capturing subpattern count = 1
3750  No options  No options
3751  First char = 'a'  First char = 'a'
3752  Need char = 'z'  Need char = 'z'
3753      abcxyz\C+      abcxyz\C+
3754  Callout 1: last capture = 1  Callout 1: last capture = 1
3755   0: <unset>   0: <unset>
3756   1: abc   1: abc
# Line 3827  Callout 2: last capture = -1 Line 3762  Callout 2: last capture = -1
3762      ^          a      ^          a
3763   0: abcxyz   0: abcxyz
3764    
3765  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3766  Capturing subpattern count = 1  Capturing subpattern count = 1
3767  No options  No options
3768  First char = 'x'  First char = 'x'
3769  Need char = 'z'  Need char = 'z'
3770    Max lookbehind = 3
3771     abcxyz\C+     abcxyz\C+
3772  Callout 0: last capture = 1  Callout 0: last capture = 1
3773   0: <unset>   0: <unset>
# Line 3840  Callout 0: last capture = 1 Line 3776  Callout 0: last capture = 1
3776         ^       )         ^       )
3777   0: xyz   0: xyz
3778   1: abc   1: abc
3779    
3780  /a(b+)(c*)(?C1)/  /a(b+)(c*)(?C1)/I
3781  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3782  No options  No options
3783  First char = 'a'  First char = 'a'
3784  Need char = 'b'  Need char = 'b'
# Line 3867  Callout data = 1 Line 3802  Callout data = 1
3802  Callout data = 1  Callout data = 1
3803  No match  No match
3804    
3805  /a(b+?)(c*?)(?C1)/  /a(b+?)(c*?)(?C1)/I
3806  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3807  No options  No options
3808  First char = 'a'  First char = 'a'
3809  Need char = 'b'  Need char = 'b'
# Line 3892  Callout data = 1 Line 3826  Callout data = 1
3826    1 ^        ^    1 ^        ^
3827  Callout data = 1  Callout data = 1
3828  No match  No match
3829    
3830  /(?C)abc/  /(?C)abc/I
3831  Capturing subpattern count = 0  Capturing subpattern count = 0
3832  No options  No options
3833  First char = 'a'  First char = 'a'
3834  Need char = 'c'  Need char = 'c'
3835    
3836  /(?C)^abc/  /(?C)^abc/I
3837  Capturing subpattern count = 0  Capturing subpattern count = 0
3838  Options: anchored  Options: anchored
3839  No first char  No first char
3840  No need char  No need char
3841    
3842  /(?C)a|b/S  /(?C)a|b/IS
3843  Capturing subpattern count = 0  Capturing subpattern count = 0
3844  No options  No options
3845  No first char  No first char
3846  No need char  No need char
3847    Subject length lower bound = 1
3848  Starting byte set: a b  Starting byte set: a b
3849    
3850  /(?R)/  /(?R)/I
3851  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3852    
3853  /(a|(?R))/  /(a|(?R))/I
3854  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3855    
3856  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3857  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3858    
3859  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3860  Capturing subpattern count = 3  Capturing subpattern count = 3
3861  No options  No options
3862  First char = 'x'  First char = 'x'
# Line 3950  No need char Line 3885  No need char
3885   3: xxab   3: xxab
3886      *** Failers      *** Failers
3887  No match  No match
3888      xyab      xyab
3889  No match  No match
3890    
3891  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3892  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3893    
3894  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3895  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3896    
3897  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3898  Capturing subpattern count = 1  Capturing subpattern count = 1
3899  Options: anchored  Options: anchored
3900  No first char  No first char
# Line 3970  No need char Line 3905  No need char
3905      a(b)c      a(b)c
3906   0: a(b)c   0: a(b)c
3907   1: c   1: c
3908      a(b(c))d      a(b(c))d
3909   0: a(b(c))d   0: a(b(c))d
3910   1: d   1: d
3911      *** Failers)      *** Failers)
3912  No match  No match
3913      a(b(c)d      a(b(c)d
3914  No match  No match
3915    
3916  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3917  Capturing subpattern count = 1  Capturing subpattern count = 1
3918  Options: anchored  Options: anchored
3919  No first char  No first char
# Line 3993  Need char = '<' Line 3928  Need char = '<'
3928   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3929   1: (1(2)3)   1: (1(2)3)
3930    
3931  /(a(?1)b)/D  /(a(?1)b)/DZ
3932  ------------------------------------------------------------------  ------------------------------------------------------------------
3933    0  16 Bra 0          Bra
3934    3  10 Bra 1          CBra 1
3935    6     a          a
3936    8   3 Recurse          Recurse
3937   11     b          b
3938   13  10 Ket          Ket
3939   16  16 Ket          Ket
3940   19     End          End
3941  ------------------------------------------------------------------  ------------------------------------------------------------------
3942  Capturing subpattern count = 1  Capturing subpattern count = 1
3943  No options  No options
3944  First char = 'a'  First char = 'a'
3945  Need char = 'b'  Need char = 'b'
3946    
3947  /(a(?1)+b)/D  /(a(?1)+b)/DZ
3948  ------------------------------------------------------------------  ------------------------------------------------------------------
3949    0  22 Bra 0          Bra
3950    3  16 Bra 1          CBra 1
3951    6     a          a
3952    8   6 Bra 0          Once
3953   11   3 Recurse          Recurse
3954   14   6 KetRmax          KetRmax
3955   17     b          b
3956   19  16 Ket          Ket
3957   22  22 Ket          Ket
3958   25     End          End
3959  ------------------------------------------------------------------  ------------------------------------------------------------------
3960  Capturing subpattern count = 1  Capturing subpattern count = 1
3961  No options  No options
3962  First char = 'a'  First char = 'a'
3963  Need char = 'b'  Need char = 'b'
3964    
3965  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3966  Capturing subpattern count = 4  Capturing subpattern count = 2
3967  Max back reference = 4  Options: anchored
 Partial matching not supported  
 Options: anchored caseless  
 No first char  
 No need char  
     1221  
  0: 1221  
  1: 1221  
  2: 1  
     Satan, oscillate my metallic sonatas!  
  0: Satan, oscillate my metallic sonatas!  
  1: <unset>  
  2: <unset>  
  3: Satan, oscillate my metallic sonatas  
  4: S  
     A man, a plan, a canal: Panama!  
  0: A man, a plan, a canal: Panama!  
  1: <unset>  
  2: <unset>  
  3: A man, a plan, a canal: Panama  
  4: A  
     Able was I ere I saw Elba.  
  0: Able was I ere I saw Elba.  
  1: <unset>  
  2: <unset>  
  3: Able was I ere I saw Elba  
  4: A  
     *** Failers  
 No match  
     The quick brown fox  
 No match  
   
 /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  
 Capturing subpattern count = 2  
 Partial matching not supported  
 Options: anchored  
3968  No first char  No first char
3969  No need char  No need char
3970      12      12
# Line 4081  No need char Line 3981  No need char
3981  No match  No match
3982      ((2+2)*-3)-7)      ((2+2)*-3)-7)
3983  No match  No match
3984    
3985  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
3986  Capturing subpattern count = 2  Capturing subpattern count = 2
3987  Options: anchored  Options: anchored
3988  No first char  No first char
# Line 4091  No need char Line 3991  No need char
3991   0: xyz   0: xyz
3992   1: xyz   1: xyz
3993   2: y   2: y
3994      xxyzxyzz      xxyzxyzz
3995   0: xxyzxyzz   0: xxyzxyzz
3996   1: xxyzxyzz   1: xxyzxyzz
3997   2: xyzxyz   2: xyzxyz
# Line 4099  No need char Line 3999  No need char
3999  No match  No match
4000      xxyzz      xxyzz
4001  No match  No match
4002      xxyzxyzxyzz      xxyzxyzxyzz
4003  No match  No match
4004    
4005  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4006  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4007  Options: extended  Options: extended
4008  First char = '<'  First char = '<'
4009  Need char = '>'  Need char = '>'
# Line 4124  Need char = '>' Line 4023  Need char = '>'
4023   0: <def>   0: <def>
4024   1: <def>   1: <def>
4025   2: <def>   2: <def>
4026      <abc<>def>      <abc<>def>
4027   0: <abc<>def>   0: <abc<>def>
4028   1: <abc<>def>   1: <abc<>def>
4029   2: <abc<>def>   2: <abc<>def>
4030      <abc<>      <abc<>
4031   0: <>   0: <>
4032   1: <>   1: <>
4033   2: <>   2: <>
# Line 4137  No match Line 4036  No match
4036      <abc      <abc
4037  No match  No match
4038    
4039  /(?1)/  /(?1)/I
4040  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4041    
4042  /((?2)(abc)/  /((?2)(abc)/I
4043  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4044    
4045  /^(abc)def(?1)/  /^(abc)def(?1)/I
4046  Capturing subpattern count = 1  Capturing subpattern count = 1
4047  Options: anchored  Options: anchored
4048  No first char  No first char
# Line 4152  No need char Line 4051  No need char
4051   0: abcdefabc   0: abcdefabc
4052   1: abc   1: abc
4053    
4054  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4055  Capturing subpattern count = 1  Capturing subpattern count = 1
4056  Options: anchored  Options: anchored
4057  No first char  No first char
# Line 4163  No need char Line 4062  No need char
4062      a=b      a=b
4063   0: a=b   0: a=b
4064   1: a   1: a
4065      a=bc      a=bc
4066   0: a=bc   0: a=bc
4067   1: a   1: a
4068    
4069  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4070  Capturing subpattern count = 2  Capturing subpattern count = 2
4071  Options: anchored  Options: anchored
4072  No first char  No first char
# Line 4180  No need char Line 4079  No need char
4079   0: a=b   0: a=b
4080   1: a   1: a
4081   2: b   2: b
4082      a=bc      a=bc
4083   0: a=bc   0: a=bc
4084   1: a   1: a
4085   2: c   2: c
4086    
4087  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4088  ------------------------------------------------------------------  ------------------------------------------------------------------
4089    0  28 Bra 0          Bra
4090    3     a          a
4091    5   5 Bra 1          CBra 1
4092    8     b          b
4093   10   5 Alt          Alt
4094   13     c          c
4095   15  10 Ket          Ket
4096   18     d          d
4097   20   5 Bra 2          CBra 2
4098   23     e          e
4099   25   5 Ket          Ket
4100   28  28 Ket          Ket
4101   31     End          End
4102  ------------------------------------------------------------------  ------------------------------------------------------------------
4103  Capturing subpattern count = 2  Capturing subpattern count = 2
4104  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4212  Need char = 'e' Line 4111  Need char = 'e'
4111   0: abde   0: abde
4112   1: b   1: b
4113   2: e   2: e
4114      acde      acde
4115   0: acde   0: acde
4116   1: c   1: c
4117   2: e