/[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 83 by nigel, Sat Feb 24 21:41:06 2007 UTC revision 1352 by ph10, Mon Jul 29 15:49:21 2013 UTC
# Line 1  Line 1 
1  PCRE version 6.3 15-Aug-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    May match empty string
14  No options  No options
15  No first char  No first char
16  No need char  No need char
17    
18  /abc/  /abc/I
19  Capturing subpattern count = 0  Capturing subpattern count = 0
20  No options  No options
21  First char = 'a'  First char = 'a'
# Line 24  No match Line 33  No match
33      ABC      ABC
34  No match  No match
35    
36  /^abc/  /^abc/I
37  Capturing subpattern count = 0  Capturing subpattern count = 0
38  Options: anchored  Options: anchored
39  No first char  No first char
# Line 40  No match Line 49  No match
49      \Adefabc      \Adefabc
50  No match  No match
51    
52  /a+bc/  /a+bc/I
53  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
54  No options  No options
55  First char = 'a'  First char = 'a'
56  Need char = 'c'  Need char = 'c'
57    
58  /a*bc/  /a*bc/I
59  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
60  No options  No options
61  No first char  No first char
62  Need char = 'c'  Need char = 'c'
63    
64  /a{3}bc/  /a{3}bc/I
65  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
66  No options  No options
67  First char = 'a'  First char = 'a'
68  Need char = 'c'  Need char = 'c'
69    
70  /(abc|a+z)/  /(abc|a+z)/I
71  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
72  No options  No options
73  First char = 'a'  First char = 'a'
74  No need char  No need char
75    
76  /^abc$/  /^abc$/I
77  Capturing subpattern count = 0  Capturing subpattern count = 0
78  Options: anchored  Options: anchored
79  No first char  No first char
# Line 80  No match Line 85  No match
85      def\nabc      def\nabc
86  No match  No match
87    
88  /ab\gdef/X  /ab\idef/X
89  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
90    
91  /(?X)ab\gdef/X  /(?X)ab\idef/X
92  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
93    
94  /x{5,4}/  /x{5,4}/
# Line 98  Failed: missing terminating ] for charac Line 103  Failed: missing terminating ] for charac
103  /(?X)[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
105    
106    /(?X)[\R]/
107    Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\X]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /[\B]/BZ
113    ------------------------------------------------------------------
114            Bra
115            B
116            Ket
117            End
118    ------------------------------------------------------------------
119    
120    /[\R]/BZ
121    ------------------------------------------------------------------
122            Bra
123            R
124            Ket
125            End
126    ------------------------------------------------------------------
127    
128    /[\X]/BZ
129    ------------------------------------------------------------------
130            Bra
131            X
132            Ket
133            End
134    ------------------------------------------------------------------
135    
136  /[z-a]/  /[z-a]/
137  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
138    
# Line 111  Failed: missing ) at offset 4 Line 146  Failed: missing ) at offset 4
146  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
147    
148  /(?z)abc/  /(?z)abc/
149  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
150    
151  /.*b/  /.*b/I
152  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
153  No options  No options
154  First char at start or follows \n  First char at start or follows newline
155  Need char = 'b'  Need char = 'b'
156    
157  /.*?b/  /.*?b/I
158  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
159  No options  No options
160  First char at start or follows \n  First char at start or follows newline
161  Need char = 'b'  Need char = 'b'
162    
163  /cat|dog|elephant/  /cat|dog|elephant/I
164  Capturing subpattern count = 0  Capturing subpattern count = 0
165  No options  No options
166  No first char  No first char
# Line 137  No need char Line 170  No need char
170      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
171   0: elephant   0: elephant
172    
173  /cat|dog|elephant/S  /cat|dog|elephant/IS
174  Capturing subpattern count = 0  Capturing subpattern count = 0
175  No options  No options
176  No first char  No first char
177  No need char  No need char
178    Subject length lower bound = 3
179  Starting byte set: c d e  Starting byte set: c d e
180      this sentence eventually mentions a cat      this sentence eventually mentions a cat
181   0: cat   0: cat
182      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
183   0: elephant   0: elephant
184    
185  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
186  Capturing subpattern count = 0  Capturing subpattern count = 0
187  Options: caseless  Options: caseless
188  No first char  No first char
189  No need char  No need char
190    Subject length lower bound = 3
191  Starting byte set: C D E c d e  Starting byte set: C D E c d e
192      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
193   0: CAT   0: CAT
194      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
195   0: elephant   0: elephant
196    
197  /a|[bcd]/S  /a|[bcd]/IS
198  Capturing subpattern count = 0  Capturing subpattern count = 0
199  No options  No options
200  No first char  No first char
201  No need char  No need char
202    Subject length lower bound = 1
203  Starting byte set: a b c d  Starting byte set: a b c d
204    
205  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
206  Capturing subpattern count = 1  Capturing subpattern count = 1
207  No options  No options
208  No first char  No first char
209  No need char  No need char
210    Subject length lower bound = 1
211  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
212    \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
213    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 186  Starting byte set: \x00 \x01 \x02 \x03 \ Line 223  Starting byte set: \x00 \x01 \x02 \x03 \
223    \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
224    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
225    
226  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
227  Capturing subpattern count = 1  Capturing subpattern count = 1
228  No options  No options
229  No first char  No first char
230  No need char  No need char
231    Subject length lower bound = 1
232  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
233    
234  /(ab\2)/  /(ab\2)/
# Line 199  Failed: reference to non-existent subpat Line 237  Failed: reference to non-existent subpat
237  /{4,5}abc/  /{4,5}abc/
238  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
239    
240  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
241  Capturing subpattern count = 3  Capturing subpattern count = 3
242  Max back reference = 2  Max back reference = 2
243  No options  No options
# Line 224  Matched, but too many substrings Line 262  Matched, but too many substrings
262   0: abcb   0: abcb
263   1: a   1: a
264   2: b   2: b
265      \O12abcb      \O12abcb
266   0: abcb   0: abcb
267   1: a   1: a
268   2: b   2: b
269   3: c   3: c
270    
271  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
272  Capturing subpattern count = 3  Capturing subpattern count = 3
273  Max back reference = 2  Max back reference = 2
274  No options  No options
# Line 272  Matched, but too many substrings Line 310  Matched, but too many substrings
310   2: a   2: a
311   3: b   3: b
312    
313  /abc$/E  /abc$/IE
314  Capturing subpattern count = 0  Capturing subpattern count = 0
315  Options: dollar_endonly  Options: dollar_endonly
316  First char = 'a'  First char = 'a'
# Line 289  No match Line 327  No match
327  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
328  Failed: reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
329    
330  /the quick brown fox/  /the quick brown fox/I
331  Capturing subpattern count = 0  Capturing subpattern count = 0
332  No options  No options
333  First char = 't'  First char = 't'
# Line 299  Need char = 'x' Line 337  Need char = 'x'
337      this is a line with the quick brown fox      this is a line with the quick brown fox
338   0: the quick brown fox   0: the quick brown fox
339    
340  /the quick brown fox/A  /the quick brown fox/IA
341  Capturing subpattern count = 0  Capturing subpattern count = 0
342  Options: anchored  Options: anchored
343  No first char  No first char
# Line 312  No match Line 350  No match
350  No match  No match
351    
352  /ab(?z)cd/  /ab(?z)cd/
353  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
354    
355  /^abc|def/  /^abc|def/I
356  Capturing subpattern count = 0  Capturing subpattern count = 0
357  No options  No options
358  No first char  No first char
# Line 324  No need char Line 362  No need char
362      abcdef\B      abcdef\B
363   0: def   0: def
364    
365  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
366  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
367  No options  No options
368  First char at start or follows \n  First char at start or follows newline
369  No need char  No need char
370      defabc      defabc
371   0: defabc   0: defabc
# Line 340  No need char Line 377  No need char
377   2: <unset>   2: <unset>
378   3: def   3: def
379    
 /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  
   
380  /)/  /)/
381  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
382    
383  /a[]b/  /a[]b/
384  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
385    
386  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
387  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
388  No options  No options
389  No first char  No first char
390  No need char  No need char
391      co-processors, and for      co-processors, and for
392   0: -pr   0: -pr
393    
394  /<.*>/  /<.*>/I
395  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
396  No options  No options
397  First char = '<'  First char = '<'
398  Need char = '>'  Need char = '>'
399      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
400   0: <def>ghi<klm>   0: <def>ghi<klm>
401    
402  /<.*?>/  /<.*?>/I
403  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
404  No options  No options
405  First char = '<'  First char = '<'
406  Need char = '>'  Need char = '>'
407      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
408   0: <def>   0: <def>
409    
410  /<.*>/U  /<.*>/IU
411  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
412  Options: ungreedy  Options: ungreedy
413  First char = '<'  First char = '<'
414  Need char = '>'  Need char = '>'
415      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
416   0: <def>   0: <def>
417    
418  /(?U)<.*>/  /(?U)<.*>/I
419  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
420  Options: ungreedy  Options: ungreedy
421  First char = '<'  First char = '<'
422  Need char = '>'  Need char = '>'
423      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
424   0: <def>   0: <def>
425    
426  /<.*?>/U  /<.*?>/IU
427  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
428  Options: ungreedy  Options: ungreedy
429  First char = '<'  First char = '<'
430  Need char = '>'  Need char = '>'
431      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
432   0: <def>ghi<klm>   0: <def>ghi<klm>
433    
434  /={3,}/U  /={3,}/IU
435  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
436  Options: ungreedy  Options: ungreedy
437  First char = '='  First char = '='
438  Need char = '='  Need char = '='
439      abc========def      abc========def
440   0: ===   0: ===
441    
442  /(?U)={3,}?/  /(?U)={3,}?/I
443  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
444  Options: ungreedy  Options: ungreedy
445  First char = '='  First char = '='
446  Need char = '='  Need char = '='
447      abc========def      abc========def
448   0: ========   0: ========
449    
450  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
451  Capturing subpattern count = 0  Capturing subpattern count = 0
452    Max lookbehind = 6
453  No options  No options
454  First char = 'f'  First char = 'f'
455  Need char = 'o'  Need char = 'o'
456      foo      foo
457   0: foo   0: foo
458      catfoo      catfoo
459   0: foo   0: foo
460      *** Failers      *** Failers
461  No match  No match
462      the barfoo      the barfoo
463  No match  No match
464      and cattlefoo      and cattlefoo
465  No match  No match
466    
467  /(?<=a+)b/  /(?<=a+)b/
# Line 498  Failed: lookbehind assertion is not fixe Line 473  Failed: lookbehind assertion is not fixe
473  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
474  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
475    
476  /(?i)abc/  /(?i)abc/I
477  Capturing subpattern count = 0  Capturing subpattern count = 0
478  Options: caseless  Options: caseless
479  First char = 'a' (caseless)  First char = 'a' (caseless)
480  Need char = 'c' (caseless)  Need char = 'c' (caseless)
481    
482  /(a|(?m)a)/  /(a|(?m)a)/I
483  Capturing subpattern count = 1  Capturing subpattern count = 1
484  No options  No options
485  First char = 'a'  First char = 'a'
486  No need char  No need char
487    
488  /(?i)^1234/  /(?i)^1234/I
489  Capturing subpattern count = 0  Capturing subpattern count = 0
490  Options: anchored caseless  Options: anchored caseless
491  No first char  No first char
492  No need char  No need char
493    
494  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
495  Capturing subpattern count = 1  Capturing subpattern count = 1
496  Options: anchored  Options: anchored
 Case state changes  
497  No first char  No first char
498  No need char  No need char
499    
500  /(?s).*/  /(?s).*/I
501  Capturing subpattern count = 0  Capturing subpattern count = 0
502  Partial matching not supported  May match empty string
503  Options: anchored dotall  Options: anchored dotall
504  No first char  No first char
505  No need char  No need char
506    
507  /[abcd]/S  /[abcd]/IS
508  Capturing subpattern count = 0  Capturing subpattern count = 0
509  No options  No options
510  No first char  No first char
511  No need char  No need char
512    Subject length lower bound = 1
513  Starting byte set: a b c d  Starting byte set: a b c d
514    
515  /(?i)[abcd]/S  /(?i)[abcd]/IS
516  Capturing subpattern count = 0  Capturing subpattern count = 0
517  Options: caseless  Options: caseless
518  No first char  No first char
519  No need char  No need char
520    Subject length lower bound = 1
521  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
522    
523  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
524  Capturing subpattern count = 1  Capturing subpattern count = 1
525  Options: multiline  Options: multiline
526  No first char  No first char
527  No need char  No need char
528    Subject length lower bound = 1
529  Starting byte set: b c x y  Starting byte set: b c x y
530    
531  /(^a|^b)/m  /(^a|^b)/Im
532  Capturing subpattern count = 1  Capturing subpattern count = 1
533  Options: multiline  Options: multiline
534  First char at start or follows \n  First char at start or follows newline
535  No need char  No need char
536    
537  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
538  Capturing subpattern count = 1  Capturing subpattern count = 1
539  Options: caseless multiline  Options: caseless multiline
540  First char at start or follows \n  First char at start or follows newline
541  No need char  No need char
542    
543  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 570  Failed: conditional group contains more Line 547  Failed: conditional group contains more
547  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
548    
549  /(?(1a)/  /(?(1a)/
550  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
551    
552    /(?(1a))/
553    Failed: reference to non-existent subpattern at offset 6
554    
555  /(?(?i))/  /(?(?i))/
556  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
557    
558  /(?(abc))/  /(?(abc))/
559  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
560    
561  /(?(?<ab))/  /(?(?<ab))/
562  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
563    
564  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
565  Capturing subpattern count = 1  Capturing subpattern count = 1
566  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
567  No options  No options
568  First char = 'b'  First char = 'b'
569  Need char = 'h'  Need char = 'h'
570    
571  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
572  Capturing subpattern count = 1  Capturing subpattern count = 1
573  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
574  No options  No options
 Case state changes  
575  First char = 'b' (caseless)  First char = 'b' (caseless)
576  Need char = 'h' (caseless)  Need char = 'h' (caseless)
577    
578  /((?i)b)/DS  /((?i)b)/IDZS
579  ------------------------------------------------------------------  ------------------------------------------------------------------
580    0  15 Bra 0          Bra
581    3   7 Bra 1          CBra 1
582    6  01 Opt       /i b
583    8  NC b          Ket
584   10   7 Ket          Ket
585   13  00 Opt          End
  15  15 Ket  
  18     End  
586  ------------------------------------------------------------------  ------------------------------------------------------------------
587  Capturing subpattern count = 1  Capturing subpattern count = 1
588  No options  No options
 Case state changes  
589  First char = 'b' (caseless)  First char = 'b' (caseless)
590  No need char  No need char
591  Study returned NULL  Subject length lower bound = 1
592    No set of starting bytes
593    
594  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
595  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
596  No options  No options
 Case state changes  
597  No first char  No first char
598  No need char  No need char
599    Subject length lower bound = 1
600  Starting byte set: C a b c d  Starting byte set: C a b c d
601    
602  /a$/  /a$/I
603  Capturing subpattern count = 0  Capturing subpattern count = 0
604  No options  No options
605  First char = 'a'  First char = 'a'
# Line 634  No need char Line 608  No need char
608   0: a   0: a
609      a\n      a\n
610   0: a   0: a
611      *** Failers      *** Failers
612  No match  No match
613      \Za      \Za
614  No match  No match
615      \Za\n      \Za\n
616  No match  No match
617    
618  /a$/m  /a$/Im
619  Capturing subpattern count = 0  Capturing subpattern count = 0
620  Options: multiline  Options: multiline
621  First char = 'a'  First char = 'a'
# Line 650  No need char Line 624  No need char
624   0: a   0: a
625      a\n      a\n
626   0: a   0: a
627      \Za\n      \Za\n
628   0: a   0: a
629      *** Failers      *** Failers
630  No match  No match
631      \Za      \Za
632  No match  No match
633    
634  /\Aabc/m  /\Aabc/Im
635  Capturing subpattern count = 0  Capturing subpattern count = 0
636    Max lookbehind = 1
637  Options: anchored multiline  Options: anchored multiline
638  No first char  No first char
639  No need char  No need char
640    
641  /^abc/m  /^abc/Im
642  Capturing subpattern count = 0  Capturing subpattern count = 0
643  Options: multiline  Options: multiline
644  First char at start or follows \n  First char at start or follows newline
645  Need char = 'c'  Need char = 'c'
646    
647  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
648  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
649  Options: anchored  Options: anchored
650  No first char  No first char
651  No need char  No need char
# Line 683  No need char Line 657  No need char
657   4: bbbbccccc   4: bbbbccccc
658   5: def   5: def
659    
660  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
661  Capturing subpattern count = 0  Capturing subpattern count = 0
662    Max lookbehind = 3
663  No options  No options
664  No first char  No first char
665  No need char  No need char
666    Subject length lower bound = 1
667  Starting byte set: a b  Starting byte set: a b
668    
669  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
670  Capturing subpattern count = 1  Capturing subpattern count = 1
671    Max lookbehind = 3
672  No options  No options
673  No first char  No first char
674  Need char = 'a'  Need char = 'a'
675    Subject length lower bound = 5
676  Starting byte set: a o  Starting byte set: a o
677    
678  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
679  Capturing subpattern count = 0  Capturing subpattern count = 0
680  No options  No options
681  No first char  No first char
682  No need char  No need char
683    Subject length lower bound = 1
684  Starting byte set: a b  Starting byte set: a b
685    
686  /(?<=foo\n)^bar/m  /(?<=foo\n)^bar/Im
687  Capturing subpattern count = 0  Capturing subpattern count = 0
688    Max lookbehind = 4
689    Contains explicit CR or LF match
690  Options: multiline  Options: multiline
691  No first char  No first char
692  Need char = 'r'  Need char = 'r'
693      foo\nbarbar      foo\nbarbar
694   0: bar   0: bar
695      ***Failers      ***Failers
696  No match  No match
697      rhubarb      rhubarb
698  No match  No match
699      barbell      barbell
700  No match  No match
701      abc\nbarton      abc\nbarton
702  No match  No match
703    
704  /^(?<=foo\n)bar/m  /^(?<=foo\n)bar/Im
705  Capturing subpattern count = 0  Capturing subpattern count = 0
706    Max lookbehind = 4
707    Contains explicit CR or LF match
708  Options: multiline  Options: multiline
709  First char at start or follows \n  First char at start or follows newline
710  Need char = 'r'  Need char = 'r'
711      foo\nbarbar      foo\nbarbar
712   0: bar   0: bar
713      ***Failers      ***Failers
714  No match  No match
715      rhubarb      rhubarb
716  No match  No match
717      barbell      barbell
718  No match  No match
719      abc\nbarton      abc\nbarton
720  No match  No match
721    
722  /(?>^abc)/m  /(?>^abc)/Im
723  Capturing subpattern count = 0  Capturing subpattern count = 0
724  Options: multiline  Options: multiline
725  First char at start or follows \n  First char at start or follows newline
726  Need char = 'c'  Need char = 'c'
727      abc      abc
728   0: abc   0: abc
# Line 747  Need char = 'c' Line 730  Need char = 'c'
730   0: abc   0: abc
731      *** Failers      *** Failers
732  No match  No match
733      defabc      defabc
734  No match  No match
735    
736  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 760  Failed: lookbehind assertion is not fixe Line 743  Failed: lookbehind assertion is not fixe
743  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
744    
745  /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'  
746    
747  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
748  Capturing subpattern count = 0  Capturing subpattern count = 0
749    Max lookbehind = 7
750  No options  No options
751  First char = '-'  First char = '-'
752  Need char = 't'  Need char = 't'
# Line 778  Need char = 't' Line 758  Need char = 't'
758  No match  No match
759      cart      cart
760  No match  No match
761      horse-and-cart      horse-and-cart
762  No match  No match
763    
764  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
765  Capturing subpattern count = 0  Capturing subpattern count = 0
766    Max lookbehind = 3
767    May match empty string
768  No options  No options
 Case state changes  
769  No first char  No first char
770  No need char  No need char
771    
772  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
773  Capturing subpattern count = 2  Capturing subpattern count = 2
774  Partial matching not supported  Max lookbehind = 4
775    May match empty string
776  No options  No options
777  First char at start or follows \n  No first char
778  No need char  No need char
779      alphabetabcd      alphabetabcd
780   0: alphabetabcd   0: alphabetabcd
# Line 802  No need char Line 784  No need char
784   1: <unset>   1: <unset>
785   2: xyz   2: xyz
786    
787  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
788  Capturing subpattern count = 0  Capturing subpattern count = 0
789    Max lookbehind = 4
790  No options  No options
 Case state changes  
791  First char = 'Z'  First char = 'Z'
792  Need char = 'Z'  Need char = 'Z'
793      abxyZZ      abxyZZ
# Line 818  Need char = 'Z' Line 800  Need char = 'Z'
800   0: ZZ   0: ZZ
801      bZZ      bZZ
802   0: ZZ   0: ZZ
803      BZZ      BZZ
804   0: ZZ   0: ZZ
805      *** Failers      *** Failers
806  No match  No match
807      ZZ      ZZ
808  No match  No match
809      abXYZZ      abXYZZ
810  No match  No match
811      zzz      zzz
812  No match  No match
813      bzz      bzz
814  No match  No match
815    
816  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
817  Capturing subpattern count = 1  Capturing subpattern count = 1
818    Max lookbehind = 4
819  No options  No options
820  First char = 'b'  First char = 'b'
821  Need char = 'r'  Need char = 'r'
822      bar      bar
823   0: bar   0: bar
824      foobbar      foobbar
825   0: bar   0: bar
826      *** Failers      *** Failers
827  No match  No match
828      fooabar      fooabar
 No match  
   
 /This one is here because Perl 5.005_02 doesn't fail it/  
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 't'  
   
 /^(a)?(?(1)a|b)+$/  
 Capturing subpattern count = 1  
 Options: anchored  
 No first char  
 No need char  
     *** Failers  
 No match  
     a  
829  No match  No match
830    
831  /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
832  Capturing subpattern count = 0  Capturing subpattern count = 0
833  No options  No options
834  First char = 'T'  First char = 'T'
835  Need char = 'g'  Need char = 'g'
836    
837  /^(a\1?){4}$/  /^(a\1?){4}$/I
838  Capturing subpattern count = 1  Capturing subpattern count = 1
839  Max back reference = 1  Max back reference = 1
840  Options: anchored  Options: anchored
841  No first char  No first char
842  No need char  No need char
843        aaaa
844    No match
845      aaaaaa      aaaaaa
846   0: aaaaaa  No match
  1: aa  
847    
848  /These are syntax tests from Perl 5.005/  /Perl does not fail these two for the final subjects. Neither did PCRE until/
849    /release 8.01. The problem is in backtracking into a subpattern that contains/
850    No match
851    /a recursive reference to itself. PCRE has now made these into atomic patterns./
852    No match
853    
854    /^(xa|=?\1a){2}$/
855        xa=xaa
856     0: xa=xaa
857     1: =xaa
858        ** Failers
859    No match
860        xa=xaaa
861    No match
862    
863    /^(xa|=?\1a)+$/
864        xa=xaa
865     0: xa=xaa
866     1: =xaa
867        ** Failers
868    No match
869        xa=xaaa
870    No match
871    
872    /These are syntax tests from Perl 5.005/I
873  Capturing subpattern count = 0  Capturing subpattern count = 0
874  No options  No options
875  First char = 'T'  First char = 'T'
# Line 919  Failed: reference to non-existent subpat Line 911  Failed: reference to non-existent subpat
911  /(a)|\2/  /(a)|\2/
912  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
913    
914  /a[b-a]/i  /a[b-a]/Ii
915  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
916    
917  /a[]b/i  /a[]b/Ii
918  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
919    
920  /a[/i  /a[/Ii
921  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
922    
923  /*a/i  /*a/Ii
924  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
925    
926  /(*)b/i  /(*)b/Ii
927  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
928    
929  /abc)/i  /abc)/Ii
930  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
931    
932  /(abc/i  /(abc/Ii
933  Failed: missing ) at offset 4  Failed: missing ) at offset 4
934    
935  /a**/i  /a**/Ii
936  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
937    
938  /)(/i  /)(/Ii
939  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
940    
941  /:(?:/  /:(?:/
# Line 953  Failed: missing ) at offset 4 Line 945  Failed: missing ) at offset 4
945  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
946    
947  /a(?{)b/  /a(?{)b/
948  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
949    
950  /a(?{{})b/  /a(?{{})b/
951  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
952    
953  /a(?{}})b/  /a(?{}})b/
954  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
955    
956  /a(?{"{"})b/  /a(?{"{"})b/
957  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- 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  /(?(1?)a|b)/  /(?(1?)a|b)/
963  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  
964    
965  /[a[:xyz:/  /[a[:xyz:/
966  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 974  Failed: numbers out of order in {} quant
974  /abc/\  /abc/\
975  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
976    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
977  /abc/\i  /abc/\i
978  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
979    
980  /(a)bc(d)/  /(a)bc(d)/I
981  Capturing subpattern count = 2  Capturing subpattern count = 2
982  No options  No options
983  First char = 'a'  First char = 'a'
# Line 1010  Need char = 'd' Line 996  Need char = 'd'
996   1: a   1: a
997   2: d   2: d
998  copy substring 5 failed -7  copy substring 5 failed -7
999    
1000  /(.{20})/  /(.{20})/I
1001  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1002  No options  No options
1003  No first char  No first char
1004  No need char  No need char
# Line 1023  No need char Line 1008  No need char
1008      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1009   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1010   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1011  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1012      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1013   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1014   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1015   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1016    
1017  /(.{15})/  /(.{15})/I
1018  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1019  No options  No options
1020  No first char  No first char
1021  No need char  No need char
# Line 1044  No need char Line 1028  No need char
1028   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1029   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1030    
1031  /(.{16})/  /(.{16})/I
1032  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1033  No options  No options
1034  No first char  No first char
1035  No need char  No need char
# Line 1056  No need char Line 1039  No need char
1039      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1040   0: abcdefghijklmnop   0: abcdefghijklmnop
1041   1: abcdefghijklmnop   1: abcdefghijklmnop
1042  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1043   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1044   0L abcdefghijklmnop   0L abcdefghijklmnop
1045   1L abcdefghijklmnop   1L abcdefghijklmnop
1046    
1047  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1048  Capturing subpattern count = 3  Capturing subpattern count = 3
1049  Options: anchored  Options: anchored
1050  No first char  No first char
1051  No need char  No need char
1052      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1053   0: adef   0: adef
1054   1: a   1: a
1055   2: <unset>   2: <unset>
# Line 1079  get substring 4 failed -7 Line 1062  get substring 4 failed -7
1062   1L a   1L a
1063   2L   2L
1064   3L f   3L f
1065      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1066   0: bcdef   0: bcdef
1067   1: bc   1: bc
1068   2: bc   2: bc
# Line 1092  get substring 4 failed -7 Line 1075  get substring 4 failed -7
1075   1L bc   1L bc
1076   2L bc   2L bc
1077   3L f   3L f
1078      adefghijk\C0      adefghijk\C0
1079   0: adef   0: adef
1080   1: a   1: a
1081   2: <unset>   2: <unset>
1082   3: f   3: f
1083   0C adef (4)   0C adef (4)
1084    
1085  /^abc\00def/  /^abc\00def/I
1086  Capturing subpattern count = 0  Capturing subpattern count = 0
1087  Options: anchored  Options: anchored
1088  No first char  No first char
1089  No need char  No need char
1090      abc\00def\L\C0      abc\00def\L\C0
1091   0: abc\x00def   0: abc\x00def
1092   0C abc (7)   0C abc\x00def (7)
1093   0L abc   0L abc
1094    
1095  /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]+
1096  )((?:[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]+
1097  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 432  
1098  Capturing subpattern count = 8  Capturing subpattern count = 8
1099  Partial matching not supported  Contains explicit CR or LF match
1100  No options  No options
1101  First char = 'w'  First char = 'w'
1102  Need char = 'd'  Need char = 'd'
1103    
1104  /.*X/D  /.*X/IDZ
1105  ------------------------------------------------------------------  ------------------------------------------------------------------
1106    0   7 Bra 0          Bra
1107    3     Any*          Any*
1108    5     X          X
1109    7   7 Ket          Ket
1110   10     End          End
1111  ------------------------------------------------------------------  ------------------------------------------------------------------
1112  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1113  No options  No options
1114  First char at start or follows \n  First char at start or follows newline
1115  Need char = 'X'  Need char = 'X'
1116    
1117  /.*X/Ds  /.*X/IDZs
1118  ------------------------------------------------------------------  ------------------------------------------------------------------
1119    0   7 Bra 0          Bra
1120    3     Any*          AllAny*
1121    5     X          X
1122    7   7 Ket          Ket
1123   10     End          End
1124  ------------------------------------------------------------------  ------------------------------------------------------------------
1125  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1126  Options: anchored dotall  Options: anchored dotall
1127  No first char  No first char
1128  Need char = 'X'  Need char = 'X'
1129    
1130  /(.*X|^B)/D  /(.*X|^B)/IDZ
1131  ------------------------------------------------------------------  ------------------------------------------------------------------
1132    0  19 Bra 0          Bra
1133    3   7 Bra 1          CBra 1
1134    6     Any*          Any*
1135    8     X          X
1136   10   6 Alt          Alt
1137   13     ^          ^
1138   14     B          B
1139   16  13 Ket          Ket
1140   19  19 Ket          Ket
1141   22     End          End
1142  ------------------------------------------------------------------  ------------------------------------------------------------------
1143  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1144  No options  No options
1145  First char at start or follows \n  First char at start or follows newline
1146  No need char  No need char
1147    
1148  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1149  ------------------------------------------------------------------  ------------------------------------------------------------------
1150    0  19 Bra 0          Bra
1151    3   7 Bra 1          CBra 1
1152    6     Any*          AllAny*
1153    8     X          X
1154   10   6 Alt          Alt
1155   13     ^          ^
1156   14     B          B
1157   16  13 Ket          Ket
1158   19  19 Ket          Ket
1159   22     End          End
1160  ------------------------------------------------------------------  ------------------------------------------------------------------
1161  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1162  Options: anchored dotall  Options: anchored dotall
1163  No first char  No first char
1164  No need char  No need char
1165    
1166  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1167  ------------------------------------------------------------------  ------------------------------------------------------------------
1168    0  19 Bra 0          Bra
1169    3   7 Bra 1          CBra 1
1170    6     Any*          AllAny*
1171    8     X          X
1172   10   6 Alt          Alt
1173   13     ^          ^
1174   14     B          B
1175   16  13 Ket          Ket
1176   19  19 Ket          Ket
1177   22     End          End
1178  ------------------------------------------------------------------  ------------------------------------------------------------------
1179  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1180  Options: anchored dotall  Options: anchored dotall
1181  No first char  No first char
1182  No need char  No need char
1183    
1184  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1185  ------------------------------------------------------------------  ------------------------------------------------------------------
1186    0  25 Bra 0          Bra
1187    3   9 Bra 0          Bra
1188    6  04 Opt          AllAny*
1189    8     Any*          X
1190   10     X          Alt
1191   12   8 Alt          ^
1192   15  04 Opt          B
1193   17     ^          Ket
1194   18     B          Ket
1195   20  17 Ket          End
  23  00 Opt  
  25  25 Ket  
  28     End  
1196  ------------------------------------------------------------------  ------------------------------------------------------------------
1197  Capturing subpattern count = 0  Capturing subpattern count = 0
1198  Partial matching not supported  Options: anchored
1199  No options  No first char
 First char at start or follows \n  
1200  No need char  No need char
1201    
1202  /\Biss\B/+  /\Biss\B/I+
1203  Capturing subpattern count = 0  Capturing subpattern count = 0
1204    Max lookbehind = 1
1205  No options  No options
1206  First char = 'i'  First char = 'i'
1207  Need char = 's'  Need char = 's'
# Line 1235  Need char = 's' Line 1209  Need char = 's'
1209   0: iss   0: iss
1210   0+ issippi   0+ issippi
1211    
1212  /\Biss\B/+P  /iss/IG+
     Mississippi  
  0: iss  
  0+ issippi  
   
 /iss/G+  
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  No options  No options
1215  First char = 'i'  First char = 'i'
# Line 1251  Need char = 's' Line 1220  Need char = 's'
1220   0: iss   0: iss
1221   0+ ippi   0+ ippi
1222    
1223  /\Biss\B/G+  /\Biss\B/IG+
1224  Capturing subpattern count = 0  Capturing subpattern count = 0
1225    Max lookbehind = 1
1226  No options  No options
1227  First char = 'i'  First char = 'i'
1228  Need char = 's'  Need char = 's'
# Line 1260  Need char = 's' Line 1230  Need char = 's'
1230   0: iss   0: iss
1231   0+ issippi   0+ issippi
1232    
1233  /\Biss\B/g+  /\Biss\B/Ig+
1234  Capturing subpattern count = 0  Capturing subpattern count = 0
1235    Max lookbehind = 1
1236  No options  No options
1237  First char = 'i'  First char = 'i'
1238  Need char = 's'  Need char = 's'
# Line 1275  No match Line 1246  No match
1246      Mississippi\A      Mississippi\A
1247  No match  No match
1248    
1249  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1250  Capturing subpattern count = 0  Capturing subpattern count = 0
1251    Max lookbehind = 1
1252  No options  No options
1253  First char = 'i'  First char = 'i'
1254  Need char = 's'  Need char = 's'
# Line 1286  Need char = 's' Line 1258  Need char = 's'
1258   0: iss   0: iss
1259   0+ ippi   0+ ippi
1260    
1261  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1262  Capturing subpattern count = 0  Capturing subpattern count = 0
1263    Max lookbehind = 1
1264  No options  No options
1265  First char = 'i'  First char = 'i'
1266  Need char = 's'  Need char = 's'
# Line 1295  Need char = 's' Line 1268  Need char = 's'
1268   0: iss   0: iss
1269   0+ issippi   0+ issippi
1270    
1271  /^iss/g+  /^iss/Ig+
1272  Capturing subpattern count = 0  Capturing subpattern count = 0
1273  Options: anchored  Options: anchored
1274  No first char  No first char
# Line 1303  No need char Line 1276  No need char
1276      ississippi      ississippi
1277   0: iss   0: iss
1278   0+ issippi   0+ issippi
1279    
1280  /.*iss/g+  /.*iss/Ig+
1281  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1282  No options  No options
1283  First char at start or follows \n  First char at start or follows newline
1284  Need char = 's'  Need char = 's'
1285      abciss\nxyzisspqr      abciss\nxyzisspqr
1286   0: abciss   0: abciss
1287   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1288   0: xyziss   0: xyziss
1289   0+ pqr   0+ pqr
1290    
1291  /.i./+g  /.i./I+g
1292  Capturing subpattern count = 0  Capturing subpattern count = 0
1293  No options  No options
1294  No first char  No first char
# Line 1342  Need char = 'i' Line 1314  Need char = 'i'
1314   0+ river   0+ river
1315   0: riv   0: riv
1316   0+ er   0+ er
1317      Missouri river\A      Missouri river\A
1318   0: Mis   0: Mis
1319   0+ souri river   0+ souri river
1320    
1321  /^.is/+g  /^.is/I+g
1322  Capturing subpattern count = 0  Capturing subpattern count = 0
1323  Options: anchored  Options: anchored
1324  No first char  No first char
# Line 1355  No need char Line 1327  No need char
1327   0: Mis   0: Mis
1328   0+ sissippi   0+ sissippi
1329    
1330  /^ab\n/g+  /^ab\n/Ig+
1331  Capturing subpattern count = 0  Capturing subpattern count = 0
1332    Contains explicit CR or LF match
1333  Options: anchored  Options: anchored
1334  No first char  No first char
1335  No need char  No need char
# Line 1364  No need char Line 1337  No need char
1337   0: ab\x0a   0: ab\x0a
1338   0+ ab\x0acd   0+ ab\x0acd
1339    
1340  /^ab\n/mg+  /^ab\n/Img+
1341  Capturing subpattern count = 0  Capturing subpattern count = 0
1342    Contains explicit CR or LF match
1343  Options: multiline  Options: multiline
1344  First char at start or follows \n  First char at start or follows newline
1345  Need char = 10  Need char = \x0a
1346      ab\nab\ncd      ab\nab\ncd
1347   0: ab\x0a   0: ab\x0a
1348   0+ ab\x0acd   0+ ab\x0acd
1349   0: ab\x0a   0: ab\x0a
1350   0+ cd   0+ cd
1351    
1352  /abc/  /abc/I
1353  Capturing subpattern count = 0  Capturing subpattern count = 0
1354  No options  No options
1355  First char = 'a'  First char = 'a'
1356  Need char = 'c'  Need char = 'c'
1357    
1358  /abc|bac/  /abc|bac/I
1359  Capturing subpattern count = 0  Capturing subpattern count = 0
1360  No options  No options
1361  No first char  No first char
1362  Need char = 'c'  Need char = 'c'
1363    
1364  /(abc|bac)/  /(abc|bac)/I
1365  Capturing subpattern count = 1  Capturing subpattern count = 1
1366  No options  No options
1367  No first char  No first char
1368  Need char = 'c'  Need char = 'c'
1369    
1370  /(abc|(c|dc))/  /(abc|(c|dc))/I
1371  Capturing subpattern count = 2  Capturing subpattern count = 2
1372  No options  No options
1373  No first char  No first char
1374  Need char = 'c'  Need char = 'c'
1375    
1376  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1377  Capturing subpattern count = 2  Capturing subpattern count = 2
1378  No options  No options
1379  No first char  No first char
1380  Need char = 'c'  Need char = 'c'
1381    
1382  /a*/  /a*/I
1383  Capturing subpattern count = 0  Capturing subpattern count = 0
1384  Partial matching not supported  May match empty string
1385  No options  No options
1386  No first char  No first char
1387  No need char  No need char
1388    
1389  /a+/  /a+/I
1390  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1391  No options  No options
1392  First char = 'a'  First char = 'a'
1393  No need char  No need char
1394    
1395  /(baa|a+)/  /(baa|a+)/I
1396  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1397  No options  No options
1398  No first char  No first char
1399  Need char = 'a'  Need char = 'a'
1400    
1401  /a{0,3}/  /a{0,3}/I
1402  Capturing subpattern count = 0  Capturing subpattern count = 0
1403  Partial matching not supported  May match empty string
1404  No options  No options
1405  No first char  No first char
1406  No need char  No need char
1407    
1408  /baa{3,}/  /baa{3,}/I
1409  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1410  No options  No options
1411  First char = 'b'  First char = 'b'
1412  Need char = 'a'  Need char = 'a'
1413    
1414  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1415  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1416  No options  No options
1417  First char = '"'  First char = '"'
1418  Need char = '"'  Need char = '"'
1419    
1420  /(abc|ab[cd])/  /(abc|ab[cd])/I
1421  Capturing subpattern count = 1  Capturing subpattern count = 1
1422  No options  No options
1423  First char = 'a'  First char = 'a'
1424  No need char  No need char
1425    
1426  /(a|.)/  /(a|.)/I
1427  Capturing subpattern count = 1  Capturing subpattern count = 1
1428  No options  No options
1429  No first char  No first char
1430  No need char  No need char
1431    
1432  /a|ba|\w/  /a|ba|\w/I
1433  Capturing subpattern count = 0  Capturing subpattern count = 0
1434  No options  No options
1435  No first char  No first char
1436  No need char  No need char
1437    
1438  /abc(?=pqr)/  /abc(?=pqr)/I
1439  Capturing subpattern count = 0  Capturing subpattern count = 0
1440  No options  No options
1441  First char = 'a'  First char = 'a'
1442  Need char = 'r'  Need char = 'r'
1443    
1444  /...(?<=abc)/  /...(?<=abc)/I
1445  Capturing subpattern count = 0  Capturing subpattern count = 0
1446    Max lookbehind = 3
1447  No options  No options
1448  No first char  No first char
1449  No need char  No need char
1450    
1451  /abc(?!pqr)/  /abc(?!pqr)/I
1452  Capturing subpattern count = 0  Capturing subpattern count = 0
1453  No options  No options
1454  First char = 'a'  First char = 'a'
1455  Need char = 'c'  Need char = 'c'
1456    
1457  /ab./  /ab./I
1458  Capturing subpattern count = 0  Capturing subpattern count = 0
1459  No options  No options
1460  First char = 'a'  First char = 'a'
1461  Need char = 'b'  Need char = 'b'
1462    
1463  /ab[xyz]/  /ab[xyz]/I
1464  Capturing subpattern count = 0  Capturing subpattern count = 0
1465  No options  No options
1466  First char = 'a'  First char = 'a'
1467  Need char = 'b'  Need char = 'b'
1468    
1469  /abc*/  /abc*/I
1470  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1471  No options  No options
1472  First char = 'a'  First char = 'a'
1473  Need char = 'b'  Need char = 'b'
1474    
1475  /ab.c*/  /ab.c*/I
1476  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1477  No options  No options
1478  First char = 'a'  First char = 'a'
1479  Need char = 'b'  Need char = 'b'
1480    
1481  /a.c*/  /a.c*/I
1482  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1483  No options  No options
1484  First char = 'a'  First char = 'a'
1485  No need char  No need char
1486    
1487  /.c*/  /.c*/I
1488  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1489  No options  No options
1490  No first char  No first char
1491  No need char  No need char
1492    
1493  /ac*/  /ac*/I
1494  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1495  No options  No options
1496  First char = 'a'  First char = 'a'
1497  No need char  No need char
1498    
1499  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1500  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1501  No options  No options
1502  No first char  No first char
1503  No need char  No need char
1504    
1505  /a.c*|aba/  /a.c*|aba/I
1506  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1507  No options  No options
1508  First char = 'a'  First char = 'a'
1509  No need char  No need char
1510    
1511  /.+a/  /.+a/I
1512  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1513  No options  No options
1514  No first char  No first char
1515  Need char = 'a'  Need char = 'a'
1516    
1517  /(?=abcda)a.*/  /(?=abcda)a.*/I
1518  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1519  No options  No options
1520  First char = 'a'  First char = 'a'
1521  Need char = 'a'  Need char = 'a'
1522    
1523  /(?=a)a.*/  /(?=a)a.*/I
1524  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1525  No options  No options
1526  First char = 'a'  First char = 'a'
1527  No need char  No need char
1528    
1529  /a(b)*/  /a(b)*/I
1530  Capturing subpattern count = 1  Capturing subpattern count = 1
1531  No options  No options
1532  First char = 'a'  First char = 'a'
1533  No need char  No need char
1534    
1535  /a\d*/  /a\d*/I
1536  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1537  No options  No options
1538  First char = 'a'  First char = 'a'
1539  No need char  No need char
1540    
1541  /ab\d*/  /ab\d*/I
1542  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1543  No options  No options
1544  First char = 'a'  First char = 'a'
1545  Need char = 'b'  Need char = 'b'
1546    
1547  /a(\d)*/  /a(\d)*/I
1548  Capturing subpattern count = 1  Capturing subpattern count = 1
1549  No options  No options
1550  First char = 'a'  First char = 'a'
1551  No need char  No need char
1552    
1553  /abcde{0,0}/  /abcde{0,0}/I
1554  Capturing subpattern count = 0  Capturing subpattern count = 0
1555  No options  No options
1556  First char = 'a'  First char = 'a'
1557  Need char = 'd'  Need char = 'd'
1558    
1559  /ab\d+/  /ab\d+/I
1560  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1561  No options  No options
1562  First char = 'a'  First char = 'a'
1563  Need char = 'b'  Need char = 'b'
1564    
1565  /a(?(1)b)/  /a(?(1)b)(.)/I
1566  Capturing subpattern count = 0  Capturing subpattern count = 1
1567  No options  No options
1568  First char = 'a'  First char = 'a'
1569  No need char  No need char
1570    
1571  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1572  Capturing subpattern count = 0  Capturing subpattern count = 1
1573  No options  No options
1574  First char = 'a'  First char = 'a'
1575  Need char = 'g'  Need char = 'g'
1576    
1577  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1578  Capturing subpattern count = 0  Capturing subpattern count = 1
1579  No options  No options
1580  First char = 'a'  First char = 'a'
1581  No need char  No need char
1582    
1583  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1584  Capturing subpattern count = 0  Capturing subpattern count = 1
1585  No options  No options
1586  First char = 'a'  First char = 'a'
1587  Need char = 'g'  Need char = 'g'
1588    
1589  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1590  Capturing subpattern count = 0  Capturing subpattern count = 1
1591  No options  No options
1592  First char = 'a'  First char = 'a'
1593  Need char = 'b'  Need char = 'b'
1594    
1595  /ab\d{0}e/  /ab\d{0}e/I
1596  Capturing subpattern count = 0  Capturing subpattern count = 0
1597  No options  No options
1598  First char = 'a'  First char = 'a'
1599  Need char = 'e'  Need char = 'e'
1600    
1601  /a?b?/  /a?b?/I
1602  Capturing subpattern count = 0  Capturing subpattern count = 0
1603    May match empty string
1604  No options  No options
1605  No first char  No first char
1606  No need char  No need char
# Line 1655  No need char Line 1614  No need char
1614   0:   0:
1615      *** Failers      *** Failers
1616   0:   0:
1617      \N      \N
1618  No match  No match
1619    
1620  /|-/  /|-/I
1621  Capturing subpattern count = 0  Capturing subpattern count = 0
1622    May match empty string
1623  No options  No options
1624  No first char  No first char
1625  No need char  No need char
# Line 1671  No need char Line 1631  No need char
1631   0: -   0: -
1632      *** Failers      *** Failers
1633   0:   0:
1634      \Nabc      \Nabc
1635  No match  No match
1636    
1637  /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  
1638  Capturing subpattern count = 0  Capturing subpattern count = 0
1639  Options: anchored  Options: anchored
1640  No first char  No first char
1641  Need char = 'd'  Need char = 'd'
1642  Study returned NULL  Subject length lower bound = 4
1643    No set of starting bytes
1644    
1645  /\(             # ( at start  /\(             # ( at start
1646    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1715  Study returned NULL Line 1649  Study returned NULL
1649    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1650    )*            # Zero or more contents    )*            # Zero or more contents
1651    \)            # Closing )    \)            # Closing )
1652    /x    /Ix
1653  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1654  Options: extended  Options: extended
1655  First char = '('  First char = '('
1656  Need char = ')'  Need char = ')'
# Line 1727  Need char = ')' Line 1660  Need char = ')'
1660   0: (abcd)   0: (abcd)
1661      xyz(abcd)      xyz(abcd)
1662   0: (abcd)   0: (abcd)
1663      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1664   0: (ab(xy)cd)   0: (ab(xy)cd)
1665      (ab(xycd)pqr      (ab(xycd)pqr
1666   0: (xycd)   0: (xycd)
1667      () abc ()      () abc ()
1668   0: ()   0: ()
1669      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1670   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1671      *** Failers      *** Failers
1672  No match  No match
1673      abcd      abcd
1674  No match  No match
1675      abcd)      abcd)
1676  No match  No match
1677      (abcd      (abcd
1678  No match  No match
1679    
1680  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1681  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1682  Options: extended  Options: extended
1683  First char = '('  First char = '('
1684  Need char = ')'  Need char = ')'
1685      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1686   0: (ab(xy)cd)   0: (ab(xy)cd)
1687   1: cd   1: cd
1688      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1759  Need char = ')' Line 1691  Need char = ')'
1691   0: (x(y)z)   0: (x(y)z)
1692   1: z   1: z
1693    
1694  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1695  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1696  Options: extended  Options: extended
1697  First char = '('  First char = '('
1698  Need char = ')'  Need char = ')'
# Line 1769  Need char = ')' Line 1700  Need char = ')'
1700   0: (abcd)   0: (abcd)
1701      (ab(xy)cd)      (ab(xy)cd)
1702   0: (xy)   0: (xy)
1703      (a(b(c)d)e)      (a(b(c)d)e)
1704   0: (c)   0: (c)
1705      ((ab))      ((ab))
1706   0: ((ab))   0: ((ab))
1707      *** Failers      *** Failers
1708  No match  No match
1709      ()      ()
1710  No match  No match
1711    
1712  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1713  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1714  Options: extended  Options: extended
1715  First char = '('  First char = '('
1716  Need char = ')'  Need char = ')'
# Line 1789  Need char = ')' Line 1719  Need char = ')'
1719      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1720   0: (fsh)   0: (fsh)
1721    
1722  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1723  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1724  Options: extended  Options: extended
1725  First char = '('  First char = '('
1726  Need char = ')'  Need char = ')'
# Line 1799  Need char = ')' Line 1728  Need char = ')'
1728   0: (ab(xy)cd)   0: (ab(xy)cd)
1729   1: cd   1: cd
1730    
1731  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1732  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1733  Options: extended  Options: extended
1734  First char = '('  First char = '('
1735  Need char = ')'  Need char = ')'
# Line 1810  Need char = ')' Line 1738  Need char = ')'
1738   1: ab(xy)cd   1: ab(xy)cd
1739   2: cd   2: cd
1740    
1741  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1742  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1743  Options: extended  Options: extended
1744  First char = '('  First char = '('
1745  Need char = ')'  Need char = ')'
# Line 1827  Need char = ')' Line 1754  Need char = ')'
1754   2: ab(xy)cd   2: ab(xy)cd
1755   3: cd   3: cd
1756    
1757  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1758  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1759  Options: extended  Options: extended
1760  First char = '('  First char = '('
1761  Need char = ')'  Need char = ')'
# Line 1844  Need char = ')' Line 1770  Need char = ')'
1770   2: 123   2: 123
1771   3: cd   3: cd
1772    
1773  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1774  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1775  Options: extended  Options: extended
1776  First char = '('  First char = '('
1777  Need char = ')'  Need char = ')'
# Line 1864  Need char = ')' Line 1789  Need char = ')'
1789  10: ab(xy)cd  10: ab(xy)cd
1790  11: cd  11: cd
1791    
1792  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1793  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1794  Options: extended  Options: extended
1795  First char = '('  First char = '('
1796  Need char = ')'  Need char = ')'
# Line 1874  Need char = ')' Line 1798  Need char = ')'
1798   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1799   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1800   2: 123   2: 123
  3: <unset>  
1801    
1802  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1803  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1804  Options: extended  Options: extended
1805  First char = '('  First char = '('
1806  Need char = ')'  Need char = ')'
# Line 1893  Need char = ')' Line 1815  Need char = ')'
1815   2: ij   2: ij
1816   3: (cd(ef)gh)   3: (cd(ef)gh)
1817    
1818  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1819    ------------------------------------------------------------------
1820            Bra
1821            ^
1822            [0-9A-Za-z]
1823            Ket
1824            End
1825    ------------------------------------------------------------------
1826    Capturing subpattern count = 0
1827    Options: anchored
1828    No first char
1829    No need char
1830    
1831    /^[[:^alnum:]]/DZ
1832  ------------------------------------------------------------------  ------------------------------------------------------------------
1833    0  37 Bra 0          Bra
1834    3     ^          ^
1835    4     [0-9A-Za-z]          [\x00-/:-@[-`{-\xff] (neg)
1836   37  37 Ket          Ket
1837   40     End          End
1838  ------------------------------------------------------------------  ------------------------------------------------------------------
1839  Capturing subpattern count = 0  Capturing subpattern count = 0
1840  Options: anchored  Options: anchored
1841  No first char  No first char
1842  No need char  No need char
1843    
1844  /^[[:^alnum:]]/D  /^[[:alpha:]]/DZ
1845  ------------------------------------------------------------------  ------------------------------------------------------------------
1846    0  37 Bra 0          Bra
1847    3     ^          ^
1848    4     [\x00-/:-@[-`{-\xff]          [A-Za-z]
1849   37  37 Ket          Ket
1850   40     End          End
1851  ------------------------------------------------------------------  ------------------------------------------------------------------
1852  Capturing subpattern count = 0  Capturing subpattern count = 0
1853  Options: anchored  Options: anchored
1854  No first char  No first char
1855  No need char  No need char
1856    
1857  /^[[:alpha:]]/D  /^[[:^alpha:]]/DZ
1858  ------------------------------------------------------------------  ------------------------------------------------------------------
1859    0  37 Bra 0          Bra
1860    3     ^          ^
1861    4     [A-Za-z]          [\x00-@[-`{-\xff] (neg)
1862   37  37 Ket          Ket
1863   40     End          End
1864  ------------------------------------------------------------------  ------------------------------------------------------------------
1865  Capturing subpattern count = 0  Capturing subpattern count = 0
1866  Options: anchored  Options: anchored
1867  No first char  No first char
1868  No need char  No need char
1869    
1870  /^[[:^alpha:]]/D  /[_[:alpha:]]/IS
1871    Capturing subpattern count = 0
1872    No options
1873    No first char
1874    No need char
1875    Subject length lower bound = 1
1876    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
1877      _ 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
1878    
1879    /^[[:ascii:]]/DZ
1880  ------------------------------------------------------------------  ------------------------------------------------------------------
1881    0  37 Bra 0          Bra
1882    3     ^          ^
1883    4     [\x00-@[-`{-\xff]          [\x00-\x7f]
1884   37  37 Ket          Ket
1885   40     End          End
1886  ------------------------------------------------------------------  ------------------------------------------------------------------
1887  Capturing subpattern count = 0  Capturing subpattern count = 0
1888  Options: anchored  Options: anchored
1889  No first char  No first char
1890  No need char  No need char
1891    
1892  /^[[:ascii:]]/D  /^[[:^ascii:]]/DZ
1893  ------------------------------------------------------------------  ------------------------------------------------------------------
1894    0  37 Bra 0          Bra
1895    3     ^          ^
1896    4     [\x00-\x7f]          [\x80-\xff] (neg)
1897   37  37 Ket          Ket
1898   40     End          End
1899  ------------------------------------------------------------------  ------------------------------------------------------------------
1900  Capturing subpattern count = 0  Capturing subpattern count = 0
1901  Options: anchored  Options: anchored
1902  No first char  No first char
1903  No need char  No need char
1904    
1905  /^[[:^ascii:]]/D  /^[[:blank:]]/DZ
1906  ------------------------------------------------------------------  ------------------------------------------------------------------
1907    0  37 Bra 0          Bra
1908    3     ^          ^
1909    4     [\x80-\xff]          [\x09 ]
1910   37  37 Ket          Ket
1911   40     End          End
1912  ------------------------------------------------------------------  ------------------------------------------------------------------
1913  Capturing subpattern count = 0  Capturing subpattern count = 0
1914  Options: anchored  Options: anchored
1915  No first char  No first char
1916  No need char  No need char
1917    
1918  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1919  ------------------------------------------------------------------  ------------------------------------------------------------------
1920    0  37 Bra 0          Bra
1921    3     ^          ^
1922    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1923   37  37 Ket          Ket
1924   40     End          End
1925  ------------------------------------------------------------------  ------------------------------------------------------------------
1926  Capturing subpattern count = 0  Capturing subpattern count = 0
1927  Options: anchored  Options: anchored
1928  No first char  No first char
1929  No need char  No need char
1930    
1931  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
1932    Capturing subpattern count = 0
1933    Contains explicit CR or LF match
1934    No options
1935    No first char
1936    No need char
1937    Subject length lower bound = 1
1938    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1939    
1940    /^[[:cntrl:]]/DZ
1941  ------------------------------------------------------------------  ------------------------------------------------------------------
1942    0  37 Bra 0          Bra
1943    3     ^          ^
1944    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
1945   37  37 Ket          Ket
1946   40     End          End
1947  ------------------------------------------------------------------  ------------------------------------------------------------------
1948  Capturing subpattern count = 0  Capturing subpattern count = 0
1949  Options: anchored  Options: anchored
1950  No first char  No first char
1951  No need char  No need char
1952    
1953  /^[[:digit:]]/D  /^[[:digit:]]/DZ
1954  ------------------------------------------------------------------  ------------------------------------------------------------------
1955    0  37 Bra 0          Bra
1956    3     ^          ^
1957    4     [0-9]          [0-9]
1958   37  37 Ket          Ket
1959   40     End          End
1960  ------------------------------------------------------------------  ------------------------------------------------------------------
1961  Capturing subpattern count = 0  Capturing subpattern count = 0
1962  Options: anchored  Options: anchored
1963  No first char  No first char
1964  No need char  No need char
1965    
1966  /^[[:graph:]]/D  /^[[:graph:]]/DZ
1967  ------------------------------------------------------------------  ------------------------------------------------------------------
1968    0  37 Bra 0          Bra
1969    3     ^          ^
1970    4     [!-~]          [!-~]
1971   37  37 Ket          Ket
1972   40     End          End
1973  ------------------------------------------------------------------  ------------------------------------------------------------------
1974  Capturing subpattern count = 0  Capturing subpattern count = 0
1975  Options: anchored  Options: anchored
1976  No first char  No first char
1977  No need char  No need char
1978    
1979  /^[[:lower:]]/D  /^[[:lower:]]/DZ
1980  ------------------------------------------------------------------  ------------------------------------------------------------------
1981    0  37 Bra 0          Bra
1982    3     ^          ^
1983    4     [a-z]          [a-z]
1984   37  37 Ket          Ket
1985   40     End          End
1986  ------------------------------------------------------------------  ------------------------------------------------------------------
1987  Capturing subpattern count = 0  Capturing subpattern count = 0
1988  Options: anchored  Options: anchored
1989  No first char  No first char
1990  No need char  No need char
1991    
1992  /^[[:print:]]/D  /^[[:print:]]/DZ
1993  ------------------------------------------------------------------  ------------------------------------------------------------------
1994    0  37 Bra 0          Bra
1995    3     ^          ^
1996    4     [ -~]          [ -~]
1997   37  37 Ket          Ket
1998   40     End          End
1999  ------------------------------------------------------------------  ------------------------------------------------------------------
2000  Capturing subpattern count = 0  Capturing subpattern count = 0
2001  Options: anchored  Options: anchored
2002  No first char  No first char
2003  No need char  No need char
2004    
2005  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2006  ------------------------------------------------------------------  ------------------------------------------------------------------
2007    0  37 Bra 0          Bra
2008    3     ^          ^
2009    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2010   37  37 Ket          Ket
2011   40     End          End
2012  ------------------------------------------------------------------  ------------------------------------------------------------------
2013  Capturing subpattern count = 0  Capturing subpattern count = 0
2014  Options: anchored  Options: anchored
2015  No first char  No first char
2016  No need char  No need char
2017    
2018  /^[[:space:]]/D  /^[[:space:]]/DZ
2019  ------------------------------------------------------------------  ------------------------------------------------------------------
2020    0  37 Bra 0          Bra
2021    3     ^          ^
2022    4     [\x09-\x0d ]          [\x09-\x0d ]
2023   37  37 Ket          Ket
2024   40     End          End
2025  ------------------------------------------------------------------  ------------------------------------------------------------------
2026  Capturing subpattern count = 0  Capturing subpattern count = 0
2027  Options: anchored  Options: anchored
2028  No first char  No first char
2029  No need char  No need char
2030    
2031  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2032  ------------------------------------------------------------------  ------------------------------------------------------------------
2033    0  37 Bra 0          Bra
2034    3     ^          ^
2035    4     [A-Z]          [A-Z]
2036   37  37 Ket          Ket
2037   40     End          End
2038  ------------------------------------------------------------------  ------------------------------------------------------------------
2039  Capturing subpattern count = 0  Capturing subpattern count = 0
2040  Options: anchored  Options: anchored
2041  No first char  No first char
2042  No need char  No need char
2043    
2044  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2045  ------------------------------------------------------------------  ------------------------------------------------------------------
2046    0  37 Bra 0          Bra
2047    3     ^          ^
2048    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2049   37  37 Ket          Ket
2050   40     End          End
2051  ------------------------------------------------------------------  ------------------------------------------------------------------
2052  Capturing subpattern count = 0  Capturing subpattern count = 0
2053  Options: anchored  Options: anchored
2054  No first char  No first char
2055  No need char  No need char
2056    
2057  /^[[:word:]]/D  /^[[:word:]]/DZ
2058  ------------------------------------------------------------------  ------------------------------------------------------------------
2059    0  37 Bra 0          Bra
2060    3     ^          ^
2061    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2062   37  37 Ket          Ket
2063   40     End          End
2064  ------------------------------------------------------------------  ------------------------------------------------------------------
2065  Capturing subpattern count = 0  Capturing subpattern count = 0
2066  Options: anchored  Options: anchored
2067  No first char  No first char
2068  No need char  No need char
2069    
2070  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2071  ------------------------------------------------------------------  ------------------------------------------------------------------
2072    0  37 Bra 0          Bra
2073    3     ^          ^
2074    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2075   37  37 Ket          Ket
2076   40     End          End
2077  ------------------------------------------------------------------  ------------------------------------------------------------------
2078  Capturing subpattern count = 0  Capturing subpattern count = 0
2079  Options: anchored  Options: anchored
2080  No first char  No first char
2081  No need char  No need char
2082    
2083  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2084  ------------------------------------------------------------------  ------------------------------------------------------------------
2085    0  37 Bra 0          Bra
2086    3     ^          ^
2087    4     [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
2088   37  37 Ket          Ket
2089   40     End          End
2090  ------------------------------------------------------------------  ------------------------------------------------------------------
2091  Capturing subpattern count = 0  Capturing subpattern count = 0
2092  Options: anchored  Options: anchored
2093  No first char  No first char
2094  No need char  No need char
2095    
2096  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2097  ------------------------------------------------------------------  ------------------------------------------------------------------
2098    0  37 Bra 0          Bra
2099    3     ^          ^
2100    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2101   37  37 Ket          Ket
2102   40     End          End
2103  ------------------------------------------------------------------  ------------------------------------------------------------------
2104  Capturing subpattern count = 0  Capturing subpattern count = 0
2105  Options: anchored  Options: anchored
2106  No first char  No first char
2107  No need char  No need char
2108    
2109  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2110  ------------------------------------------------------------------  ------------------------------------------------------------------
2111    0  36 Bra 0          Bra
2112    3     [%01A-Za-z]          [%01A-Za-z]
2113   36  36 Ket          Ket
2114   39     End          End
2115  ------------------------------------------------------------------  ------------------------------------------------------------------
2116  Capturing subpattern count = 0  Capturing subpattern count = 0
2117  No options  No options
2118  No first char  No first char
2119  No need char  No need char
2120    
2121  /[[.ch.]]/  /[[.ch.]]/I
2122  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2123    
2124  /[[=ch=]]/  /[[=ch=]]/I
2125  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2126    
2127  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2128  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2129    
2130  /[[:upper:]]/i  /[[:upper:]]/Ii
2131  Capturing subpattern count = 0  Capturing subpattern count = 0
2132  Options: caseless  Options: caseless
2133  No first char  No first char
2134  No need char  No need char
2135      A      A
2136   0: A   0: A
2137      a      a
2138   0: a   0: a
2139    
2140  /[[:lower:]]/i  /[[:lower:]]/Ii
2141  Capturing subpattern count = 0  Capturing subpattern count = 0
2142  Options: caseless  Options: caseless
2143  No first char  No first char
2144  No need char  No need char
2145      A      A
2146   0: A   0: A
2147      a      a
2148   0: a   0: a
2149    
2150  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2151  Capturing subpattern count = 1  Capturing subpattern count = 1
2152  Options: caseless  Options: caseless
 Case state changes  
2153  No first char  No first char
2154  No need char  No need char
2155      ab      ab
# Line 2211  No need char Line 2163  No need char
2163   1: a   1: a
2164      Ab      Ab
2165  No match  No match
2166      AB      AB
2167  No match  No match
2168    
2169  /[\200-\410]/  /[\200-\110]/I
2170  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2171    
2172  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2173  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2174    
2175  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2176  Capturing subpattern count = 0  Capturing subpattern count = 0
2177  No options  No options
2178  First char = 'T'  First char = 'T'
2179  Need char = 'd'  Need char = 'd'
2180    
2181  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2182  Capturing subpattern count = 271  Capturing subpattern count = 271
2183  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2184  No options  No options
2185  No first char  No first char
2186  No need char  No need char
# Line 2507  No need char Line 2458  No need char
2458  270: ABC  270: ABC
2459  271: ABC  271: ABC
2460    
2461  /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
2462  Capturing subpattern count = 0  Capturing subpattern count = 0
2463  No options  No options
2464  First char = 'T'  First char = 'T'
2465  Need char = 't'  Need char = 't'
2466    
2467  /(main(O)?)+/  /(main(O)?)+/I
2468  Capturing subpattern count = 2  Capturing subpattern count = 2
2469  No options  No options
2470  First char = 'm'  First char = 'm'
# Line 2525  Need char = 'n' Line 2476  Need char = 'n'
2476   0: mainOmain   0: mainOmain
2477   1: main   1: main
2478   2: O   2: O
2479    
2480  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2481  Capturing subpattern count = 1  Capturing subpattern count = 1
2482  No options  No options
2483  First char = 'T'  First char = 'T'
2484  Need char = 's'  Need char = 's'
2485    
2486  /^(a(b)?)+$/  /^(a(b)?)+$/I
2487  Capturing subpattern count = 2  Capturing subpattern count = 2
2488  Options: anchored  Options: anchored
2489  No first char  No first char
# Line 2541  No need char Line 2492  No need char
2492   0: aba   0: aba
2493   1: a   1: a
2494   2: b   2: b
2495    
2496  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2497  Capturing subpattern count = 2  Capturing subpattern count = 2
2498  Options: anchored  Options: anchored
2499  No first char  No first char
2500  No need char  No need char
2501      aabbaa      aabbaa
2502   0: aabbaa   0: aabbaa
2503   1: aa   1: aa
2504   2: bb   2: bb
2505    
2506  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2507  Capturing subpattern count = 2  Capturing subpattern count = 2
2508  Options: anchored  Options: anchored
2509  No first char  No first char
2510  No need char  No need char
2511      aabbaa      aabbaa
2512   0: aabbaa   0: aabbaa
2513   1: aa   1: aa
2514   2: bb   2: bb
2515    
2516  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2517  Capturing subpattern count = 2  Capturing subpattern count = 2
2518  Options: anchored  Options: anchored
2519  No first char  No first char
2520  No need char  No need char
2521      aabbaa      aabbaa
2522   0: aabbaa   0: aabbaa
2523   1: aa   1: aa
2524   2: bb   2: bb
2525    
2526  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2527  Capturing subpattern count = 1  Capturing subpattern count = 1
2528  Options: anchored  Options: anchored
2529  No first char  No first char
2530  No need char  No need char
2531      aabbaa      aabbaa
2532   0: aabbaa   0: aabbaa
2533   1: bb   1: bb
2534    
2535  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2536  Capturing subpattern count = 3  Capturing subpattern count = 3
2537  Options: anchored  Options: anchored
2538  No first char  No first char
2539  No need char  No need char
2540      aabbaa      aabbaa
2541   0: aabbaa   0: aabbaa
2542   1: aa   1: aa
2543   2: bb   2: bb
2544   3: b   3: b
2545    
2546  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2547  Capturing subpattern count = 2  Capturing subpattern count = 2
2548  Options: anchored  Options: anchored
2549  No first char  No first char
2550  No need char  No need char
2551      aabbaa      aabbaa
2552   0: aabbaa   0: aabbaa
2553   1: bb   1: bb
2554   2: b   2: b
2555    
2556  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2557  Capturing subpattern count = 1  Capturing subpattern count = 1
2558  Options: anchored  Options: anchored
2559  No first char  No first char
2560  No need char  No need char
2561      aabbaa      aabbaa
2562   0: aabbaa   0: aabbaa
2563   1: bb   1: bb
2564    
2565  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2566  Capturing subpattern count = 1  Capturing subpattern count = 1
2567  Options: anchored  Options: anchored
2568  No first char  No first char
2569  No need char  No need char
2570      aabbbaa      aabbbaa
2571   0: aabbbaa   0: aabbbaa
2572   1: bbb   1: bbb
2573    
2574  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2575  Capturing subpattern count = 1  Capturing subpattern count = 1
2576  Options: anchored  Options: anchored
2577  No first char  No first char
2578  No need char  No need char
2579      aabbbaa      aabbbaa
2580   0: aabbbaa   0: aabbbaa
2581   1: bbb   1: bbb
2582    
2583  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2584  Capturing subpattern count = 1  Capturing subpattern count = 1
2585  Options: anchored  Options: anchored
2586  No first char  No first char
2587  No need char  No need char
2588      aabbaa      aabbaa
2589   0: aabbaa   0: aabbaa
2590   1: b   1: b
2591    
2592  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2593  Capturing subpattern count = 1  Capturing subpattern count = 1
2594  Options: anchored  Options: anchored
2595  No first char  No first char
2596  No need char  No need char
2597      aabbbaa      aabbbaa
2598   0: aabbbaa   0: aabbbaa
2599   1: bb   1: bb
2600    
2601  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2602  Capturing subpattern count = 3  Capturing subpattern count = 3
2603  Options: anchored  Options: anchored
2604  No first char  No first char
2605  No need char  No need char
2606      aabbbaa      aabbbaa
2607   0: aabbbaa   0: aabbbaa
2608   1: aa   1: aa
2609   2: bbb   2: bbb
2610   3: bb   3: bb
2611    
2612  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2613  Capturing subpattern count = 3  Capturing subpattern count = 3
2614  Options: anchored  Options: anchored
2615  No first char  No first char
2616  No need char  No need char
2617      aabbbbaa      aabbbbaa
2618   0: aabbbbaa   0: aabbbbaa
2619   1: aa   1: aa
2620   2: bbbb   2: bbbb
2621   3: bb   3: bb
2622    
2623  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2624  Capturing subpattern count = 0  Capturing subpattern count = 0
2625  No options  No options
2626  First char = '-'  First char = '-'
2627  Need char = '-'  Need char = '-'
2628    
2629  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2630  ------------------------------------------------------------------  ------------------------------------------------------------------
2631    0   3 Bra 0          Bra
2632    3   3 Ket          Ket
2633    6     End          End
2634  ------------------------------------------------------------------  ------------------------------------------------------------------
2635  Capturing subpattern count = 0  Capturing subpattern count = 0
2636    May match empty string
2637  Options: extended  Options: extended
2638  No first char  No first char
2639  No need char  No need char
2640    
2641  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 9  
2642  ------------------------------------------------------------------  ------------------------------------------------------------------
2643    0   5 Bra 0          Bra
2644    3     a          a
2645    5   5 Ket          Ket
2646    8     End          End
2647  ------------------------------------------------------------------  ------------------------------------------------------------------
2648  Capturing subpattern count = 0  Capturing subpattern count = 0
2649  Options: extended  Options: extended
2650  First char = 'a'  First char = 'a'
2651  No need char  No need char
2652    
2653  /[\s]/D  /[\s]/DZ
2654  ------------------------------------------------------------------  ------------------------------------------------------------------
2655    0  36 Bra 0          Bra
2656    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
2657   36  36 Ket          Ket
2658   39     End          End
2659  ------------------------------------------------------------------  ------------------------------------------------------------------
2660  Capturing subpattern count = 0  Capturing subpattern count = 0
2661  No options  No options
2662  No first char  No first char
2663  No need char  No need char
2664    
2665  /[\S]/D  /[\S]/DZ
2666  ------------------------------------------------------------------  ------------------------------------------------------------------
2667    0  36 Bra 0          Bra
2668    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2669   36  36 Ket          Ket
2670   39     End          End
2671  ------------------------------------------------------------------  ------------------------------------------------------------------
2672  Capturing subpattern count = 0  Capturing subpattern count = 0
2673  No options  No options
2674  No first char  No first char
2675  No need char  No need char
2676    
2677  /a(?i)b/D  /a(?i)b/DZ
2678  ------------------------------------------------------------------  ------------------------------------------------------------------
2679    0   9 Bra 0          Bra
2680    3     a          a
2681    5  01 Opt       /i b
2682    7  NC b          Ket
2683    9   9 Ket          End
  12     End  
2684  ------------------------------------------------------------------  ------------------------------------------------------------------
2685  Capturing subpattern count = 0  Capturing subpattern count = 0
2686  No options  No options
 Case state changes  
2687  First char = 'a'  First char = 'a'
2688  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2689      ab      ab
2690   0: ab   0: ab
2691      aB      aB
2692   0: aB   0: aB
2693      *** Failers      *** Failers
2694  No match  No match
2695      AB      AB
2696  No match  No match
2697    
2698  /(a(?i)b)/D  /(a(?i)b)/DZ
2699  ------------------------------------------------------------------  ------------------------------------------------------------------
2700    0  17 Bra 0          Bra
2701    3   9 Bra 1          CBra 1
2702    6     a          a
2703    8  01 Opt       /i b
2704   10  NC b          Ket
2705   12   9 Ket          Ket
2706   15  00 Opt          End
  17  17 Ket  
  20     End  
2707  ------------------------------------------------------------------  ------------------------------------------------------------------
2708  Capturing subpattern count = 1  Capturing subpattern count = 1
2709  No options  No options
 Case state changes  
2710  First char = 'a'  First char = 'a'
2711  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2712      ab      ab
# Line 2770  Need char = 'b' (caseless) Line 2715  Need char = 'b' (caseless)
2715      aB      aB
2716   0: aB   0: aB
2717   1: aB   1: aB
2718      *** Failers      *** Failers
2719  No match  No match
2720      AB      AB
2721  No match  No match
2722    
2723  /   (?i)abc/xD  /   (?i)abc/IxDZ
2724  ------------------------------------------------------------------  ------------------------------------------------------------------
2725    0   9 Bra 0          Bra
2726    3  NC abc       /i abc
2727    9   9 Ket          Ket
2728   12     End          End
2729  ------------------------------------------------------------------  ------------------------------------------------------------------
2730  Capturing subpattern count = 0  Capturing subpattern count = 0
2731  Options: caseless extended  Options: caseless extended
# Line 2788  First char = 'a' (caseless) Line 2733  First char = 'a' (caseless)
2733  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2734    
2735  /#this is a comment  /#this is a comment
2736    (?i)abc/xD    (?i)abc/IxDZ
2737  ------------------------------------------------------------------  ------------------------------------------------------------------
2738    0   9 Bra 0          Bra
2739    3  NC abc       /i abc
2740    9   9 Ket          Ket
2741   12     End          End
2742  ------------------------------------------------------------------  ------------------------------------------------------------------
2743  Capturing subpattern count = 0  Capturing subpattern count = 0
2744  Options: caseless extended  Options: caseless extended
2745  First char = 'a' (caseless)  First char = 'a' (caseless)
2746  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2747    
2748  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2749  ------------------------------------------------------------------  ------------------------------------------------------------------
2750    0 603 Bra 0          Bra
2751    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2752  603 603 Ket          Ket
2753  606     End          End
2754  ------------------------------------------------------------------  ------------------------------------------------------------------
2755  Capturing subpattern count = 0  Capturing subpattern count = 0
2756  No options  No options
2757  First char = '1'  First char = '1'
2758  Need char = '0'  Need char = '0'
2759    
2760  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2761  ------------------------------------------------------------------  ------------------------------------------------------------------
2762    0 603 Bra 0          Bra
2763    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2764  603 603 Ket          Ket
2765  606     End          End
2766  ------------------------------------------------------------------  ------------------------------------------------------------------
2767  Capturing subpattern count = 0  Capturing subpattern count = 0
2768  No options  No options
2769  First char = '1'  First char = '1'
2770  Need char = '0'  Need char = '0'
2771    
2772  /\Q\E/D  /\Q\E/DZ
2773  ------------------------------------------------------------------  ------------------------------------------------------------------
2774    0   3 Bra 0          Bra
2775    3   3 Ket          Ket
2776    6     End          End
2777  ------------------------------------------------------------------  ------------------------------------------------------------------
2778  Capturing subpattern count = 0  Capturing subpattern count = 0
2779    May match empty string
2780  No options  No options
2781  No first char  No first char
2782  No need char  No need char
2783      \      \
2784   0:   0:
2785    
2786  /\Q\Ex/D  /\Q\Ex/DZ
2787  ------------------------------------------------------------------  ------------------------------------------------------------------
2788    0   5 Bra 0          Bra
2789    3     x          x
2790    5   5 Ket          Ket
2791    8     End          End
2792  ------------------------------------------------------------------  ------------------------------------------------------------------
2793  Capturing subpattern count = 0  Capturing subpattern count = 0
2794  No options  No options
2795  First char = 'x'  First char = 'x'
2796  No need char  No need char
2797    
2798  / \Q\E/D  / \Q\E/DZ
2799  ------------------------------------------------------------------  ------------------------------------------------------------------
2800    0   5 Bra 0          Bra
2801    3  
2802    5   5 Ket          Ket
2803    8     End          End
2804  ------------------------------------------------------------------  ------------------------------------------------------------------
2805  Capturing subpattern count = 0  Capturing subpattern count = 0
2806  No options  No options
2807  First char = ' '  First char = ' '
2808  No need char  No need char
2809    
2810  /a\Q\E/D  /a\Q\E/DZ
2811  ------------------------------------------------------------------  ------------------------------------------------------------------
2812    0   5 Bra 0          Bra
2813    3     a          a
2814    5   5 Ket          Ket
2815    8     End          End
2816  ------------------------------------------------------------------  ------------------------------------------------------------------
2817  Capturing subpattern count = 0  Capturing subpattern count = 0
2818  No options  No options
# Line 2876  No need char Line 2822  No need char
2822   0: a   0: a
2823    bca    bca
2824   0: a   0: a
2825    bac    bac
2826   0: a   0: a
2827    
2828  /a\Q\Eb/D  /a\Q\Eb/DZ
2829  ------------------------------------------------------------------  ------------------------------------------------------------------
2830    0   7 Bra 0          Bra
2831    3     ab          ab
2832    7   7 Ket          Ket
2833   10     End          End
2834  ------------------------------------------------------------------  ------------------------------------------------------------------
2835  Capturing subpattern count = 0  Capturing subpattern count = 0
2836  No options  No options
# Line 2893  Need char = 'b' Line 2839  Need char = 'b'
2839    abc    abc
2840   0: ab   0: ab
2841    
2842  /\Q\Eabc/D  /\Q\Eabc/DZ
2843  ------------------------------------------------------------------  ------------------------------------------------------------------
2844    0   9 Bra 0          Bra
2845    3     abc          abc
2846    9   9 Ket          Ket
2847   12     End          End
2848  ------------------------------------------------------------------  ------------------------------------------------------------------
2849  Capturing subpattern count = 0  Capturing subpattern count = 0
2850  No options  No options
2851  First char = 'a'  First char = 'a'
2852  Need char = 'c'  Need char = 'c'
2853    
2854  /x*+\w/D  /x*+\w/DZ
2855  ------------------------------------------------------------------  ------------------------------------------------------------------
2856    0  12 Bra 0          Bra
2857    3   5 Once          x*+
2858    6     x*          \w
2859    8   5 Ket          Ket
2860   11     \w          End
  12  12 Ket  
  15     End  
2861  ------------------------------------------------------------------  ------------------------------------------------------------------
2862  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2863  No options  No options
2864  No first char  No first char
2865  No need char  No need char
# Line 2924  No need char Line 2867  No need char
2867   0: F   0: F
2868      xxxxx      xxxxx
2869  No match  No match
2870    
2871  /x?+/D  /x?+/DZ
2872  ------------------------------------------------------------------  ------------------------------------------------------------------
2873    0  11 Bra 0          Bra
2874    3   5 Once          x?+
2875    6     x?          Ket
2876    8   5 Ket          End
  11  11 Ket  
  14     End  
2877  ------------------------------------------------------------------  ------------------------------------------------------------------
2878  Capturing subpattern count = 0  Capturing subpattern count = 0
2879    May match empty string
2880  No options  No options
2881  No first char  No first char
2882  No need char  No need char
2883    
2884  /x++/D  /x++/DZ
2885  ------------------------------------------------------------------  ------------------------------------------------------------------
2886    0  11 Bra 0          Bra
2887    3   5 Once          x++
2888    6     x+          Ket
2889    8   5 Ket          End
  11  11 Ket  
  14     End  
2890  ------------------------------------------------------------------  ------------------------------------------------------------------
2891  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2892  No options  No options
2893  First char = 'x'  First char = 'x'
2894  No need char  No need char
2895    
2896  /x{1,3}+/D  /x{1,3}+/DZ
2897  ------------------------------------------------------------------  ------------------------------------------------------------------
2898    0  15 Bra 0          Bra
2899    3   9 Once          Once
2900    6     x          x
2901    8     x{,2}          x{0,2}
2902   12   9 Ket          Ket
2903   15  15 Ket          Ket
2904   18     End          End
2905  ------------------------------------------------------------------  ------------------------------------------------------------------
2906  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2907  No options  No options
2908  First char = 'x'  First char = 'x'
2909  No need char  No need char
2910    
2911  /(x)*+/D  /(x)*+/DZ
2912  ------------------------------------------------------------------  ------------------------------------------------------------------
2913    0  18 Bra 0          Bra
2914    3  12 Once          Braposzero
2915    6     Brazero          CBraPos 1
2916    7   5 Bra 1          x
2917   10     x          KetRpos
2918   12   5 KetRmax          Ket
2919   15  12 Ket          End
  18  18 Ket  
  21     End  
2920  ------------------------------------------------------------------  ------------------------------------------------------------------
2921  Capturing subpattern count = 1  Capturing subpattern count = 1
2922    May match empty string
2923  No options  No options
2924  No first char  No first char
2925  No need char  No need char
2926    
2927  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2928  Capturing subpattern count = 1  Capturing subpattern count = 1
2929  Partial matching not supported  May match empty string
2930  Options: anchored  Options: anchored
2931  No first char  No first char
2932  No need char  No need char
# Line 3000  No need char Line 2937  No need char
2937  No match  No match
2938      this is not a line with only words and spaces!      this is not a line with only words and spaces!
2939  No match  No match
2940    
2941  /(\d++)(\w)/  /(\d++)(\w)/I
2942  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
2943  No options  No options
2944  No first char  No first char
2945  No need char  No need char
# Line 3013  No need char Line 2949  No need char
2949   2: a   2: a
2950      *** Failers      *** Failers
2951  No match  No match
2952      12345+      12345+
2953  No match  No match
2954    
2955  /a++b/  /a++b/I
2956  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2957  No options  No options
2958  First char = 'a'  First char = 'a'
2959  Need char = 'b'  Need char = 'b'
2960      aaab      aaab
2961   0: aaab   0: aaab
2962    
2963  /(a++b)/  /(a++b)/I
2964  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2965  No options  No options
2966  First char = 'a'  First char = 'a'
2967  Need char = 'b'  Need char = 'b'
# Line 3035  Need char = 'b' Line 2969  Need char = 'b'
2969   0: aaab   0: aaab
2970   1: aaab   1: aaab
2971    
2972  /(a++)b/  /(a++)b/I
2973  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2974  No options  No options
2975  First char = 'a'  First char = 'a'
2976  Need char = 'b'  Need char = 'b'
# Line 3045  Need char = 'b' Line 2978  Need char = 'b'
2978   0: aaab   0: aaab
2979   1: aaa   1: aaa
2980    
2981  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
2982  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2983  No options  No options
2984  No first char  No first char
2985  No need char  No need char
2986      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
2987   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
2988   1: x   1: x
2989    
2990  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
2991  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2992  No options  No options
2993  First char = '('  First char = '('
2994  Need char = ')'  Need char = ')'
# Line 3069  Need char = ')' Line 3000  Need char = ')'
3000   1: xyz   1: xyz
3001      *** Failers      *** Failers
3002  No match  No match
3003      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3004  No match  No match
3005    
3006  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3007  ------------------------------------------------------------------  ------------------------------------------------------------------
3008    0  53 Bra 0          Bra
3009    3  47 Once          Once
3010    6   9 Bra 1          CBra 1
3011    9     abc          abc
3012   15   9 Ket          Ket
3013   18     Brazero          Brazero
3014   19  28 Bra 0          Bra
3015   22   9 Bra 1          CBra 1
3016   25     abc          abc
3017   31   9 Ket          Ket
3018   34     Brazero          Brazero
3019   35   9 Bra 1          CBra 1
3020   38     abc          abc
3021   44   9 Ket          Ket
3022   47  28 Ket          Ket
3023   50  47 Ket          Ket
3024   53  53 Ket          Ket
3025   56     End          End
3026  ------------------------------------------------------------------  ------------------------------------------------------------------
3027  Capturing subpattern count = 1  Capturing subpattern count = 1
3028  No options  No options
3029  First char = 'a'  First char = 'a'
3030  Need char = 'c'  Need char = 'c'
3031    
3032  /a+?+/  /a+?+/I
3033  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3034    
3035  /a{2,3}?+b/  /a{2,3}?+b/I
3036  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3037    
3038  /(?U)a+?+/  /(?U)a+?+/I
3039  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3040    
3041  /a{2,3}?+b/U  /a{2,3}?+b/IU
3042  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3043    
3044  /x(?U)a++b/D  /x(?U)a++b/DZ
3045  ------------------------------------------------------------------  ------------------------------------------------------------------
3046    0  15 Bra 0          Bra
3047    3     x          x
3048    5   5 Once          a++
3049    8     a+          b
3050   10   5 Ket          Ket
3051   13     b          End
  15  15 Ket  
  18     End  
3052  ------------------------------------------------------------------  ------------------------------------------------------------------
3053  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3054  No options  No options
3055  First char = 'x'  First char = 'x'
3056  Need char = 'b'  Need char = 'b'
3057      xaaaab      xaaaab
3058   0: xaaaab   0: xaaaab
3059    
3060  /(?U)xa++b/D  /(?U)xa++b/DZ
3061  ------------------------------------------------------------------  ------------------------------------------------------------------
3062    0  15 Bra 0          Bra
3063    3     x          x
3064    5   5 Once          a++
3065    8     a+          b
3066   10   5 Ket          Ket
3067   13     b          End
  15  15 Ket  
  18     End  
3068  ------------------------------------------------------------------  ------------------------------------------------------------------
3069  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3070  Options: ungreedy  Options: ungreedy
3071  First char = 'x'  First char = 'x'
3072  Need char = 'b'  Need char = 'b'
3073      xaaaab      xaaaab
3074   0: xaaaab   0: xaaaab
3075    
3076  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3077  ------------------------------------------------------------------  ------------------------------------------------------------------
3078    0 106 Bra 0          Bra
3079    3     ^          ^
3080    4  99 Bra 1          CBra 1
3081    7   5 Bra 2          CBra 2
3082   10     a+          a+
3083   12   5 Ket          Ket
3084   15  37 Bra 3          CBra 3
3085   18     [ab]+?          [ab]+?
3086   52  37 Ket          Ket
3087   55  37 Bra 4          CBra 4
3088   58     [bc]+          [bc]+
3089   92  37 Ket          Ket
3090   95   5 Bra 5          CBra 5
3091   98     \w*          \w*
3092  100   5 Ket          Ket
3093  103  99 Ket          Ket
3094  106 106 Ket          Ket
3095  109     End          End
3096  ------------------------------------------------------------------  ------------------------------------------------------------------
3097  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3098  Options: anchored  Options: anchored
3099  No first char  No first char
3100  No need char  No need char
3101    
3102  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3103  ------------------------------------------------------------------  ------------------------------------------------------------------
3104    0  10 Bra 0          Bra
3105    3     ^          ^
3106    4     x          x
3107    6     a+?          a++
3108    8     b          b
3109   10  10 Ket          Ket
3110   13     End          End
3111  ------------------------------------------------------------------  ------------------------------------------------------------------
3112  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3113  Options: anchored  Options: anchored
3114  No first char  No first char
3115  Need char = 'b'  Need char = 'b'
3116    
3117  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3118  ------------------------------------------------------------------  ------------------------------------------------------------------
3119    0  16 Bra 0          Bra
3120    3     ^          ^
3121    4     x          x
3122    6   5 Bra 1          CBra 1
3123    9     a+?          a+?
3124   11   5 Ket          Ket
3125   14     b          b
3126   16  16 Ket          Ket
3127   19     End          End
3128  ------------------------------------------------------------------  ------------------------------------------------------------------
3129  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3130  Options: anchored  Options: anchored
3131  No first char  No first char
3132  Need char = 'b'  Need char = 'b'
3133    
3134  /[.x.]/  /[.x.]/I
3135  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
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 named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3142    
3143  /\l/  /\l/I
3144  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
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  /\N{name}/  /\N{name}/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  /\u/  /\u/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  /[/  /[/I
3159  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3160    
3161  /[a-/  /[a-/I
3162  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3163    
3164  /[[:space:]/  /[[:space:]/I
3165  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3166    
3167  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3168  ------------------------------------------------------------------  ------------------------------------------------------------------
3169    0  36 Bra 0          Bra
3170    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
3171   36  36 Ket          Ket
3172   39     End          End
3173  ------------------------------------------------------------------  ------------------------------------------------------------------
3174  Capturing subpattern count = 0  Capturing subpattern count = 0
3175  No options  No options
3176  No first char  No first char
3177  No need char  No need char
3178    
3179  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3180  ------------------------------------------------------------------  ------------------------------------------------------------------
3181    0  36 Bra 0          Bra
3182    3     [\x09-\x0d ]          [\x09-\x0d ]
3183   36  36 Ket          Ket
3184   39     End          End
3185  ------------------------------------------------------------------  ------------------------------------------------------------------
3186  Capturing subpattern count = 0  Capturing subpattern count = 0
3187  No options  No options
3188  No first char  No first char
3189  No need char  No need char
3190    
3191  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3192  ------------------------------------------------------------------  ------------------------------------------------------------------
3193    0  36 Bra 0          Bra
3194    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3195   36  36 Ket          Ket
3196   39     End          End
3197  ------------------------------------------------------------------  ------------------------------------------------------------------
3198  Capturing subpattern count = 0  Capturing subpattern count = 0
3199  No options  No options
3200  No first char  No first char
3201  No need char  No need char
3202    
3203  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3204  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3205  Options: extended  Options: extended
3206  First char = '<'  First char = '<'
3207  Need char = '>'  Need char = '>'
# Line 3295  Need char = '>' Line 3213  Need char = '>'
3213   0: <abc <123> hij>   0: <abc <123> hij>
3214      <abc <def> hij>      <abc <def> hij>
3215   0: <def>   0: <def>
3216      <abc<>def>      <abc<>def>
3217   0: <abc<>def>   0: <abc<>def>
3218      <abc<>      <abc<>
3219   0: <>   0: <>
3220      *** Failers      *** Failers
3221  No match  No match
3222      <abc      <abc
3223  No match  No match
3224    
3225  |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  
3226  ------------------------------------------------------------------  ------------------------------------------------------------------
3227    0 822 Bra 0          Bra
3228    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
3229  821     \b          \b
3230  822 822 Ket          Ket
3231  825     End          End
3232  ------------------------------------------------------------------  ------------------------------------------------------------------
3233  Capturing subpattern count = 0  Capturing subpattern count = 0
3234    Max lookbehind = 1
3235  No options  No options
3236  First char = '8'  First char = '8'
3237  Need char = 'X'  Need char = 'X'
3238    
3239  |\$\<\.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  
3240  ------------------------------------------------------------------  ------------------------------------------------------------------
3241    0 812 Bra 0          Bra
3242    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
3243  811     \b          \b
3244  812 812 Ket          Ket
3245  815     End          End
3246  ------------------------------------------------------------------  ------------------------------------------------------------------
3247  Capturing subpattern count = 0  Capturing subpattern count = 0
3248    Max lookbehind = 1
3249  No options  No options
3250  First char = '$'  First char = '$'
3251  Need char = 'X'  Need char = 'X'
# Line 3335  Need char = 'X' Line 3253  Need char = 'X'
3253  /(.*)\d+\1/I  /(.*)\d+\1/I
3254  Capturing subpattern count = 1  Capturing subpattern count = 1
3255  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3256  No options  No options
3257  No first char  No first char
3258  No need char  No need char
3259    
3260  /(.*)\d+/I  /(.*)\d+/I
3261  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3262  No options  No options
3263  First char at start or follows \n  First char at start or follows newline
3264  No need char  No need char
3265    
3266  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3267  Capturing subpattern count = 1  Capturing subpattern count = 1
3268  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3269  Options: dotall  Options: dotall
3270  No first char  No first char
3271  No need char  No need char
3272    
3273  /(.*)\d+/Is  /(.*)\d+/Is
3274  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3275  Options: anchored dotall  Options: anchored dotall
3276  No first char  No first char
3277  No need char  No need char
# Line 3365  No need char Line 3279  No need char
3279  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3280  Capturing subpattern count = 2  Capturing subpattern count = 2
3281  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3282  No options  No options
3283  First char at start or follows \n  First char at start or follows newline
3284  Need char = 'z'  Need char = 'z'
3285    
3286  /((.*))\d+\1/I  /((.*))\d+\1/I
3287  Capturing subpattern count = 2  Capturing subpattern count = 2
3288  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3289  No options  No options
3290  No first char  No first char
3291  No need char  No need char
# Line 3381  No need char Line 3293  No need char
3293   0: bc123bc   0: bc123bc
3294   1: bc   1: bc
3295   2: bc   2: bc
3296    
3297  /a[b]/I  /a[b]/I
3298  Capturing subpattern count = 0  Capturing subpattern count = 0
3299  No options  No options
# Line 3390  Need char = 'b' Line 3302  Need char = 'b'
3302    
3303  /(?=a).*/I  /(?=a).*/I
3304  Capturing subpattern count = 0  Capturing subpattern count = 0
3305  Partial matching not supported  May match empty string
3306  No options  No options
3307  First char = 'a'  First char = 'a'
3308  No need char  No need char
3309    
3310  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3311  Capturing subpattern count = 0  Capturing subpattern count = 0
3312  Options: caseless  Options: caseless
3313  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3404  Need char = 'z' (caseless) Line 3316  Need char = 'z' (caseless)
3316  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3317  Capturing subpattern count = 0  Capturing subpattern count = 0
3318  No options  No options
 Case state changes  
3319  First char = 'a'  First char = 'a'
3320  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3321    
3322  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3323  Capturing subpattern count = 0  Capturing subpattern count = 0
3324    May match empty string
3325  No options  No options
3326  First char = 'a'  First char = 'a'
3327  No need char  No need char
# Line 3438  No options Line 3350  No options
3350  No first char  No first char
3351  Need char = 'a'  Need char = 'a'
3352    
3353  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3354  Capturing subpattern count = 0  Capturing subpattern count = 1
3355  No options  No options
3356  First char = 'a'  First char = 'a'
3357  No need char  No need char
3358    
3359  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3360  Capturing subpattern count = 0  Capturing subpattern count = 1
3361  No options  No options
3362  First char = 'a'  First char = 'a'
3363  Need char = 'z'  Need char = 'z'
3364    
3365  /(?(1)abz)/I  /(?(1)abz)(.)/I
3366  Capturing subpattern count = 0  Capturing subpattern count = 1
3367  No options  No options
3368  No first char  No first char
3369  No need char  No need char
3370    
3371  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3372  Capturing subpattern count = 0  Capturing subpattern count = 1
3373  No options  No options
3374  No first char  No first char
3375  Need char = '3'  Need char = '3'
# Line 3476  Need char = 'a' Line 3388  Need char = 'a'
3388    
3389  /(a)*/I  /(a)*/I
3390  Capturing subpattern count = 1  Capturing subpattern count = 1
3391    May match empty string
3392  No options  No options
3393  No first char  No first char
3394  No need char  No need char
# 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    May match empty string
3621  No options  No options
3622  No first char  No first char
3623  No need char  No need char
# Line 3692  No need char Line 3629  No need char
3629    1 ^        ^    )    1 ^        ^    )
3630   0: abcabcabc   0: abcabcabc
3631   1: abc   1: abc
3632      abcabc\C!1!3      abcabc\C!1!3
3633  --->abcabc  --->abcabc
3634    0 ^          (abc(?C1))*    0 ^          (abc(?C1))*
3635    1 ^  ^       )    1 ^  ^       )
# Line 3703  No need char Line 3640  No need char
3640  --->*** Failers  --->*** Failers
3641    0 ^               (abc(?C1))*    0 ^               (abc(?C1))*
3642   0:   0:
3643      abcabcabc\C!1!3      abcabcabc\C!1!3
3644  --->abcabcabc  --->abcabcabc
3645    0 ^             (abc(?C1))*    0 ^             (abc(?C1))*
3646    1 ^  ^          )    1 ^  ^          )
# Line 3712  No need char Line 3649  No need char
3649   0: abcabc   0: abcabc
3650   1: abc   1: abc
3651    
3652  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3653  Capturing subpattern count = 1  Capturing subpattern count = 1
3654  Partial matching not supported  May match empty string
3655  No options  No options
3656  No first char  No first char
3657  No need char  No need char
# Line 3737  Callout 0: last capture = 1 Line 3674  Callout 0: last capture = 1
3674      ^     ^    )      ^     ^    )
3675   0: 123456   0: 123456
3676   1: 456   1: 456
3677      123456789\C+      123456789\C+
3678  Callout 0: last capture = -1  Callout 0: last capture = -1
3679   0: <unset>   0: <unset>
3680  --->123456789  --->123456789
# Line 3755  Callout 0: last capture = 1 Line 3692  Callout 0: last capture = 1
3692   0: 123456789   0: 123456789
3693   1: 789   1: 789
3694    
3695  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3696  Capturing subpattern count = 2  Capturing subpattern count = 2
3697  No options  No options
3698  First char = 'x'  First char = 'x'
# Line 3774  Callout 1: last capture = -1 Line 3711  Callout 1: last capture = -1
3711   0: xyzabc   0: xyzabc
3712   1: xyzabc   1: xyzabc
3713    
3714  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3715  Capturing subpattern count = 3  Capturing subpattern count = 3
3716  No options  No options
3717  First char = 'X'  First char = 'X'
# Line 3796  Callout 1: last capture = 1 Line 3733  Callout 1: last capture = 1
3733   1: X   1: X
3734   2: xyzabc   2: xyzabc
3735    
3736  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3737  Capturing subpattern count = 1  Capturing subpattern count = 1
3738  No options  No options
3739  First char = 'a'  First char = 'a'
# Line 3809  Callout 0: last capture = 1 Line 3746  Callout 0: last capture = 1
3746      ^          a      ^          a
3747   0: abcdef   0: abcdef
3748   1: abc   1: abc
3749    
3750  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3751  Capturing subpattern count = 1  Capturing subpattern count = 1
3752  No options  No options
3753  First char = 'a'  First char = 'a'
3754  Need char = 'z'  Need char = 'z'
3755      abcxyz\C+      abcxyz\C+
3756  Callout 1: last capture = 1  Callout 1: last capture = 1
3757   0: <unset>   0: <unset>
3758   1: abc   1: abc
# Line 3827  Callout 2: last capture = -1 Line 3764  Callout 2: last capture = -1
3764      ^          a      ^          a
3765   0: abcxyz   0: abcxyz
3766    
3767  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3768  Capturing subpattern count = 1  Capturing subpattern count = 1
3769    Max lookbehind = 3
3770  No options  No options
3771  First char = 'x'  First char = 'x'
3772  Need char = 'z'  Need char = 'z'
# Line 3840  Callout 0: last capture = 1 Line 3778  Callout 0: last capture = 1
3778         ^       )         ^       )
3779   0: xyz   0: xyz
3780   1: abc   1: abc
3781    
3782  /a(b+)(c*)(?C1)/  /a(b+)(c*)(?C1)/I
3783  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3784  No options  No options
3785  First char = 'a'  First char = 'a'
3786  Need char = 'b'  Need char = 'b'
# Line 3867  Callout data = 1 Line 3804  Callout data = 1
3804  Callout data = 1  Callout data = 1
3805  No match  No match
3806    
3807  /a(b+?)(c*?)(?C1)/  /a(b+?)(c*?)(?C1)/I
3808  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3809  No options  No options
3810  First char = 'a'  First char = 'a'
3811  Need char = 'b'  Need char = 'b'
# Line 3892  Callout data = 1 Line 3828  Callout data = 1
3828    1 ^        ^    1 ^        ^
3829  Callout data = 1  Callout data = 1
3830  No match  No match
3831    
3832  /(?C)abc/  /(?C)abc/I
3833  Capturing subpattern count = 0  Capturing subpattern count = 0
3834  No options  No options
3835  First char = 'a'  First char = 'a'
3836  Need char = 'c'  Need char = 'c'
3837    
3838  /(?C)^abc/  /(?C)^abc/I
3839  Capturing subpattern count = 0  Capturing subpattern count = 0
3840  Options: anchored  Options: anchored
3841  No first char  No first char
3842  No need char  No need char
3843    
3844  /(?C)a|b/S  /(?C)a|b/IS
3845  Capturing subpattern count = 0  Capturing subpattern count = 0
3846  No options  No options
3847  No first char  No first char
3848  No need char  No need char
3849    Subject length lower bound = 1
3850  Starting byte set: a b  Starting byte set: a b
3851    
3852  /(?R)/  /(?R)/I
3853  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3854    
3855  /(a|(?R))/  /(a|(?R))/I
3856  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3857    
3858  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3859  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3860    
3861  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3862  Capturing subpattern count = 3  Capturing subpattern count = 3
3863  No options  No options
3864  First char = 'x'  First char = 'x'
# Line 3950  No need char Line 3887  No need char
3887   3: xxab   3: xxab
3888      *** Failers      *** Failers
3889  No match  No match
3890      xyab      xyab
3891  No match  No match
3892    
3893  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3894  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3895    
3896  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3897  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3898    
3899  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3900  Capturing subpattern count = 1  Capturing subpattern count = 1
3901    May match empty string
3902  Options: anchored  Options: anchored
3903  No first char  No first char
3904  No need char  No need char
# Line 3970  No need char Line 3908  No need char
3908      a(b)c      a(b)c
3909   0: a(b)c   0: a(b)c
3910   1: c   1: c
3911      a(b(c))d      a(b(c))d
3912   0: a(b(c))d   0: a(b(c))d
3913   1: d   1: d
3914      *** Failers)      *** Failers)
3915  No match  No match
3916      a(b(c)d      a(b(c)d
3917  No match  No match
3918    
3919  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3920  Capturing subpattern count = 1  Capturing subpattern count = 1
3921  Options: anchored  Options: anchored
3922  No first char  No first char
# Line 3993  Need char = '<' Line 3931  Need char = '<'
3931   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3932   1: (1(2)3)   1: (1(2)3)
3933    
3934  /(a(?1)b)/D  /(a(?1)b)/DZ
3935  ------------------------------------------------------------------  ------------------------------------------------------------------
3936    0  16 Bra 0          Bra
3937    3  10 Bra 1          CBra 1
3938    6     a          a
3939    8   3 Recurse          Recurse
3940   11     b          b
3941   13  10 Ket          Ket
3942   16  16 Ket          Ket
3943   19     End          End
3944  ------------------------------------------------------------------  ------------------------------------------------------------------
3945  Capturing subpattern count = 1  Capturing subpattern count = 1
3946  No options  No options
3947  First char = 'a'  First char = 'a'
3948  Need char = 'b'  Need char = 'b'
3949    
3950  /(a(?1)+b)/D  /(a(?1)+b)/DZ
3951  ------------------------------------------------------------------  ------------------------------------------------------------------
3952    0  22 Bra 0          Bra
3953    3  16 Bra 1          CBra 1
3954    6     a          a
3955    8   6 Bra 0          Once
3956   11   3 Recurse          Recurse
3957   14   6 KetRmax          KetRmax
3958   17     b          b
3959   19  16 Ket          Ket
3960   22  22 Ket          Ket
3961   25     End          End
3962  ------------------------------------------------------------------  ------------------------------------------------------------------
3963  Capturing subpattern count = 1  Capturing subpattern count = 1
3964  No options  No options
3965  First char = 'a'  First char = 'a'
3966  Need char = 'b'  Need char = 'b'
3967    
3968  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3969  Capturing subpattern count = 4  Capturing subpattern count = 2
3970  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  
3971  No first char  No first char
3972  No need char  No need char
3973      12      12
# Line 4081  No need char Line 3984  No need char
3984  No match  No match
3985      ((2+2)*-3)-7)      ((2+2)*-3)-7)
3986  No match  No match
3987    
3988  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
3989  Capturing subpattern count = 2  Capturing subpattern count = 2
3990  Options: anchored  Options: anchored
3991  No first char  No first char
# Line 4091  No need char Line 3994  No need char
3994   0: xyz   0: xyz
3995   1: xyz   1: xyz
3996   2: y   2: y
3997      xxyzxyzz      xxyzxyzz
3998   0: xxyzxyzz   0: xxyzxyzz
3999   1: xxyzxyzz   1: xxyzxyzz
4000   2: xyzxyz   2: xyzxyz
# Line 4099  No need char Line 4002  No need char
4002  No match  No match
4003      xxyzz      xxyzz
4004  No match  No match
4005      xxyzxyzxyzz      xxyzxyzxyzz
4006  No match  No match
4007    
4008  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4009  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4010  Options: extended  Options: extended
4011  First char = '<'  First char = '<'
4012  Need char = '>'  Need char = '>'
# Line 4124  Need char = '>' Line 4026  Need char = '>'
4026   0: <def>   0: <def>
4027   1: <def>   1: <def>
4028   2: <def>   2: <def>
4029      <abc<>def>      <abc<>def>
4030   0: <abc<>def>   0: <abc<>def>
4031   1: <abc<>def>   1: <abc<>def>
4032   2: <abc<>def>   2: <abc<>def>
4033      <abc<>      <abc<>
4034   0: <>   0: <>
4035   1: <>   1: <>
4036   2: <>   2: <>
# Line 4137  No match Line 4039  No match
4039      <abc      <abc
4040  No match  No match
4041    
4042  /(?1)/  /(?1)/I
4043  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4044    
4045  /((?2)(abc)/  /((?2)(abc)/I
4046  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4047    
4048  /^(abc)def(?1)/  /^(abc)def(?1)/I
4049  Capturing subpattern count = 1  Capturing subpattern count = 1
4050  Options: anchored  Options: anchored
4051  No first char  No first char
# Line 4152  No need char Line 4054  No need char
4054   0: abcdefabc   0: abcdefabc
4055   1: abc   1: abc
4056    
4057  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4058  Capturing subpattern count = 1  Capturing subpattern count = 1
4059  Options: anchored  Options: anchored
4060  No first char  No first char
# Line 4163  No need char Line 4065  No need char
4065      a=b      a=b
4066   0: a=b   0: a=b
4067   1: a   1: a
4068      a=bc      a=bc
4069   0: a=bc   0: a=bc
4070   1: a   1: a
4071    
4072  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4073  Capturing subpattern count = 2  Capturing subpattern count = 2
4074  Options: anchored  Options: anchored
4075  No first char  No first char
# Line 4180  No need char Line 4082  No need char
4082   0: a=b   0: a=b
4083   1: a   1: a
4084   2: b   2: b
4085      a=bc      a=bc
4086   0: a=bc   0: a=bc
4087   1: a   1: a
4088   2: c   2: c
4089    
4090  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4091  ------------------------------------------------------------------  ------------------------------------------------------------------
4092    0  28 Bra 0          Bra
4093    3     a          a
4094    5   5 Bra 1          CBra 1
4095    8     b          b
4096   10   5 Alt          Alt
4097   13     c          c
4098   15  10 Ket          Ket
4099   18     d          d
4100   20   5 Bra 2          CBra 2
4101   23     e          e
4102   25   5 Ket          Ket
4103   28  28 Ket          Ket
4104   31     End          End
4105  ------------------------------------------------------------------  ------------------------------------------------------------------