blob: 91993b2409607d48dc8de587cc5522fc7570fc11 [file] [log] [blame]
# There are two sorts of patterns in this test. A number of them are
# representative patterns whose lengths and offsets are checked. This is just a
# doublecheck test to ensure the sizes don't go horribly wrong when something
# is changed. The operation of these patterns is checked in other tests.
#
# This file also contains tests whose output varies with code unit size and/or
# link size. Unicode support is required for these tests. There are separate
# output files for each code unit size and link size.
#pattern fullbincode,memory
/((?i)b)/
Memory allocation (code space): 25
------------------------------------------------------------------
0 19 Bra
5 9 CBra 1
12 /i b
14 9 Ket
19 19 Ket
24 End
------------------------------------------------------------------
/(?s)(.*X|^B)/
Memory allocation (code space): 35
------------------------------------------------------------------
0 29 Bra
5 11 CBra 1
12 AllAny*
14 X
16 8 Alt
21 ^
22 B
24 19 Ket
29 29 Ket
34 End
------------------------------------------------------------------
/(?s:.*X|^B)/
Memory allocation (code space): 33
------------------------------------------------------------------
0 27 Bra
5 9 Bra
10 AllAny*
12 X
14 8 Alt
19 ^
20 B
22 17 Ket
27 27 Ket
32 End
------------------------------------------------------------------
/^[[:alnum:]]/
Memory allocation (code space): 45
------------------------------------------------------------------
0 39 Bra
5 ^
6 [0-9A-Za-z]
39 39 Ket
44 End
------------------------------------------------------------------
/#/Ix
Memory allocation (code space): 11
------------------------------------------------------------------
0 5 Bra
5 5 Ket
10 End
------------------------------------------------------------------
Capturing subpattern count = 0
May match empty string
Options: extended
Subject length lower bound = 0
/a#/Ix
Memory allocation (code space): 13
------------------------------------------------------------------
0 7 Bra
5 a
7 7 Ket
12 End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: extended
First code unit = 'a'
Subject length lower bound = 1
/x?+/
Memory allocation (code space): 13
------------------------------------------------------------------
0 7 Bra
5 x?+
7 7 Ket
12 End
------------------------------------------------------------------
/x++/
Memory allocation (code space): 13
------------------------------------------------------------------
0 7 Bra
5 x++
7 7 Ket
12 End
------------------------------------------------------------------
/x{1,3}+/
Memory allocation (code space): 17
------------------------------------------------------------------
0 11 Bra
5 x
7 x{0,2}+
11 11 Ket
16 End
------------------------------------------------------------------
/(x)*+/
Memory allocation (code space): 26
------------------------------------------------------------------
0 20 Bra
5 Braposzero
6 9 CBraPos 1
13 x
15 9 KetRpos
20 20 Ket
25 End
------------------------------------------------------------------
/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
Memory allocation (code space): 144
------------------------------------------------------------------
0 138 Bra
5 ^
6 127 CBra 1
13 9 CBra 2
20 a+
22 9 Ket
27 41 CBra 3
34 [ab]+?
68 41 Ket
73 41 CBra 4
80 [bc]+
114 41 Ket
119 9 CBra 5
126 \w*+
128 9 Ket
133 127 Ket
138 138 Ket
143 End
------------------------------------------------------------------
"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"
Memory allocation (code space): 830
------------------------------------------------------------------
0 824 Bra
5 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
823 \b
824 824 Ket
829 End
------------------------------------------------------------------
"\$\<\.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"
Memory allocation (code space): 820
------------------------------------------------------------------
0 814 Bra
5 $<.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
813 \b
814 814 Ket
819 End
------------------------------------------------------------------
/(a(?1)b)/
Memory allocation (code space): 32
------------------------------------------------------------------
0 26 Bra
5 16 CBra 1
12 a
14 5 Recurse
19 b
21 16 Ket
26 26 Ket
31 End
------------------------------------------------------------------
/(a(?1)+b)/
Memory allocation (code space): 42
------------------------------------------------------------------
0 36 Bra
5 26 CBra 1
12 a
14 10 Once
19 5 Recurse
24 10 KetRmax
29 b
31 26 Ket
36 36 Ket
41 End
------------------------------------------------------------------
/a(?P<name1>b|c)d(?P<longername2>e)/
Memory allocation (code space): 50
------------------------------------------------------------------
0 44 Bra
5 a
7 9 CBra 1
14 b
16 7 Alt
21 c
23 16 Ket
28 d
30 9 CBra 2
37 e
39 9 Ket
44 44 Ket
49 End
------------------------------------------------------------------
/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
Memory allocation (code space): 65
------------------------------------------------------------------
0 59 Bra
5 35 Bra
10 a
12 23 CBra 1
19 c
21 9 CBra 2
28 d
30 9 Ket
35 23 Ket
40 35 Ket
45 9 CBra 3
52 a
54 9 Ket
59 59 Ket
64 End
------------------------------------------------------------------
/(?P<a>a)...(?P=a)bbb(?P>a)d/
Memory allocation (code space): 44
------------------------------------------------------------------
0 38 Bra
5 9 CBra 1
12 a
14 9 Ket
19 Any
20 Any
21 Any
22 \1
25 bbb
31 5 Recurse
36 d
38 38 Ket
43 End
------------------------------------------------------------------
/abc(?C255)de(?C)f/
Memory allocation (code space): 43
------------------------------------------------------------------
0 37 Bra
5 abc
11 Callout 255 10 1
21 de
25 Callout 0 16 1
35 f
37 37 Ket
42 End
------------------------------------------------------------------
/abcde/auto_callout
Memory allocation (code space): 81
------------------------------------------------------------------
0 75 Bra
5 Callout 255 0 1
15 a
17 Callout 255 1 1
27 b
29 Callout 255 2 1
39 c
41 Callout 255 3 1
51 d
53 Callout 255 4 1
63 e
65 Callout 255 5 0
75 75 Ket
80 End
------------------------------------------------------------------
/\x{100}/utf
Memory allocation (code space): 14
------------------------------------------------------------------
0 8 Bra
5 \x{100}
8 8 Ket
13 End
------------------------------------------------------------------
/\x{1000}/utf
Memory allocation (code space): 15
------------------------------------------------------------------
0 9 Bra
5 \x{1000}
9 9 Ket
14 End
------------------------------------------------------------------
/\x{10000}/utf
Memory allocation (code space): 16
------------------------------------------------------------------
0 10 Bra
5 \x{10000}
10 10 Ket
15 End
------------------------------------------------------------------
/\x{100000}/utf
Memory allocation (code space): 16
------------------------------------------------------------------
0 10 Bra
5 \x{100000}
10 10 Ket
15 End
------------------------------------------------------------------
/\x{10ffff}/utf
Memory allocation (code space): 16
------------------------------------------------------------------
0 10 Bra
5 \x{10ffff}
10 10 Ket
15 End
------------------------------------------------------------------
/\x{110000}/utf
Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
/[\x{ff}]/utf
Memory allocation (code space): 14
------------------------------------------------------------------
0 8 Bra
5 \x{ff}
8 8 Ket
13 End
------------------------------------------------------------------
/[\x{100}]/utf
Memory allocation (code space): 14
------------------------------------------------------------------
0 8 Bra
5 \x{100}
8 8 Ket
13 End
------------------------------------------------------------------
/\x80/utf
Memory allocation (code space): 14
------------------------------------------------------------------
0 8 Bra
5 \x{80}
8 8 Ket
13 End
------------------------------------------------------------------
/\xff/utf
Memory allocation (code space): 14
------------------------------------------------------------------
0 8 Bra
5 \x{ff}
8 8 Ket
13 End
------------------------------------------------------------------
/\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
Memory allocation (code space): 22
------------------------------------------------------------------
0 16 Bra
5 A\x{2262}\x{391}.
16 16 Ket
21 End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf
First code unit = 'A'
Last code unit = '.'
Subject length lower bound = 4
/\x{D55c}\x{ad6d}\x{C5B4}/I,utf
Memory allocation (code space): 23
------------------------------------------------------------------
0 17 Bra
5 \x{d55c}\x{ad6d}\x{c5b4}
17 17 Ket
22 End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf
First code unit = \xed
Last code unit = \xb4
Subject length lower bound = 3
/\x{65e5}\x{672c}\x{8a9e}/I,utf
Memory allocation (code space): 23
------------------------------------------------------------------
0 17 Bra
5 \x{65e5}\x{672c}\x{8a9e}
17 17 Ket
22 End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf
First code unit = \xe6
Last code unit = \x9e
Subject length lower bound = 3
/[\x{100}]/utf
Memory allocation (code space): 14
------------------------------------------------------------------
0 8 Bra
5 \x{100}
8 8 Ket
13 End
------------------------------------------------------------------
/[Z\x{100}]/utf
Memory allocation (code space): 53
------------------------------------------------------------------
0 47 Bra
5 [Z\x{100}]
47 47 Ket
52 End
------------------------------------------------------------------
/^[\x{100}\E-\Q\E\x{150}]/utf
Memory allocation (code space): 24
------------------------------------------------------------------
0 18 Bra
5 ^
6 [\x{100}-\x{150}]
18 18 Ket
23 End
------------------------------------------------------------------
/^[\QĀ\E-\QŐ\E]/utf
Memory allocation (code space): 24
------------------------------------------------------------------
0 18 Bra
5 ^
6 [\x{100}-\x{150}]
18 18 Ket
23 End
------------------------------------------------------------------
/^[\QĀ\E-\QŐ\E/utf
Failed: error 106 at offset 15: missing terminating ] for character class
/[\p{L}]/
Memory allocation (code space): 21
------------------------------------------------------------------
0 15 Bra
5 [\p{L}]
15 15 Ket
20 End
------------------------------------------------------------------
/[\p{^L}]/
Memory allocation (code space): 21
------------------------------------------------------------------
0 15 Bra
5 [\P{L}]
15 15 Ket
20 End
------------------------------------------------------------------
/[\P{L}]/
Memory allocation (code space): 21
------------------------------------------------------------------
0 15 Bra
5 [\P{L}]
15 15 Ket
20 End
------------------------------------------------------------------
/[\P{^L}]/
Memory allocation (code space): 21
------------------------------------------------------------------
0 15 Bra
5 [\p{L}]
15 15 Ket
20 End
------------------------------------------------------------------
/[abc\p{L}\x{0660}]/utf
Memory allocation (code space): 56
------------------------------------------------------------------
0 50 Bra
5 [a-c\p{L}\x{660}]
50 50 Ket
55 End
------------------------------------------------------------------
/[\p{Nd}]/utf
Memory allocation (code space): 21
------------------------------------------------------------------
0 15 Bra
5 [\p{Nd}]
15 15 Ket
20 End
------------------------------------------------------------------
/[\p{Nd}+-]+/utf
Memory allocation (code space): 54
------------------------------------------------------------------
0 48 Bra
5 [+\-\p{Nd}]++
48 48 Ket
53 End
------------------------------------------------------------------
/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
Memory allocation (code space): 29
------------------------------------------------------------------
0 23 Bra
5 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
23 23 Ket
28 End
------------------------------------------------------------------
/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
Memory allocation (code space): 29
------------------------------------------------------------------
0 23 Bra
5 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
23 23 Ket
28 End
------------------------------------------------------------------
/[\x{105}-\x{109}]/i,utf
Memory allocation (code space): 23
------------------------------------------------------------------
0 17 Bra
5 [\x{104}-\x{109}]
17 17 Ket
22 End
------------------------------------------------------------------
/( ( (?(1)0|) )* )/x
Memory allocation (code space): 56
------------------------------------------------------------------
0 50 Bra
5 40 CBra 1
12 Brazero
13 27 SCBra 2
20 10 Cond
25 1 Cond ref
28 0
30 5 Alt
35 15 Ket
40 27 KetRmax
45 40 Ket
50 50 Ket
55 End
------------------------------------------------------------------
/( (?(1)0|)* )/x
Memory allocation (code space): 44
------------------------------------------------------------------
0 38 Bra
5 28 CBra 1
12 Brazero
13 10 SCond
18 1 Cond ref
21 0
23 5 Alt
28 15 KetRmax
33 28 Ket
38 38 Ket
43 End
------------------------------------------------------------------
/[a]/
Memory allocation (code space): 13
------------------------------------------------------------------
0 7 Bra
5 a
7 7 Ket
12 End
------------------------------------------------------------------
/[a]/utf
Memory allocation (code space): 13
------------------------------------------------------------------
0 7 Bra
5 a
7 7 Ket
12 End
------------------------------------------------------------------
/[\xaa]/
Memory allocation (code space): 13
------------------------------------------------------------------
0 7 Bra
5 \x{aa}
7 7 Ket
12 End
------------------------------------------------------------------
/[\xaa]/utf
Memory allocation (code space): 14
------------------------------------------------------------------
0 8 Bra
5 \x{aa}
8 8 Ket
13 End
------------------------------------------------------------------
/[^a]/
Memory allocation (code space): 13
------------------------------------------------------------------
0 7 Bra
5 [^a]
7 7 Ket
12 End
------------------------------------------------------------------
/[^a]/utf
Memory allocation (code space): 13
------------------------------------------------------------------
0 7 Bra
5 [^a]
7 7 Ket
12 End
------------------------------------------------------------------
/[^\xaa]/
Memory allocation (code space): 13
------------------------------------------------------------------
0 7 Bra
5 [^\x{aa}]
7 7 Ket
12 End
------------------------------------------------------------------
/[^\xaa]/utf
Memory allocation (code space): 14
------------------------------------------------------------------
0 8 Bra
5 [^\x{aa}]
8 8 Ket
13 End
------------------------------------------------------------------
#pattern -memory
/[^\d]/utf,ucp
------------------------------------------------------------------
0 15 Bra
5 [^\p{Nd}]
15 15 Ket
20 End
------------------------------------------------------------------
/[[:^alpha:][:^cntrl:]]+/utf,ucp
------------------------------------------------------------------
0 19 Bra
5 [\P{L}\P{Cc}]++
19 19 Ket
24 End
------------------------------------------------------------------
/[[:^cntrl:][:^alpha:]]+/utf,ucp
------------------------------------------------------------------
0 19 Bra
5 [\P{Cc}\P{L}]++
19 19 Ket
24 End
------------------------------------------------------------------
/[[:alpha:]]+/utf,ucp
------------------------------------------------------------------
0 16 Bra
5 [\p{L}]++
16 16 Ket
21 End
------------------------------------------------------------------
/[[:^alpha:]\S]+/utf,ucp
------------------------------------------------------------------
0 19 Bra
5 [\P{L}\P{Xsp}]++
19 19 Ket
24 End
------------------------------------------------------------------
/abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/
------------------------------------------------------------------
0 93 Bra
5 abc
11 9 CBra 1
18 d
20 7 Alt
25 e
27 16 Ket
32 *THEN
33 x
35 16 CBra 2
42 123
48 *THEN
49 4
51 37 Alt
56 567
62 9 CBra 3
69 b
71 7 Alt
76 q
78 16 Ket
83 *THEN
84 xx
88 53 Ket
93 93 Ket
98 End
------------------------------------------------------------------
/(((a\2)|(a*)\g<-1>))*a?/
------------------------------------------------------------------
0 83 Bra
5 Brazero
6 70 SCBra 1
13 58 Once
18 24 CBra 2
25 12 CBra 3
32 a
34 \2
37 12 Ket
42 24 Alt
47 9 CBra 4
54 a*
56 9 Ket
61 47 Recurse
66 48 Ket
71 58 Ket
76 70 KetRmax
81 a?+
83 83 Ket
88 End
------------------------------------------------------------------
/((?+1)(\1))/
------------------------------------------------------------------
0 47 Bra
5 37 Once
10 27 CBra 1
17 22 Recurse
22 10 CBra 2
29 \1
32 10 Ket
37 27 Ket
42 37 Ket
47 47 Ket
52 End
------------------------------------------------------------------
"(?1)(?#?'){2}(a)"
------------------------------------------------------------------
0 49 Bra
5 10 Once
10 35 Recurse
15 10 Ket
20 10 Once
25 35 Recurse
30 10 Ket
35 9 CBra 1
42 a
44 9 Ket
49 49 Ket
54 End
------------------------------------------------------------------
/.((?2)(?R)|\1|$)()/
------------------------------------------------------------------
0 64 Bra
5 Any
6 41 Once
11 17 CBra 1
18 52 Recurse
23 0 Recurse
28 8 Alt
33 \1
36 6 Alt
41 $
42 31 Ket
47 41 Ket
52 7 CBra 2
59 7 Ket
64 64 Ket
69 End
------------------------------------------------------------------
/.((?3)(?R)()(?2)|\1|$)()/
------------------------------------------------------------------
0 81 Bra
5 Any
6 58 Once
11 34 CBra 1
18 69 Recurse
23 0 Recurse
28 7 CBra 2
35 7 Ket
40 28 Recurse
45 8 Alt
50 \1
53 6 Alt
58 $
59 48 Ket
64 58 Ket
69 7 CBra 3
76 7 Ket
81 81 Ket
86 End
------------------------------------------------------------------
/(?1)()((((((\1++))\x85)+)|))/
------------------------------------------------------------------
0 115 Bra
5 10 Recurse
10 7 CBra 1
17 7 Ket
22 88 CBra 2
29 71 CBra 3
36 59 CBra 4
43 47 CBra 5
50 33 CBra 6
57 21 CBra 7
64 9 Once
69 \1+
73 9 Ket
78 21 Ket
83 33 Ket
88 \x{85}
90 47 KetRmax
95 59 Ket
100 5 Alt
105 76 Ket
110 88 Ket
115 115 Ket
120 End
------------------------------------------------------------------
# Check the absolute limit on nesting (?| etc. This varies with code unit
# width because the workspace is a different number of bytes. It will fail
# with link size 2 in 8-bit and 16-bit but not in 32-bit.
/(?|(?|(?J:(?|(?x:(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|(?|
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
/parens_nest_limit=1000,-fullbincode
# Use "expand" to create some very long patterns with nested parentheses, in
# order to test workspace overflow. Again, this varies with code unit width,
# and even with it fails in two modes, the error offset differs. It also varies
# with link size - hence multiple tests with different values.
/(?'ABC'\[[bar](]{105}*THEN:\[A]{255}\[)]{106}/expand,-fullbincode
/(?'ABC'\[[bar](]{106}*THEN:\[A]{255}\[)]{107}/expand,-fullbincode
/(?'ABC'\[[bar](]{159}*THEN:\[A]{255}\[)]{160}/expand,-fullbincode
/(?'ABC'\[[bar](]{199}*THEN:\[A]{255}\[)]{200}/expand,-fullbincode
/(?'ABC'\[[bar](]{299}*THEN:\[A]{255}\[)]{300}/expand,-fullbincode
Failed: error 186 at offset 1224: regular expression is too complicated
/(?(1)(?1)){8,}+()/debug
------------------------------------------------------------------
0 181 Bra
5 159 Once
10 13 Cond
15 1 Cond ref
18 169 Recurse
23 13 Ket
28 13 Cond
33 1 Cond ref
36 169 Recurse
41 13 Ket
46 13 Cond
51 1 Cond ref
54 169 Recurse
59 13 Ket
64 13 Cond
69 1 Cond ref
72 169 Recurse
77 13 Ket
82 13 Cond
87 1 Cond ref
90 169 Recurse
95 13 Ket
100 13 Cond
105 1 Cond ref
108 169 Recurse
113 13 Ket
118 13 Cond
123 1 Cond ref
126 169 Recurse
131 13 Ket
136 23 SBraPos
141 13 SCond
146 1 Cond ref
149 169 Recurse
154 13 Ket
159 23 KetRpos
164 159 Ket
169 7 CBra 1
176 7 Ket
181 181 Ket
186 End
------------------------------------------------------------------
Capturing subpattern count = 1
Max back reference = 1
May match empty string
Subject length lower bound = 0
abcd
0:
1:
/(?(1)|a(?1)b){2,}+()/debug
------------------------------------------------------------------
0 91 Bra
5 69 Once
10 8 Cond
15 1 Cond ref
18 14 Alt
23 a
25 79 Recurse
30 b
32 22 Ket
37 32 SBraPos
42 8 SCond
47 1 Cond ref
50 14 Alt
55 a
57 79 Recurse
62 b
64 22 Ket
69 32 KetRpos
74 69 Ket
79 7 CBra 1
86 7 Ket
91 91 Ket
96 End
------------------------------------------------------------------
Capturing subpattern count = 1
Max back reference = 1
May match empty string
Subject length lower bound = 0
abcde
No match
/((?1)(?2)(?3)(?4)(?5)(?6)(?7)(?8)(?9)(?9)(?8)(?7)(?6)(?5)(?4)(?3)(?2)(?1)(?0)){2,}()()()()()()()()()/debug
------------------------------------------------------------------
0 327 Bra
5 102 CBra 1
12 5 Recurse
17 219 Recurse
22 231 Recurse
27 243 Recurse
32 255 Recurse
37 267 Recurse
42 279 Recurse
47 291 Recurse
52 303 Recurse
57 303 Recurse
62 291 Recurse
67 279 Recurse
72 267 Recurse
77 255 Recurse
82 243 Recurse
87 231 Recurse
92 219 Recurse
97 5 Recurse
102 0 Recurse
107 102 Ket
112 102 SCBra 1
119 5 Recurse
124 219 Recurse
129 231 Recurse
134 243 Recurse
139 255 Recurse
144 267 Recurse
149 279 Recurse
154 291 Recurse
159 303 Recurse
164 303 Recurse
169 291 Recurse
174 279 Recurse
179 267 Recurse
184 255 Recurse
189 243 Recurse
194 231 Recurse
199 219 Recurse
204 5 Recurse
209 0 Recurse
214 102 KetRmax
219 7 CBra 2
226 7 Ket
231 7 CBra 3
238 7 Ket
243 7 CBra 4
250 7 Ket
255 7 CBra 5
262 7 Ket
267 7 CBra 6
274 7 Ket
279 7 CBra 7
286 7 Ket
291 7 CBra 8
298 7 Ket
303 7 CBra 9
310 7 Ket
315 7 CBra 10
322 7 Ket
327 327 Ket
332 End
------------------------------------------------------------------
Capturing subpattern count = 10
May match empty string
Subject length lower bound = 0
# End of testinput8