1__END__
2# NAME \N{U+too large} on 64-bit machine
3# SKIP ? use Config; $Config{uvsize} < 8 && "Not 64 bit"
4qr/\N{U+7FFFFFFFFFFFFFFF}/;
5qr/\N{U+1_0000_0000_0000_0000}/;
6EXPECT
7Use of code point 0x1_0000_0000_0000_0000 is not allowed; the permissible max is 0x7FFFFFFFFFFFFFFF in regex; marked by <-- HERE in m/\N{U+1_0000_0000_0000_0000 <-- HERE }/ at - line 2.
8########
9# NAME \N{U+too large} on 32-bit machine
10# SKIP ? use Config; $Config{uvsize} > 4 && "Not 32 bit"
11qr/\N{U+7FFFFFFF}/;
12qr/\N{U+1_0000_0000}/;
13EXPECT
14Use of code point 0x1_0000_0000 is not allowed; the permissible max is 0x7FFFFFFF in regex; marked by <-- HERE in m/\N{U+1_0000_0000 <-- HERE }/ at - line 2.
15########
16# NAME \N{U+100.too large} on 64-bit machine
17# SKIP ? use Config; $Config{uvsize} < 8 && "Not 64 bit"
18qr/\N{U+100.7FFFFFFFFFFFFFFF}/;
19qr/\N{U+100.1_0000_0000_0000_0000}/;
20EXPECT
21Use of code point 0x1_0000_0000_0000_0000 is not allowed; the permissible max is 0x7FFFFFFFFFFFFFFF in regex; marked by <-- HERE in m/\N{U+100.1_0000_0000_0000_0000 <-- HERE }/ at - line 2.
22########
23# NAME \N{U+100.too large} on 32-bit machine
24# SKIP ? use Config; $Config{uvsize} > 4 && "Not 32 bit"
25qr/\N{U+100.7FFFFFFF}/;
26qr/\N{U+100.1_0000_0000}/;
27EXPECT
28Use of code point 0x1_0000_0000 is not allowed; the permissible max is 0x7FFFFFFF in regex; marked by <-- HERE in m/\N{U+100.1_0000_0000 <-- HERE }/ at - line 2.
29########
30# NAME \N{U+.}
31my $p00="\\N{U+.}"; qr/$p00/;
32EXPECT
33Invalid hexadecimal number in \N{U+...} in regex; marked by <-- HERE in m/\N{U+. <-- HERE }/ at - line 1.
34########
35# NAME \N{U+100.}
36my $p00="\\N{U+100.}"; qr/$p00/;
37EXPECT
38Invalid hexadecimal number in \N{U+...} in regex; marked by <-- HERE in m/\N{U+100. <-- HERE }/ at - line 1.
39########
40# NAME \N{U+_100}
41my $p00="\\N{U+_100}"; qr/$p00/;
42EXPECT
43Invalid hexadecimal number in \N{U+...} in regex; marked by <-- HERE in m/\N{U+_ <-- HERE 100}/ at - line 1.
44########
45# NAME \N{U+100_}
46my $p00="\\N{U+100_}"; qr/$p00/;
47EXPECT
48Invalid hexadecimal number in \N{U+...} in regex; marked by <-- HERE in m/\N{U+100_ <-- HERE }/ at - line 1.
49########
50# NAME [\xDF\N{U+.}]
51# SKIP ? ord("A") != 65 && "Test valid only on ASCII machines"
52my $p00="[\\xDF\\N{U+.}]"; qr/$p00/ui;
53# The sharp s under /i recodes the parse, and this was causing a segfault when
54# the error message referred to the original pattern
55EXPECT
56Invalid hexadecimal number in \N{U+...} in regex; marked by <-- HERE in m/[\xDF\N{U+. <-- HERE }]/ at - line 1.
57########
58# NAME [\x59\N{U+.}]
59# SKIP ? ord("A") == 65 && "Test valid only on EBCDIC machines"
60my $p00="[\\x59\\N{U+.}]"; qr/$p00/ui;
61# The sharp s under /i recodes the parse, and this was causing a segfault when
62# the error message referred to the original pattern
63EXPECT
64Invalid hexadecimal number in \N{U+...} in regex; marked by <-- HERE in m/[\x59\N{U+. <-- HERE }]/ at - line 1.
65########
66# NAME \N{U+...} leading underscore not allowed, medial is allowed
67my $p00='\N{U+FF_FF}'; qr/$p00/;
68$p00='\N{U+_FF}'; qr/$p00/;
69EXPECT
70Invalid hexadecimal number in \N{U+...} in regex; marked by <-- HERE in m/\N{U+_ <-- HERE FF}/ at - line 2.
71########
72# NAME ${^RE_COMPILE_RECURSION_LIMIT} [perl #131551]
73BEGIN { ${^RE_COMPILE_RECURSION_LIMIT} = ${^RE_COMPILE_RECURSION_LIMIT} = 2; }
74qr/(a)/;
75qr/((a))/;
76EXPECT
77Too many nested open parens in regex; marked by <-- HERE in m/(( <-- HERE a))/ at - line 3.
78########
79# NAME \K not permitted in lookahead
80qr/(?=a\Ka)a/;
81EXPECT
82\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(?=a\K <-- HERE a)a/ at - line 1.
83########
84# NAME \K not permitted in lookahead (alpha)
85no warnings 'experimental::alpha_assertions';
86qr/(*positive_lookahead:a\Ka)a/;
87EXPECT
88\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(*positive_lookahead:a\K <-- HERE a)a/ at - line 2.
89########
90# NAME \K not permitted in negative lookahead
91qr/(?!a\Ka)a/;
92EXPECT
93\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(?!a\K <-- HERE a)a/ at - line 1.
94########
95# NAME \K not permitted in negative lookahead (alpha)
96no warnings 'experimental::alpha_assertions';
97qr/(*negative_lookahead:a\Ka)a/;
98EXPECT
99\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(*negative_lookahead:a\K <-- HERE a)a/ at - line 2.
100########
101# NAME \K not permitted in lookbehind
102qr/(?<=a\Ka)a/;
103EXPECT
104\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(?<=a\K <-- HERE a)a/ at - line 1.
105########
106# NAME \K not permitted in lookbehind (alpha)
107no warnings 'experimental::alpha_assertions';
108qr/(*positive_lookbehind:a\Ka)a/;
109EXPECT
110\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(*positive_lookbehind:a\K <-- HERE a)a/ at - line 2.
111########
112# NAME \K not permitted in negative lookbehind
113qr/(?<!a\Ka)a/;
114EXPECT
115\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(?<!a\K <-- HERE a)a/ at - line 1.
116########
117# NAME \K not permitted in negative lookbehind (alpha)
118no warnings 'experimental::alpha_assertions';
119qr/(*negative_lookbehind:a\Ka)a/;
120EXPECT
121\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(*negative_lookbehind:a\K <-- HERE a)a/ at - line 2.
122########
123# NAME \K nesting in lookahead after lookahead
124qr{(?=(?=x)x\K)x};
125EXPECT
126\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(?=(?=x)x\K <-- HERE )x/ at - line 1.
127########
128# NAME \K nesting in lookahead after negative lookahead
129qr{(?=(?!y)x\K)x};
130EXPECT
131\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(?=(?!y)x\K <-- HERE )x/ at - line 1.
132########
133# NAME \K nesting in lookahead in negative lookahead
134qr{(?=(?!y\K)x)x};
135EXPECT
136\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(?=(?!y\K <-- HERE )x)x/ at - line 1.
137########
138# NAME \K nesting in lookahead in lookahead
139qr{(?=(?=x\K)x)x};
140EXPECT
141\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(?=(?=x\K <-- HERE )x)x/ at - line 1.
142########
143# NAME \K nesting in lookbehind after lookbehind
144qr{(?<=(?<=x)x\K)x};
145EXPECT
146\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(?<=(?<=x)x\K <-- HERE )x/ at - line 1.
147########
148# NAME \K nesting in lookahead after lookbehind
149qr{(?=(?<=x)x\K)x};
150EXPECT
151\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(?=(?<=x)x\K <-- HERE )x/ at - line 1.
152########
153# NAME \K nesting in lookbehind after lookahead
154qr{(?<=(?=x)x\K)x};
155EXPECT
156\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(?<=(?=x)x\K <-- HERE )x/ at - line 1.
157########
158# NAME \K nesting in negative lookbehind after lookahead
159qr{(?<!(?=x)x\K)x};
160EXPECT
161\K not permitted in lookahead/lookbehind in regex; marked by <-- HERE in m/(?<!(?=x)x\K <-- HERE )x/ at - line 1.
162########
163# NAME \K is permitted after the lookahead GH#18123
164qr/(?=(?=x)x)\K/;
165qr/(?!(?=x)x)\K/;
166qr/(?=(?!x)x)\K/;
167qr/(?!(?!x)x)\K/;
168qr/(?<=(?=x)x)\K/;
169qr/(?<!(?=x)x)\K/;
170qr/(?<=(?!x)x)\K/;
171qr/(?<!(?!x)x)\K/;
172qr/(?=(?<=x)x)\K/;
173qr/(?!(?<=x)x)\K/;
174qr/(?=(?<!x)x)\K/;
175qr/(?!(?<!x)x)\K/;
176qr/(?<=(?<=x)x)\K/;
177qr/(?<!(?<=x)x)\K/;
178qr/(?<=(?<!x)x)\K/;
179qr/(?<!(?<!x)x)\K/;
180EXPECT
181OPTIONS nonfatal
182