github的一些开源项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1074 lines
30 KiB

# 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 - compiled block : 168
Memory allocation - code portion : 32
------------------------------------------------------------------
0 12 Bra
3 6 CBra 1
7 /i b
9 6 Ket
12 12 Ket
15 End
------------------------------------------------------------------
/(?s)(.*X|^B)/
Memory allocation - compiled block : 184
Memory allocation - code portion : 48
------------------------------------------------------------------
0 20 Bra
3 8 CBra 1
7 AllAny*
9 X
11 6 Alt
14 ^
15 B
17 14 Ket
20 20 Ket
23 End
------------------------------------------------------------------
/(?s:.*X|^B)/
Memory allocation - compiled block : 182
Memory allocation - code portion : 46
------------------------------------------------------------------
0 19 Bra
3 7 Bra
6 AllAny*
8 X
10 6 Alt
13 ^
14 B
16 13 Ket
19 19 Ket
22 End
------------------------------------------------------------------
/^[[:alnum:]]/
Memory allocation - compiled block : 186
Memory allocation - code portion : 50
------------------------------------------------------------------
0 21 Bra
3 ^
4 [0-9A-Za-z]
21 21 Ket
24 End
------------------------------------------------------------------
/#/Ix
Memory allocation - compiled block : 150
Memory allocation - code portion : 14
------------------------------------------------------------------
0 3 Bra
3 3 Ket
6 End
------------------------------------------------------------------
Capture group count = 0
May match empty string
Options: extended
Subject length lower bound = 0
/a#/Ix
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 a
5 5 Ket
8 End
------------------------------------------------------------------
Capture group count = 0
Options: extended
First code unit = 'a'
Subject length lower bound = 1
/x?+/
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 x?+
5 5 Ket
8 End
------------------------------------------------------------------
/x++/
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 x++
5 5 Ket
8 End
------------------------------------------------------------------
/x{1,3}+/
Memory allocation - compiled block : 160
Memory allocation - code portion : 24
------------------------------------------------------------------
0 8 Bra
3 x
5 x{0,2}+
8 8 Ket
11 End
------------------------------------------------------------------
/(x)*+/
Memory allocation - compiled block : 170
Memory allocation - code portion : 34
------------------------------------------------------------------
0 13 Bra
3 Braposzero
4 6 CBraPos 1
8 x
10 6 KetRpos
13 13 Ket
16 End
------------------------------------------------------------------
/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/
Memory allocation - compiled block : 302
Memory allocation - code portion : 166
------------------------------------------------------------------
0 79 Bra
3 ^
4 72 CBra 1
8 6 CBra 2
12 a+
14 6 Ket
17 22 CBra 3
21 [ab]+?
39 22 Ket
42 22 CBra 4
46 [bc]+
64 22 Ket
67 6 CBra 5
71 \w*+
73 6 Ket
76 72 Ket
79 79 Ket
82 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 - compiled block : 1788
Memory allocation - code portion : 1652
------------------------------------------------------------------
0 822 Bra
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
821 \b
822 822 Ket
825 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 - compiled block : 1768
Memory allocation - code portion : 1632
------------------------------------------------------------------
0 812 Bra
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
811 \b
812 812 Ket
815 End
------------------------------------------------------------------
/(a(?1)b)/
Memory allocation - compiled block : 178
Memory allocation - code portion : 42
------------------------------------------------------------------
0 17 Bra
3 11 CBra 1
7 a
9 3 Recurse
12 b
14 11 Ket
17 17 Ket
20 End
------------------------------------------------------------------
/(a(?1)+b)/
Memory allocation - compiled block : 190
Memory allocation - code portion : 54
------------------------------------------------------------------
0 23 Bra
3 17 CBra 1
7 a
9 6 SBra
12 3 Recurse
15 6 KetRmax
18 b
20 17 Ket
23 23 Ket
26 End
------------------------------------------------------------------
/a(?P<name1>b|c)d(?P<longername2>e)/
Memory allocation - compiled block : 256
Memory allocation - code portion : 68
------------------------------------------------------------------
0 30 Bra
3 a
5 6 CBra 1
9 b
11 5 Alt
14 c
16 11 Ket
19 d
21 6 CBra 2
25 e
27 6 Ket
30 30 Ket
33 End
------------------------------------------------------------------
/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/
Memory allocation - compiled block : 238
Memory allocation - code portion : 84
------------------------------------------------------------------
0 38 Bra
3 23 Bra
6 a
8 15 CBra 1
12 c
14 6 CBra 2
18 d
20 6 Ket
23 15 Ket
26 23 Ket
29 6 CBra 3
33 a
35 6 Ket
38 38 Ket
41 End
------------------------------------------------------------------
/(?P<a>a)...(?P=a)bbb(?P>a)d/
Memory allocation - compiled block : 206
Memory allocation - code portion : 64
------------------------------------------------------------------
0 28 Bra
3 6 CBra 1
7 a
9 6 Ket
12 Any
13 Any
14 Any
15 \1
17 bbb
23 3 Recurse
26 d
28 28 Ket
31 End
------------------------------------------------------------------
/abc(?C255)de(?C)f/
Memory allocation - compiled block : 198
Memory allocation - code portion : 62
------------------------------------------------------------------
0 27 Bra
3 abc
9 Callout 255 10 1
15 de
19 Callout 0 16 1
25 f
27 27 Ket
30 End
------------------------------------------------------------------
/abcde/auto_callout
Memory allocation - compiled block : 242
Memory allocation - code portion : 106
------------------------------------------------------------------
0 49 Bra
3 Callout 255 0 1
9 a
11 Callout 255 1 1
17 b
19 Callout 255 2 1
25 c
27 Callout 255 3 1
33 d
35 Callout 255 4 1
41 e
43 Callout 255 5 0
49 49 Ket
52 End
------------------------------------------------------------------
/\x{100}/utf
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 \x{100}
5 5 Ket
8 End
------------------------------------------------------------------
/\x{1000}/utf
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 \x{1000}
5 5 Ket
8 End
------------------------------------------------------------------
/\x{10000}/utf
Memory allocation - compiled block : 156
Memory allocation - code portion : 20
------------------------------------------------------------------
0 6 Bra
3 \x{10000}
6 6 Ket
9 End
------------------------------------------------------------------
/\x{100000}/utf
Memory allocation - compiled block : 156
Memory allocation - code portion : 20
------------------------------------------------------------------
0 6 Bra
3 \x{100000}
6 6 Ket
9 End
------------------------------------------------------------------
/\x{10ffff}/utf
Memory allocation - compiled block : 156
Memory allocation - code portion : 20
------------------------------------------------------------------
0 6 Bra
3 \x{10ffff}
6 6 Ket
9 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 - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 \x{ff}
5 5 Ket
8 End
------------------------------------------------------------------
/[\x{100}]/utf
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 \x{100}
5 5 Ket
8 End
------------------------------------------------------------------
/\x80/utf
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 \x{80}
5 5 Ket
8 End
------------------------------------------------------------------
/\xff/utf
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 \x{ff}
5 5 Ket
8 End
------------------------------------------------------------------
/\x{0041}\x{2262}\x{0391}\x{002e}/I,utf
Memory allocation - compiled block : 166
Memory allocation - code portion : 30
------------------------------------------------------------------
0 11 Bra
3 A\x{2262}\x{391}.
11 11 Ket
14 End
------------------------------------------------------------------
Capture group 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 - compiled block : 162
Memory allocation - code portion : 26
------------------------------------------------------------------
0 9 Bra
3 \x{d55c}\x{ad6d}\x{c5b4}
9 9 Ket
12 End
------------------------------------------------------------------
Capture group count = 0
Options: utf
First code unit = \x{d55c}
Last code unit = \x{c5b4}
Subject length lower bound = 3
/\x{65e5}\x{672c}\x{8a9e}/I,utf
Memory allocation - compiled block : 162
Memory allocation - code portion : 26
------------------------------------------------------------------
0 9 Bra
3 \x{65e5}\x{672c}\x{8a9e}
9 9 Ket
12 End
------------------------------------------------------------------
Capture group count = 0
Options: utf
First code unit = \x{65e5}
Last code unit = \x{8a9e}
Subject length lower bound = 3
/[\x{100}]/utf
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 \x{100}
5 5 Ket
8 End
------------------------------------------------------------------
/[Z\x{100}]/utf
Memory allocation - compiled block : 196
Memory allocation - code portion : 60
------------------------------------------------------------------
0 26 Bra
3 [Z\x{100}]
26 26 Ket
29 End
------------------------------------------------------------------
/^[\x{100}\E-\Q\E\x{150}]/utf
Memory allocation - compiled block : 168
Memory allocation - code portion : 32
------------------------------------------------------------------
0 12 Bra
3 ^
4 [\x{100}-\x{150}]
12 12 Ket
15 End
------------------------------------------------------------------
/^[\QĀ\E-\QŐ\E]/utf
Memory allocation - compiled block : 168
Memory allocation - code portion : 32
------------------------------------------------------------------
0 12 Bra
3 ^
4 [\x{100}-\x{150}]
12 12 Ket
15 End
------------------------------------------------------------------
/^[\QĀ\E-\QŐ\E/utf
Failed: error 106 at offset 13: missing terminating ] for character class
/[\p{L}]/
Memory allocation - compiled block : 166
Memory allocation - code portion : 30
------------------------------------------------------------------
0 11 Bra
3 [\p{L}]
11 11 Ket
14 End
------------------------------------------------------------------
/[\p{^L}]/
Memory allocation - compiled block : 166
Memory allocation - code portion : 30
------------------------------------------------------------------
0 11 Bra
3 [\P{L}]
11 11 Ket
14 End
------------------------------------------------------------------
/[\P{L}]/
Memory allocation - compiled block : 166
Memory allocation - code portion : 30
------------------------------------------------------------------
0 11 Bra
3 [\P{L}]
11 11 Ket
14 End
------------------------------------------------------------------
/[\P{^L}]/
Memory allocation - compiled block : 166
Memory allocation - code portion : 30
------------------------------------------------------------------
0 11 Bra
3 [\p{L}]
11 11 Ket
14 End
------------------------------------------------------------------
/[abc\p{L}\x{0660}]/utf
Memory allocation - compiled block : 202
Memory allocation - code portion : 66
------------------------------------------------------------------
0 29 Bra
3 [a-c\p{L}\x{660}]
29 29 Ket
32 End
------------------------------------------------------------------
/[\p{Nd}]/utf
Memory allocation - compiled block : 166
Memory allocation - code portion : 30
------------------------------------------------------------------
0 11 Bra
3 [\p{Nd}]
11 11 Ket
14 End
------------------------------------------------------------------
/[\p{Nd}+-]+/utf
Memory allocation - compiled block : 200
Memory allocation - code portion : 64
------------------------------------------------------------------
0 28 Bra
3 [+\-\p{Nd}]++
28 28 Ket
31 End
------------------------------------------------------------------
/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
Memory allocation - compiled block : 172
Memory allocation - code portion : 36
------------------------------------------------------------------
0 14 Bra
3 /i A\x{391}\x{10427}\x{ff3a}\x{1fb0}
14 14 Ket
17 End
------------------------------------------------------------------
/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
Memory allocation - compiled block : 172
Memory allocation - code portion : 36
------------------------------------------------------------------
0 14 Bra
3 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
14 14 Ket
17 End
------------------------------------------------------------------
/[\x{105}-\x{109}]/i,utf
Memory allocation - compiled block : 166
Memory allocation - code portion : 30
------------------------------------------------------------------
0 11 Bra
3 [\x{104}-\x{109}]
11 11 Ket
14 End
------------------------------------------------------------------
/( ( (?(1)0|) )* )/x
Memory allocation - compiled block : 206
Memory allocation - code portion : 70
------------------------------------------------------------------
0 31 Bra
3 25 CBra 1
7 Brazero
8 17 SCBra 2
12 7 Cond
15 1 Cond ref
17 0
19 3 Alt
22 10 Ket
25 17 KetRmax
28 25 Ket
31 31 Ket
34 End
------------------------------------------------------------------
/( (?(1)0|)* )/x
Memory allocation - compiled block : 192
Memory allocation - code portion : 56
------------------------------------------------------------------
0 24 Bra
3 18 CBra 1
7 Brazero
8 7 SCond
11 1 Cond ref
13 0
15 3 Alt
18 10 KetRmax
21 18 Ket
24 24 Ket
27 End
------------------------------------------------------------------
/[a]/
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 a
5 5 Ket
8 End
------------------------------------------------------------------
/[a]/utf
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 a
5 5 Ket
8 End
------------------------------------------------------------------
/[\xaa]/
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 \x{aa}
5 5 Ket
8 End
------------------------------------------------------------------
/[\xaa]/utf
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 \x{aa}
5 5 Ket
8 End
------------------------------------------------------------------
/[^a]/
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 [^a]
5 5 Ket
8 End
------------------------------------------------------------------
/[^a]/utf
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 [^a]
5 5 Ket
8 End
------------------------------------------------------------------
/[^\xaa]/
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 [^\x{aa}]
5 5 Ket
8 End
------------------------------------------------------------------
/[^\xaa]/utf
Memory allocation - compiled block : 154
Memory allocation - code portion : 18
------------------------------------------------------------------
0 5 Bra
3 [^\x{aa}]
5 5 Ket
8 End
------------------------------------------------------------------
#pattern -memory
/[^\d]/utf,ucp
------------------------------------------------------------------
0 11 Bra
3 [^\p{Nd}]
11 11 Ket
14 End
------------------------------------------------------------------
/[[:^alpha:][:^cntrl:]]+/utf,ucp
------------------------------------------------------------------
0 15 Bra
3 [\P{L}\P{Cc}]++
15 15 Ket
18 End
------------------------------------------------------------------
/[[:^cntrl:][:^alpha:]]+/utf,ucp
------------------------------------------------------------------
0 15 Bra
3 [\P{Cc}\P{L}]++
15 15 Ket
18 End
------------------------------------------------------------------
/[[:alpha:]]+/utf,ucp
------------------------------------------------------------------
0 12 Bra
3 [\p{L}]++
12 12 Ket
15 End
------------------------------------------------------------------
/[[:^alpha:]\S]+/utf,ucp
------------------------------------------------------------------
0 15 Bra
3 [\P{L}\P{Xsp}]++
15 15 Ket
18 End
------------------------------------------------------------------
/abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/
------------------------------------------------------------------
0 70 Bra
3 abc
9 6 CBra 1
13 d
15 5 Alt
18 e
20 11 Ket
23 *THEN
24 x
26 13 CBra 2
30 123
36 *THEN
37 4
39 28 Alt
42 567
48 6 CBra 3
52 b
54 5 Alt
57 q
59 11 Ket
62 *THEN
63 xx
67 41 Ket
70 70 Ket
73 End
------------------------------------------------------------------
/(((a\2)|(a*)\g<-1>))*a?/
------------------------------------------------------------------
0 46 Bra
3 Brazero
4 37 SCBra 1
8 15 CBra 2
12 8 CBra 3
16 a
18 \2
20 8 Ket
23 15 Alt
26 6 CBra 4
30 a*
32 6 Ket
35 26 Recurse
38 30 Ket
41 37 KetRmax
44 a?+
46 46 Ket
49 End
------------------------------------------------------------------
/((?+1)(\1))/
------------------------------------------------------------------
0 22 Bra
3 16 CBra 1
7 10 Recurse
10 6 CBra 2
14 \1
16 6 Ket
19 16 Ket
22 22 Ket
25 End
------------------------------------------------------------------
"(?1)(?#?'){2}(a)"
------------------------------------------------------------------
0 18 Bra
3 9 Recurse
6 9 Recurse
9 6 CBra 1
13 a
15 6 Ket
18 18 Ket
21 End
------------------------------------------------------------------
/.((?2)(?R)|\1|$)()/
------------------------------------------------------------------
0 33 Bra
3 Any
4 10 CBra 1
8 26 Recurse
11 0 Recurse
14 5 Alt
17 \1
19 4 Alt
22 $
23 19 Ket
26 4 CBra 2
30 4 Ket
33 33 Ket
36 End
------------------------------------------------------------------
/.((?3)(?R)()(?2)|\1|$)()/
------------------------------------------------------------------
0 43 Bra
3 Any
4 20 CBra 1
8 36 Recurse
11 0 Recurse
14 4 CBra 2
18 4 Ket
21 14 Recurse
24 5 Alt
27 \1
29 4 Alt
32 $
33 29 Ket
36 4 CBra 3
40 4 Ket
43 43 Ket
46 End
------------------------------------------------------------------
/(?1)()((((((\1++))\x85)+)|))/
------------------------------------------------------------------
0 69 Bra
3 6 Recurse
6 4 CBra 1
10 4 Ket
13 53 CBra 2
17 43 CBra 3
21 36 CBra 4
25 29 CBra 5
29 20 CBra 6
33 13 CBra 7
37 6 Once
40 \1+
43 6 Ket
46 13 Ket
49 20 Ket
52 \x{85}
54 29 KetRmax
57 36 Ket
60 3 Alt
63 46 Ket
66 53 Ket
69 69 Ket
72 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 when it fails in two modes, the error offset differs. It also varies
# with link size - hence multiple tests with different values.
/(?'ABC'\[[bar](]{792}*THEN:\[A]{255}\[)]{793}/expand,-fullbincode,parens_nest_limit=1000
/(?'ABC'\[[bar](]{793}*THEN:\[A]{255}\[)]{794}/expand,-fullbincode,parens_nest_limit=1000
/(?'ABC'\[[bar](]{1793}*THEN:\[A]{255}\[)]{1794}/expand,-fullbincode,parens_nest_limit=2000
Failed: error 186 at offset 12820: regular expression is too complicated
/(?(1)(?1)){8,}+()/debug
------------------------------------------------------------------
0 110 Bra
3 97 Once
6 8 Cond
9 1 Cond ref
11 103 Recurse
14 8 Ket
17 8 Cond
20 1 Cond ref
22 103 Recurse
25 8 Ket
28 8 Cond
31 1 Cond ref
33 103 Recurse
36 8 Ket
39 8 Cond
42 1 Cond ref
44 103 Recurse
47 8 Ket
50 8 Cond
53 1 Cond ref
55 103 Recurse
58 8 Ket
61 8 Cond
64 1 Cond ref
66 103 Recurse
69 8 Ket
72 8 Cond
75 1 Cond ref
77 103 Recurse
80 8 Ket
83 14 SBraPos
86 8 SCond
89 1 Cond ref
91 103 Recurse
94 8 Ket
97 14 KetRpos
100 97 Ket
103 4 CBra 1
107 4 Ket
110 110 Ket
113 End
------------------------------------------------------------------
Capture group 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 58 Bra
3 45 Once
6 5 Cond
9 1 Cond ref
11 10 Alt
14 a
16 51 Recurse
19 b
21 15 Ket
24 21 SBraPos
27 5 SCond
30 1 Cond ref
32 10 Alt
35 a
37 51 Recurse
40 b
42 15 Ket
45 21 KetRpos
48 45 Ket
51 4 CBra 1
55 4 Ket
58 58 Ket
61 End
------------------------------------------------------------------
Capture group 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 194 Bra
3 61 CBra 1
7 3 Recurse
10 131 Recurse
13 138 Recurse
16 145 Recurse
19 152 Recurse
22 159 Recurse
25 166 Recurse
28 173 Recurse
31 180 Recurse
34 180 Recurse
37 173 Recurse
40 166 Recurse
43 159 Recurse
46 152 Recurse
49 145 Recurse
52 138 Recurse
55 131 Recurse
58 3 Recurse
61 0 Recurse
64 61 Ket
67 61 SCBra 1
71 3 Recurse
74 131 Recurse
77 138 Recurse
80 145 Recurse
83 152 Recurse
86 159 Recurse
89 166 Recurse
92 173 Recurse
95 180 Recurse
98 180 Recurse
101 173 Recurse
104 166 Recurse
107 159 Recurse
110 152 Recurse
113 145 Recurse
116 138 Recurse
119 131 Recurse
122 3 Recurse
125 0 Recurse
128 61 KetRmax
131 4 CBra 2
135 4 Ket
138 4 CBra 3
142 4 Ket
145 4 CBra 4
149 4 Ket
152 4 CBra 5
156 4 Ket
159 4 CBra 6
163 4 Ket
166 4 CBra 7
170 4 Ket
173 4 CBra 8
177 4 Ket
180 4 CBra 9
184 4 Ket
187 4 CBra 10
191 4 Ket
194 194 Ket
197 End
------------------------------------------------------------------
Capture group count = 10
May match empty string
Subject length lower bound = 0
/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/
Failed: error 114 at offset 509: missing closing parenthesis
/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/-fullbincode
#pattern -fullbincode
/\[()]{65535}/expand
# End of testinput8