/[pcre2]/code/trunk/testdata/testinput4
ViewVC logotype

Contents of /code/trunk/testdata/testinput4

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1091 - (show annotations)
Mon May 13 16:26:17 2019 UTC (21 months, 2 weeks ago) by ph10
File size: 50472 byte(s)
Fix crash when \X is used without UTF in JIT.
1 # This set of tests is for UTF support, including Unicode properties. The
2 # Unicode tests are all compatible with all versions of Perl >= 5.10, but
3 # some of the property tests may differ because of different versions of
4 # Unicode in use by PCRE2 and Perl.
5
6 #newline_default lf anycrlf any
7 #perltest
8
9 /a.b/utf
10 acb
11 a\x7fb
12 a\x{100}b
13 \= Expect no match
14 a\nb
15
16 /a(.{3})b/utf
17 a\x{4000}xyb
18 a\x{4000}\x7fyb
19 a\x{4000}\x{100}yb
20 \= Expect no match
21 a\x{4000}b
22 ac\ncb
23
24 /a(.*?)(.)/
25 a\xc0\x88b
26
27 /a(.*?)(.)/utf
28 a\x{100}b
29
30 /a(.*)(.)/
31 a\xc0\x88b
32
33 /a(.*)(.)/utf
34 a\x{100}b
35
36 /a(.)(.)/
37 a\xc0\x92bcd
38
39 /a(.)(.)/utf
40 a\x{240}bcd
41
42 /a(.?)(.)/
43 a\xc0\x92bcd
44
45 /a(.?)(.)/utf
46 a\x{240}bcd
47
48 /a(.??)(.)/
49 a\xc0\x92bcd
50
51 /a(.??)(.)/utf
52 a\x{240}bcd
53
54 /a(.{3})b/utf
55 a\x{1234}xyb
56 a\x{1234}\x{4321}yb
57 a\x{1234}\x{4321}\x{3412}b
58 \= Expect no match
59 a\x{1234}b
60 ac\ncb
61
62 /a(.{3,})b/utf
63 a\x{1234}xyb
64 a\x{1234}\x{4321}yb
65 a\x{1234}\x{4321}\x{3412}b
66 axxxxbcdefghijb
67 a\x{1234}\x{4321}\x{3412}\x{3421}b
68 \= Expect no match
69 a\x{1234}b
70
71 /a(.{3,}?)b/utf
72 a\x{1234}xyb
73 a\x{1234}\x{4321}yb
74 a\x{1234}\x{4321}\x{3412}b
75 axxxxbcdefghijb
76 a\x{1234}\x{4321}\x{3412}\x{3421}b
77 \= Expect no match
78 a\x{1234}b
79
80 /a(.{3,5})b/utf
81 a\x{1234}xyb
82 a\x{1234}\x{4321}yb
83 a\x{1234}\x{4321}\x{3412}b
84 axxxxbcdefghijb
85 a\x{1234}\x{4321}\x{3412}\x{3421}b
86 axbxxbcdefghijb
87 axxxxxbcdefghijb
88 \= Expect no match
89 a\x{1234}b
90 axxxxxxbcdefghijb
91
92 /a(.{3,5}?)b/utf
93 a\x{1234}xyb
94 a\x{1234}\x{4321}yb
95 a\x{1234}\x{4321}\x{3412}b
96 axxxxbcdefghijb
97 a\x{1234}\x{4321}\x{3412}\x{3421}b
98 axbxxbcdefghijb
99 axxxxxbcdefghijb
100 \= Expect no match
101 a\x{1234}b
102 axxxxxxbcdefghijb
103
104 /^[a\x{c0}]/utf
105 \= Expect no match
106 \x{100}
107
108 /(?<=aXb)cd/utf
109 aXbcd
110
111 /(?<=a\x{100}b)cd/utf
112 a\x{100}bcd
113
114 /(?<=a\x{100000}b)cd/utf
115 a\x{100000}bcd
116
117 /(?:\x{100}){3}b/utf
118 \x{100}\x{100}\x{100}b
119 \= Expect no match
120 \x{100}\x{100}b
121
122 /\x{ab}/utf
123 \x{ab}
124 \xc2\xab
125 \= Expect no match
126 \x00{ab}
127
128 /(?<=(.))X/utf
129 WXYZ
130 \x{256}XYZ
131 \= Expect no match
132 XYZ
133
134 /[^a]+/g,utf
135 bcd
136 \x{100}aY\x{256}Z
137
138 /^[^a]{2}/utf
139 \x{100}bc
140
141 /^[^a]{2,}/utf
142 \x{100}bcAa
143
144 /^[^a]{2,}?/utf
145 \x{100}bca
146
147 /[^a]+/gi,utf
148 bcd
149 \x{100}aY\x{256}Z
150
151 /^[^a]{2}/i,utf
152 \x{100}bc
153
154 /^[^a]{2,}/i,utf
155 \x{100}bcAa
156
157 /^[^a]{2,}?/i,utf
158 \x{100}bca
159
160 /\x{100}{0,0}/utf
161 abcd
162
163 /\x{100}?/utf
164 abcd
165 \x{100}\x{100}
166
167 /\x{100}{0,3}/utf
168 \x{100}\x{100}
169 \x{100}\x{100}\x{100}\x{100}
170
171 /\x{100}*/utf
172 abce
173 \x{100}\x{100}\x{100}\x{100}
174
175 /\x{100}{1,1}/utf
176 abcd\x{100}\x{100}\x{100}\x{100}
177
178 /\x{100}{1,3}/utf
179 abcd\x{100}\x{100}\x{100}\x{100}
180
181 /\x{100}+/utf
182 abcd\x{100}\x{100}\x{100}\x{100}
183
184 /\x{100}{3}/utf
185 abcd\x{100}\x{100}\x{100}XX
186
187 /\x{100}{3,5}/utf
188 abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
189
190 /\x{100}{3,}/utf
191 abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
192
193 /(?<=a\x{100}{2}b)X/utf,aftertext
194 Xyyya\x{100}\x{100}bXzzz
195
196 /\D*/utf
197 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
198
199 /\D*/utf
200 \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
201
202 /\D/utf
203 1X2
204 1\x{100}2
205
206 />\S/utf
207 > >X Y
208 > >\x{100} Y
209
210 /\d/utf
211 \x{100}3
212
213 /\s/utf
214 \x{100} X
215
216 /\D+/utf
217 12abcd34
218 \= Expect no match
219 1234
220
221 /\D{2,3}/utf
222 12abcd34
223 12ab34
224 \= Expect no match
225 1234
226 12a34
227
228 /\D{2,3}?/utf
229 12abcd34
230 12ab34
231 \= Expect no match
232 1234
233 12a34
234
235 /\d+/utf
236 12abcd34
237
238 /\d{2,3}/utf
239 12abcd34
240 1234abcd
241 \= Expect no match
242 1.4
243
244 /\d{2,3}?/utf
245 12abcd34
246 1234abcd
247 \= Expect no match
248 1.4
249
250 /\S+/utf
251 12abcd34
252 \= Expect no match
253 \ \
254
255 /\S{2,3}/utf
256 12abcd34
257 1234abcd
258 \= Expect no match
259 \ \
260
261 /\S{2,3}?/utf
262 12abcd34
263 1234abcd
264 \= Expect no match
265 \ \
266
267 />\s+</utf,aftertext
268 12> <34
269
270 />\s{2,3}</utf,aftertext
271 ab> <cd
272 ab> <ce
273 \= Expect no match
274 ab> <cd
275
276 />\s{2,3}?</utf,aftertext
277 ab> <cd
278 ab> <ce
279 \= Expect no match
280 ab> <cd
281
282 /\w+/utf
283 12 34
284 \= Expect no match
285 +++=*!
286
287 /\w{2,3}/utf
288 ab cd
289 abcd ce
290 \= Expect no match
291 a.b.c
292
293 /\w{2,3}?/utf
294 ab cd
295 abcd ce
296 \= Expect no match
297 a.b.c
298
299 /\W+/utf
300 12====34
301 \= Expect no match
302 abcd
303
304 /\W{2,3}/utf
305 ab====cd
306 ab==cd
307 \= Expect no match
308 a.b.c
309
310 /\W{2,3}?/utf
311 ab====cd
312 ab==cd
313 \= Expect no match
314 a.b.c
315
316 /[\x{100}]/utf
317 \x{100}
318 Z\x{100}
319 \x{100}Z
320
321 /[Z\x{100}]/utf
322 Z\x{100}
323 \x{100}
324 \x{100}Z
325
326 /[\x{100}\x{200}]/utf
327 ab\x{100}cd
328 ab\x{200}cd
329
330 /[\x{100}-\x{200}]/utf
331 ab\x{100}cd
332 ab\x{200}cd
333 ab\x{111}cd
334
335 /[z-\x{200}]/utf
336 ab\x{100}cd
337 ab\x{200}cd
338 ab\x{111}cd
339 abzcd
340 ab|cd
341
342 /[Q\x{100}\x{200}]/utf
343 ab\x{100}cd
344 ab\x{200}cd
345 Q?
346
347 /[Q\x{100}-\x{200}]/utf
348 ab\x{100}cd
349 ab\x{200}cd
350 ab\x{111}cd
351 Q?
352
353 /[Qz-\x{200}]/utf
354 ab\x{100}cd
355 ab\x{200}cd
356 ab\x{111}cd
357 abzcd
358 ab|cd
359 Q?
360
361 /[\x{100}\x{200}]{1,3}/utf
362 ab\x{100}cd
363 ab\x{200}cd
364 ab\x{200}\x{100}\x{200}\x{100}cd
365
366 /[\x{100}\x{200}]{1,3}?/utf
367 ab\x{100}cd
368 ab\x{200}cd
369 ab\x{200}\x{100}\x{200}\x{100}cd
370
371 /[Q\x{100}\x{200}]{1,3}/utf
372 ab\x{100}cd
373 ab\x{200}cd
374 ab\x{200}\x{100}\x{200}\x{100}cd
375
376 /[Q\x{100}\x{200}]{1,3}?/utf
377 ab\x{100}cd
378 ab\x{200}cd
379 ab\x{200}\x{100}\x{200}\x{100}cd
380
381 /(?<=[\x{100}\x{200}])X/utf
382 abc\x{200}X
383 abc\x{100}X
384 \= Expect no match
385 X
386
387 /(?<=[Q\x{100}\x{200}])X/utf
388 abc\x{200}X
389 abc\x{100}X
390 abQX
391 \= Expect no match
392 X
393
394 /(?<=[\x{100}\x{200}]{3})X/utf
395 abc\x{100}\x{200}\x{100}X
396 \= Expect no match
397 abc\x{200}X
398 X
399
400 /[^\x{100}\x{200}]X/utf
401 AX
402 \x{150}X
403 \x{500}X
404 \= Expect no match
405 \x{100}X
406 \x{200}X
407
408 /[^Q\x{100}\x{200}]X/utf
409 AX
410 \x{150}X
411 \x{500}X
412 \= Expect no match
413 \x{100}X
414 \x{200}X
415 QX
416
417 /[^\x{100}-\x{200}]X/utf
418 AX
419 \x{500}X
420 \= Expect no match
421 \x{100}X
422 \x{150}X
423 \x{200}X
424
425 /[z-\x{100}]/i,utf
426 z
427 Z
428 \x{100}
429 \= Expect no match
430 \x{102}
431 y
432
433 /[\xFF]/
434 >\xff<
435
436 /[\xff]/utf
437 >\x{ff}<
438
439 /[^\xFF]/
440 XYZ
441
442 /[^\xff]/utf
443 XYZ
444 \x{123}
445
446 /^[ac]*b/utf
447 \= Expect no match
448 xb
449
450 /^[ac\x{100}]*b/utf
451 \= Expect no match
452 xb
453
454 /^[^x]*b/i,utf
455 \= Expect no match
456 xb
457
458 /^[^x]*b/utf
459 \= Expect no match
460 xb
461
462 /^\d*b/utf
463 \= Expect no match
464 xb
465
466 /(|a)/g,utf
467 catac
468 a\x{256}a
469
470 /^\x{85}$/i,utf
471 \x{85}
472
473 /^ሴ/utf
474
475
476 /^\ሴ/utf
477
478
479 "(?s)(.{1,5})"utf
480 abcdefg
481 ab
482
483 /a*\x{100}*\w/utf
484 a
485
486 /\S\S/g,utf
487 A\x{a3}BC
488
489 /\S{2}/g,utf
490 A\x{a3}BC
491
492 /\W\W/g,utf
493 +\x{a3}==
494
495 /\W{2}/g,utf
496 +\x{a3}==
497
498 /\S/g,utf
499 \x{442}\x{435}\x{441}\x{442}
500
501 /[\S]/g,utf
502 \x{442}\x{435}\x{441}\x{442}
503
504 /\D/g,utf
505 \x{442}\x{435}\x{441}\x{442}
506
507 /[\D]/g,utf
508 \x{442}\x{435}\x{441}\x{442}
509
510 /\W/g,utf
511 \x{2442}\x{2435}\x{2441}\x{2442}
512
513 /[\W]/g,utf
514 \x{2442}\x{2435}\x{2441}\x{2442}
515
516 /[\S\s]*/utf
517 abc\n\r\x{442}\x{435}\x{441}\x{442}xyz
518
519 /[\x{41f}\S]/g,utf
520 \x{442}\x{435}\x{441}\x{442}
521
522 /.[^\S]./g,utf
523 abc def\x{442}\x{443}xyz\npqr
524
525 /.[^\S\n]./g,utf
526 abc def\x{442}\x{443}xyz\npqr
527
528 /[[:^alnum:]]/g,utf
529 +\x{2442}
530
531 /[[:^alpha:]]/g,utf
532 +\x{2442}
533
534 /[[:^ascii:]]/g,utf
535 A\x{442}
536
537 /[[:^blank:]]/g,utf
538 A\x{442}
539
540 /[[:^cntrl:]]/g,utf
541 A\x{442}
542
543 /[[:^digit:]]/g,utf
544 A\x{442}
545
546 /[[:^graph:]]/g,utf
547 \x19\x{e01ff}
548
549 /[[:^lower:]]/g,utf
550 A\x{422}
551
552 /[[:^print:]]/g,utf
553 \x{19}\x{e01ff}
554
555 /[[:^punct:]]/g,utf
556 A\x{442}
557
558 /[[:^space:]]/g,utf
559 A\x{442}
560
561 /[[:^upper:]]/g,utf
562 a\x{442}
563
564 /[[:^word:]]/g,utf
565 +\x{2442}
566
567 /[[:^xdigit:]]/g,utf
568 M\x{442}
569
570 /[^ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉƊƋƎƏƐƑƓƔƖƗƘƜƝƟƠƢƤƦƧƩƬƮƯƱƲƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶǷǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁΆΈΉΊΌΎΏΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫϒϓϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸԀԂԄԆԈԊԌԎԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸἈἉἊἋἌἍἎἏἘἙἚἛἜἝἨἩἪἫἬἭἮἯἸἹἺἻἼἽἾἿὈὉὊὋὌὍὙὛὝὟὨὩὪὫὬὭὮὯᾸᾹᾺΆῈΈῊΉῘῙῚΊῨῩῪΎῬῸΌῺΏabcdefghijklmnopqrstuvwxyzªµºßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżžſƀƃƅƈƌƍƒƕƙƚƛƞơƣƥƨƪƫƭưƴƶƹƺƽƾƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳȴȵȶȷȸȹȼȿɀɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΐάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϐϑϕϖϗϙϛϝϟϡϣϥϧϩϫϭϯϰϱϲϳϵϸϻϼабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹԁԃԅԇԉԋԍԏաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚẛạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹἀἁἂἃἄἅἆἇἐἑἒἓἔἕἠἡἢἣἤἥἦἧἰἱἲἳἴἵἶἷὀὁὂὃὄὅὐὑὒὓὔὕὖὗὠὡὢὣὤὥὦὧὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷιῂῃῄῆῇῐῑῒΐῖῗῠῡῢΰῤῥῦῧῲῳῴῶῷⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⴀⴁⴂⴃⴄⴅⴆⴇⴈⴉⴊⴋⴌⴍⴎⴏⴐⴑⴒⴓⴔⴕⴖⴗⴘⴙⴚⴛⴜⴝⴞⴟⴠⴡⴢⴣⴤⴥfffiflffifflſtstﬓﬔﬕﬖﬗ\d_^]/utf
571
572 /^[^d]*?$/
573 abc
574
575 /^[^d]*?$/utf
576 abc
577
578 /^[^d]*?$/i
579 abc
580
581 /^[^d]*?$/i,utf
582 abc
583
584 /(?i)[\xc3\xa9\xc3\xbd]|[\xc3\xa9\xc3\xbdA]/utf
585
586 /^[a\x{c0}]b/utf
587 \x{c0}b
588
589 /^([a\x{c0}]*?)aa/utf
590 a\x{c0}aaaa/
591
592 /^([a\x{c0}]*?)aa/utf
593 a\x{c0}aaaa/
594 a\x{c0}a\x{c0}aaa/
595
596 /^([a\x{c0}]*)aa/utf
597 a\x{c0}aaaa/
598 a\x{c0}a\x{c0}aaa/
599
600 /^([a\x{c0}]*)a\x{c0}/utf
601 a\x{c0}aaaa/
602 a\x{c0}a\x{c0}aaa/
603
604 /A*/g,utf
605 AAB\x{123}BAA
606
607 /(abc)\1/i,utf
608 \= Expect no match
609 abc
610
611 /(abc)\1/utf
612 \= Expect no match
613 abc
614
615 /a(*:a\x{1234}b)/utf,mark
616 abc
617
618 /a(*:a£b)/utf,mark
619 abc
620
621 # Noncharacters
622
623 /./utf
624 \x{fffe}
625 \x{ffff}
626 \x{1fffe}
627 \x{1ffff}
628 \x{2fffe}
629 \x{2ffff}
630 \x{3fffe}
631 \x{3ffff}
632 \x{4fffe}
633 \x{4ffff}
634 \x{5fffe}
635 \x{5ffff}
636 \x{6fffe}
637 \x{6ffff}
638 \x{7fffe}
639 \x{7ffff}
640 \x{8fffe}
641 \x{8ffff}
642 \x{9fffe}
643 \x{9ffff}
644 \x{afffe}
645 \x{affff}
646 \x{bfffe}
647 \x{bffff}
648 \x{cfffe}
649 \x{cffff}
650 \x{dfffe}
651 \x{dffff}
652 \x{efffe}
653 \x{effff}
654 \x{ffffe}
655 \x{fffff}
656 \x{10fffe}
657 \x{10ffff}
658 \x{fdd0}
659 \x{fdd1}
660 \x{fdd2}
661 \x{fdd3}
662 \x{fdd4}
663 \x{fdd5}
664 \x{fdd6}
665 \x{fdd7}
666 \x{fdd8}
667 \x{fdd9}
668 \x{fdda}
669 \x{fddb}
670 \x{fddc}
671 \x{fddd}
672 \x{fdde}
673 \x{fddf}
674 \x{fde0}
675 \x{fde1}
676 \x{fde2}
677 \x{fde3}
678 \x{fde4}
679 \x{fde5}
680 \x{fde6}
681 \x{fde7}
682 \x{fde8}
683 \x{fde9}
684 \x{fdea}
685 \x{fdeb}
686 \x{fdec}
687 \x{fded}
688 \x{fdee}
689 \x{fdef}
690
691 /^\d*\w{4}/utf
692 1234
693 \= Expect no match
694 123
695
696 /^[^b]*\w{4}/utf
697 aaaa
698 \= Expect no match
699 aaa
700
701 /^[^b]*\w{4}/i,utf
702 aaaa
703 \= Expect no match
704 aaa
705
706 /^\x{100}*.{4}/utf
707 \x{100}\x{100}\x{100}\x{100}
708 \= Expect no match
709 \x{100}\x{100}\x{100}
710
711 /^\x{100}*.{4}/i,utf
712 \x{100}\x{100}\x{100}\x{100}
713 \= Expect no match
714 \x{100}\x{100}\x{100}
715
716 /^a+[a\x{200}]/utf
717 aa
718
719 /^.\B.\B./utf
720 \x{10123}\x{10124}\x{10125}
721
722 /^#[^\x{ffff}]#[^\x{ffff}]#[^\x{ffff}]#/utf
723 #\x{10000}#\x{100}#\x{10ffff}#
724
725 # Unicode property support tests
726
727 /^\pC\pL\pM\pN\pP\pS\pZ</utf
728 \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
729 \np\x{300}9!\$ <
730 \= Expect no match
731 ap\x{300}9!\$ <
732
733 /^\PC/utf
734 X
735 \= Expect no match
736 \x7f
737
738 /^\PL/utf
739 9
740 \= Expect no match
741 \x{c0}
742
743 /^\PM/utf
744 X
745 \= Expect no match
746 \x{30f}
747
748 /^\PN/utf
749 X
750 \= Expect no match
751 \x{660}
752
753 /^\PP/utf
754 X
755 \= Expect no match
756 \x{66c}
757
758 /^\PS/utf
759 X
760 \= Expect no match
761 \x{f01}
762
763 /^\PZ/utf
764 X
765 \= Expect no match
766 \x{1680}
767
768 /^\p{Cc}/utf
769 \x{017}
770 \x{09f}
771 \= Expect no match
772 \x{0600}
773
774 /^\p{Cf}/utf
775 \x{601}
776 \= Expect no match
777 \x{09f}
778
779 /^\p{Cn}/utf
780 \x{e0000}
781 \= Expect no match
782 \x{09f}
783
784 /^\p{Co}/utf
785 \x{f8ff}
786 \= Expect no match
787 \x{09f}
788
789 /^\p{Ll}/utf
790 a
791 \= Expect no match
792 Z
793 \x{e000}
794
795 /^\p{Lm}/utf
796 \x{2b0}
797 \= Expect no match
798 a
799
800 /^\p{Lo}/utf
801 \x{1bb}
802 \x{3400}
803 \x{3401}
804 \x{4d00}
805 \x{4db4}
806 \x{4db5}
807 \= Expect no match
808 a
809 \x{2b0}
810 \x{4db6}
811
812 /^\p{Lt}/utf
813 \x{1c5}
814 \= Expect no match
815 a
816 \x{2b0}
817
818 /^\p{Lu}/utf
819 A
820 \= Expect no match
821 \x{2b0}
822
823 /^\p{Mc}/utf
824 \x{903}
825 \= Expect no match
826 X
827 \x{300}
828
829 /^\p{Me}/utf
830 \x{488}
831 \= Expect no match
832 X
833 \x{903}
834 \x{300}
835
836 /^\p{Mn}/utf
837 \x{300}
838 \= Expect no match
839 X
840 \x{903}
841
842 /^\p{Nd}+/utf
843 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
844 \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
845 \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
846 \= Expect no match
847 X
848
849 /^\p{Nl}/utf
850 \x{16ee}
851 \= Expect no match
852 X
853 \x{966}
854
855 /^\p{No}/utf
856 \x{b2}
857 \x{b3}
858 \= Expect no match
859 X
860 \x{16ee}
861
862 /^\p{Pc}/utf
863 \x5f
864 \x{203f}
865 \= Expect no match
866 X
867 -
868 \x{58a}
869
870 /^\p{Pd}/utf
871 -
872 \x{58a}
873 \= Expect no match
874 X
875 \x{203f}
876
877 /^\p{Pe}/utf
878 )
879 ]
880 }
881 \x{f3b}
882 \= Expect no match
883 X
884 \x{203f}
885 (
886 [
887 {
888 \x{f3c}
889
890 /^\p{Pf}/utf
891 \x{bb}
892 \x{2019}
893 \= Expect no match
894 X
895 \x{203f}
896
897 /^\p{Pi}/utf
898 \x{ab}
899 \x{2018}
900 \= Expect no match
901 X
902 \x{203f}
903
904 /^\p{Po}/utf
905 !
906 \x{37e}
907 \= Expect no match
908 X
909 \x{203f}
910
911 /^\p{Ps}/utf
912 (
913 [
914 {
915 \x{f3c}
916 \= Expect no match
917 X
918 )
919 ]
920 }
921 \x{f3b}
922
923 /^\p{Sk}/utf
924 \x{2c2}
925 \= Expect no match
926 X
927 \x{9f2}
928
929 /^\p{Sm}+/utf
930 +<|~\x{ac}\x{2044}
931 \= Expect no match
932 X
933 \x{9f2}
934
935 /^\p{So}/utf
936 \x{a6}
937 \x{482}
938 \= Expect no match
939 X
940 \x{9f2}
941
942 /^\p{Zl}/utf
943 \x{2028}
944 \= Expect no match
945 X
946 \x{2029}
947
948 /^\p{Zp}/utf
949 \x{2029}
950 \= Expect no match
951 X
952 \x{2028}
953
954 /\p{Nd}+(..)/utf
955 \x{660}\x{661}\x{662}ABC
956
957 /\p{Nd}+?(..)/utf
958 \x{660}\x{661}\x{662}ABC
959
960 /\p{Nd}{2,}(..)/utf
961 \x{660}\x{661}\x{662}ABC
962
963 /\p{Nd}{2,}?(..)/utf
964 \x{660}\x{661}\x{662}ABC
965
966 /\p{Nd}*(..)/utf
967 \x{660}\x{661}\x{662}ABC
968
969 /\p{Nd}*?(..)/utf
970 \x{660}\x{661}\x{662}ABC
971
972 /\p{Nd}{2}(..)/utf
973 \x{660}\x{661}\x{662}ABC
974
975 /\p{Nd}{2,3}(..)/utf
976 \x{660}\x{661}\x{662}ABC
977
978 /\p{Nd}{2,3}?(..)/utf
979 \x{660}\x{661}\x{662}ABC
980
981 /\p{Nd}?(..)/utf
982 \x{660}\x{661}\x{662}ABC
983
984 /\p{Nd}??(..)/utf
985 \x{660}\x{661}\x{662}ABC
986
987 /\p{Nd}*+(..)/utf
988 \x{660}\x{661}\x{662}ABC
989
990 /\p{Nd}*+(...)/utf
991 \x{660}\x{661}\x{662}ABC
992
993 /\p{Nd}*+(....)/utf
994 \= Expect no match
995 \x{660}\x{661}\x{662}ABC
996
997 /(?<=A\p{Nd})XYZ/utf
998 A2XYZ
999 123A5XYZPQR
1000 ABA\x{660}XYZpqr
1001 \= Expect no match
1002 AXYZ
1003 XYZ
1004
1005 /(?<!\pL)XYZ/utf
1006 1XYZ
1007 AB=XYZ..
1008 XYZ
1009 \= Expect no match
1010 WXYZ
1011
1012 /[\P{Nd}]+/utf
1013 abcd
1014 \= Expect no match
1015 1234
1016
1017 /\D+/utf
1018 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1019 \= Expect no match
1020 11111111111111111111111111111111111111111111111111111111111111111111111
1021
1022 /\P{Nd}+/utf
1023 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1024 \= Expect no match
1025 11111111111111111111111111111111111111111111111111111111111111111111111
1026
1027 /[\D]+/utf
1028 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1029 \= Expect no match
1030 11111111111111111111111111111111111111111111111111111111111111111111111
1031
1032 /[\P{Nd}]+/utf
1033 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1034 \= Expect no match
1035 11111111111111111111111111111111111111111111111111111111111111111111111
1036
1037 /[\D\P{Nd}]+/utf
1038 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1039 \= Expect no match
1040 11111111111111111111111111111111111111111111111111111111111111111111111
1041
1042 /\pL/utf
1043 a
1044 A
1045
1046 /\pL/i,utf
1047 a
1048 A
1049
1050 /\p{Lu}/utf
1051 A
1052 aZ
1053 \= Expect no match
1054 abc
1055
1056 /\p{Ll}/utf
1057 a
1058 Az
1059 \= Expect no match
1060 ABC
1061
1062 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
1063 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
1064 \= Expect no match
1065 a\x{391}\x{10427}\x{ff3a}\x{1fb0}
1066 A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
1067 A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
1068 A\x{391}\x{10427}\x{ff5a}\x{1fb0}
1069 A\x{391}\x{10427}\x{ff3a}\x{1fb8}
1070
1071 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
1072 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
1073 a\x{391}\x{10427}\x{ff3a}\x{1fb0}
1074 A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
1075 A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
1076 A\x{391}\x{10427}\x{ff5a}\x{1fb0}
1077 A\x{391}\x{10427}\x{ff3a}\x{1fb8}
1078
1079 /\x{391}+/i,utf
1080 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
1081
1082 /\x{391}{3,5}(.)/i,utf
1083 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
1084
1085 /\x{391}{3,5}?(.)/i,utf
1086 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
1087
1088 /[\x{391}\x{ff3a}]/i,utf
1089 \x{391}
1090 \x{ff3a}
1091 \x{3b1}
1092 \x{ff5a}
1093
1094 /^(\X*)C/utf
1095 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
1096 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
1097
1098 /^(\X*?)C/utf
1099 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
1100 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
1101
1102 /^(\X*)(.)/utf
1103 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
1104 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
1105
1106 /^(\X*?)(.)/utf
1107 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
1108 A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
1109
1110 /^\X(.)/utf
1111 \= Expect no match
1112 A\x{300}\x{301}\x{302}
1113
1114 /^\X{2,3}(.)/utf
1115 A\x{300}\x{301}B\x{300}X
1116 A\x{300}\x{301}B\x{300}C\x{300}\x{301}
1117 A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
1118 A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
1119
1120 /^\X{2,3}?(.)/utf
1121 A\x{300}\x{301}B\x{300}X
1122 A\x{300}\x{301}B\x{300}C\x{300}\x{301}
1123 A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
1124 A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
1125
1126 /^\X/utf
1127 A
1128 A\x{300}BC
1129 A\x{300}\x{301}\x{302}BC
1130 \x{300}
1131
1132 /^\p{Han}+/utf
1133 \x{2e81}\x{3007}\x{2f804}\x{31a0}
1134 \= Expect no match
1135 \x{2e7f}
1136
1137 /^\P{Katakana}+/utf
1138 \x{3105}
1139 \= Expect no match
1140 \x{30ff}
1141
1142 /^[\p{Arabic}]/utf
1143 \x{06e9}
1144 \x{060b}
1145 \= Expect no match
1146 X\x{06e9}
1147
1148 /^[\P{Yi}]/utf
1149 \x{2f800}
1150 \= Expect no match
1151 \x{a014}
1152 \x{a4c6}
1153
1154 /^\p{Any}X/utf
1155 AXYZ
1156 \x{1234}XYZ
1157 \= Expect no match
1158 X
1159
1160 /^\P{Any}X/utf
1161 \= Expect no match
1162 AX
1163
1164 /^\p{Any}?X/utf
1165 XYZ
1166 AXYZ
1167 \x{1234}XYZ
1168 \= Expect no match
1169 ABXYZ
1170
1171 /^\P{Any}?X/utf
1172 XYZ
1173 \= Expect no match
1174 AXYZ
1175 \x{1234}XYZ
1176 ABXYZ
1177
1178 /^\p{Any}+X/utf
1179 AXYZ
1180 \x{1234}XYZ
1181 A\x{1234}XYZ
1182 \= Expect no match
1183 XYZ
1184
1185 /^\P{Any}+X/utf
1186 \= Expect no match
1187 AXYZ
1188 \x{1234}XYZ
1189 A\x{1234}XYZ
1190 XYZ
1191
1192 /^\p{Any}*X/utf
1193 XYZ
1194 AXYZ
1195 \x{1234}XYZ
1196 A\x{1234}XYZ
1197
1198 /^\P{Any}*X/utf
1199 XYZ
1200 \= Expect no match
1201 AXYZ
1202 \x{1234}XYZ
1203 A\x{1234}XYZ
1204
1205 /^[\p{Any}]X/utf
1206 AXYZ
1207 \x{1234}XYZ
1208 \= Expect no match
1209 X
1210
1211 /^[\P{Any}]X/utf
1212 \= Expect no match
1213 AX
1214
1215 /^[\p{Any}]?X/utf
1216 XYZ
1217 AXYZ
1218 \x{1234}XYZ
1219 \= Expect no match
1220 ABXYZ
1221
1222 /^[\P{Any}]?X/utf
1223 XYZ
1224 \= Expect no match
1225 AXYZ
1226 \x{1234}XYZ
1227 ABXYZ
1228
1229 /^[\p{Any}]+X/utf
1230 AXYZ
1231 \x{1234}XYZ
1232 A\x{1234}XYZ
1233 \= Expect no match
1234 XYZ
1235
1236 /^[\P{Any}]+X/utf
1237 \= Expect no match
1238 AXYZ
1239 \x{1234}XYZ
1240 A\x{1234}XYZ
1241 XYZ
1242
1243 /^[\p{Any}]*X/utf
1244 XYZ
1245 AXYZ
1246 \x{1234}XYZ
1247 A\x{1234}XYZ
1248
1249 /^[\P{Any}]*X/utf
1250 XYZ
1251 \= Expect no match
1252 AXYZ
1253 \x{1234}XYZ
1254 A\x{1234}XYZ
1255
1256 /^\p{Any}{3,5}?/utf
1257 abcdefgh
1258 \x{1234}\n\r\x{3456}xyz
1259
1260 /^\p{Any}{3,5}/utf
1261 abcdefgh
1262 \x{1234}\n\r\x{3456}xyz
1263
1264 /^\P{Any}{3,5}?/utf
1265 \= Expect no match
1266 abcdefgh
1267 \x{1234}\n\r\x{3456}xyz
1268
1269 /^\p{L&}X/utf
1270 AXY
1271 aXY
1272 \x{1c5}XY
1273 \= Expect no match
1274 \x{1bb}XY
1275 \x{2b0}XY
1276 !XY
1277
1278 /^[\p{L&}]X/utf
1279 AXY
1280 aXY
1281 \x{1c5}XY
1282 \= Expect no match
1283 \x{1bb}XY
1284 \x{2b0}XY
1285 !XY
1286
1287 /^\p{L&}+X/utf
1288 AXY
1289 aXY
1290 AbcdeXyz
1291 \x{1c5}AbXY
1292 abcDEXypqreXlmn
1293 \= Expect no match
1294 \x{1bb}XY
1295 \x{2b0}XY
1296 !XY
1297
1298 /^[\p{L&}]+X/utf
1299 AXY
1300 aXY
1301 AbcdeXyz
1302 \x{1c5}AbXY
1303 abcDEXypqreXlmn
1304 \= Expect no match
1305 \x{1bb}XY
1306 \x{2b0}XY
1307 !XY
1308
1309 /^\p{L&}+?X/utf
1310 AXY
1311 aXY
1312 AbcdeXyz
1313 \x{1c5}AbXY
1314 abcDEXypqreXlmn
1315 \= Expect no match
1316 \x{1bb}XY
1317 \x{2b0}XY
1318 !XY
1319
1320 /^[\p{L&}]+?X/utf
1321 AXY
1322 aXY
1323 AbcdeXyz
1324 \x{1c5}AbXY
1325 abcDEXypqreXlmn
1326 \= Expect no match
1327 \x{1bb}XY
1328 \x{2b0}XY
1329 !XY
1330
1331 /^\P{L&}X/utf
1332 !XY
1333 \x{1bb}XY
1334 \x{2b0}XY
1335 \= Expect no match
1336 \x{1c5}XY
1337 AXY
1338
1339 /^[\P{L&}]X/utf
1340 !XY
1341 \x{1bb}XY
1342 \x{2b0}XY
1343 \= Expect no match
1344 \x{1c5}XY
1345 AXY
1346
1347 /^(\p{Z}[^\p{C}\p{Z}]+)*$/
1348 \xa0!
1349
1350 /^[\pL](abc)(?1)/
1351 AabcabcYZ
1352
1353 /([\pL]=(abc))*X/
1354 L=abcX
1355
1356 /^\p{Balinese}\p{Cuneiform}\p{Nko}\p{Phags_Pa}\p{Phoenician}/utf
1357 \x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900}
1358
1359 # Check property support in non-UTF mode
1360
1361 /\p{L}{4}/
1362 123abcdefg
1363 123abc\xc4\xc5zz
1364
1365 /\X{1,3}\d/
1366 \= Expect no match
1367 \x8aBCD
1368
1369 /\X?\d/
1370 \= Expect no match
1371 \x8aBCD
1372
1373 /\P{L}?\d/
1374 \= Expect no match
1375 \x8aBCD
1376
1377 /[\PPP\x8a]{1,}\x80/
1378 A\x80
1379
1380 /^[\p{Arabic}]/utf
1381 \x{604}
1382 \x{60e}
1383 \x{656}
1384 \x{657}
1385 \x{658}
1386 \x{659}
1387 \x{65a}
1388 \x{65b}
1389 \x{65c}
1390 \x{65d}
1391 \x{65e}
1392 \x{65f}
1393 \x{66a}
1394 \x{6e9}
1395 \x{6ef}
1396 \x{6fa}
1397
1398 /^\p{Cyrillic}/utf
1399 \x{1d2b}
1400
1401 /^\p{Common}/utf
1402 \x{2116}
1403 \x{1D183}
1404
1405 /^\p{Inherited}/utf
1406 \x{200c}
1407 \= Expect no match
1408 \x{64a}
1409 \x{656}
1410
1411 /^\p{Shavian}/utf
1412 \x{10450}
1413 \x{1047f}
1414
1415 /^\p{Deseret}/utf
1416 \x{10400}
1417 \x{1044f}
1418
1419 /^\p{Osmanya}/utf
1420 \x{10480}
1421 \x{1049d}
1422 \x{104a0}
1423 \x{104a9}
1424 \= Expect no match
1425 \x{1049e}
1426 \x{1049f}
1427 \x{104aa}
1428
1429 /\p{Carian}\p{Cham}\p{Kayah_Li}\p{Lepcha}\p{Lycian}\p{Lydian}\p{Ol_Chiki}\p{Rejang}\p{Saurashtra}\p{Sundanese}\p{Vai}/utf
1430 \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
1431
1432 /\x{a77d}\x{1d79}/i,utf
1433 \x{a77d}\x{1d79}
1434 \x{1d79}\x{a77d}
1435
1436 /\x{a77d}\x{1d79}/utf
1437 \x{a77d}\x{1d79}
1438 \= Expect no match
1439 \x{1d79}\x{a77d}
1440
1441 /(A)\1/i,utf
1442 AA
1443 Aa
1444 aa
1445 aA
1446
1447 /(\x{10a})\1/i,utf
1448 \x{10a}\x{10a}
1449 \x{10a}\x{10b}
1450 \x{10b}\x{10b}
1451 \x{10b}\x{10a}
1452
1453 # The next two tests are for property support in non-UTF mode
1454
1455 /(?:\p{Lu}|\x20)+/
1456 \x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
1457
1458 /[\p{Lu}\x20]+/
1459 \x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
1460
1461 /\p{Avestan}\p{Bamum}\p{Egyptian_Hieroglyphs}\p{Imperial_Aramaic}\p{Inscriptional_Pahlavi}\p{Inscriptional_Parthian}\p{Javanese}\p{Kaithi}\p{Lisu}\p{Meetei_Mayek}\p{Old_South_Arabian}\p{Old_Turkic}\p{Samaritan}\p{Tai_Tham}\p{Tai_Viet}/utf
1462 \x{10b00}\x{a6ef}\x{13007}\x{10857}\x{10b78}\x{10b58}\x{a980}\x{110c1}\x{a4ff}\x{abc0}\x{10a7d}\x{10c48}\x{0800}\x{1aad}\x{aac0}
1463
1464 /^\w+/utf,ucp
1465 Az_\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
1466
1467 /^[[:xdigit:]]*/utf,ucp
1468 1a\x{660}\x{bef}\x{16ee}
1469
1470 /^\d+/utf,ucp
1471 1\x{660}\x{bef}\x{16ee}
1472
1473 /^[[:digit:]]+/utf,ucp
1474 1\x{660}\x{bef}\x{16ee}
1475
1476 /^>\s+/utf,ucp
1477 >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
1478
1479 /^>\pZ+/utf,ucp
1480 >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
1481
1482 /^>[[:space:]]*/utf,ucp
1483 >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
1484
1485 /^>[[:blank:]]*/utf,ucp
1486 >\x{20}\x{a0}\x{1680}\x{2000}\x{202f}\x{9}\x{b}\x{2028}
1487
1488 /^[[:alpha:]]*/utf,ucp
1489 Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}
1490
1491 /^[[:alnum:]]*/utf,ucp
1492 Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
1493
1494 /^[[:cntrl:]]*/utf,ucp
1495 \x{0}\x{09}\x{1f}\x{7f}\x{9f}
1496
1497 /^[[:graph:]]*/utf,ucp
1498 A\x{a1}\x{a0}
1499
1500 /^[[:print:]]*/utf,ucp
1501 A z\x{a0}\x{a1}
1502
1503 /^[[:punct:]]*/utf,ucp
1504 .+\x{a1}\x{a0}
1505
1506 /\p{Zs}*?\R/
1507 \= Expect no match
1508 a\xFCb
1509
1510 /\p{Zs}*\R/
1511 \= Expect no match
1512 a\xFCb
1513
1514 /ⱥ/i,utf
1515
1516 Ⱥx
1517 Ⱥ
1518
1519 /[ⱥ]/i,utf
1520
1521 Ⱥx
1522 Ⱥ
1523
1524 /Ⱥ/i,utf
1525 Ⱥ
1526
1527
1528 # These are tests for extended grapheme clusters
1529
1530 /^\X/utf,aftertext
1531 G\x{34e}\x{34e}X
1532 \x{34e}\x{34e}X
1533 \x04X
1534 \x{1100}X
1535 \x{1100}\x{34e}X
1536 \x{1b04}\x{1b04}X
1537 *These match up to the roman letters
1538 \x{1111}\x{1111}L,L
1539 \x{1111}\x{1111}\x{1169}L,L,V
1540 \x{1111}\x{ae4c}L, LV
1541 \x{1111}\x{ad89}L, LVT
1542 \x{1111}\x{ae4c}\x{1169}L, LV, V
1543 \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
1544 \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
1545 \x{1111}\x{ad89}\x{11fe}L, LVT, T
1546 \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
1547 \x{ad89}\x{11fe}\x{11fe}LVT, T, T
1548 *These match just the first codepoint (invalid sequence)
1549 \x{1111}\x{11fe}L, T
1550 \x{ae4c}\x{1111}LV, L
1551 \x{ae4c}\x{ae4c}LV, LV
1552 \x{ae4c}\x{ad89}LV, LVT
1553 \x{1169}\x{1111}V, L
1554 \x{1169}\x{ae4c}V, LV
1555 \x{1169}\x{ad89}V, LVT
1556 \x{ad89}\x{1111}LVT, L
1557 \x{ad89}\x{1169}LVT, V
1558 \x{ad89}\x{ae4c}LVT, LV
1559 \x{ad89}\x{ad89}LVT, LVT
1560 \x{11fe}\x{1111}T, L
1561 \x{11fe}\x{1169}T, V
1562 \x{11fe}\x{ae4c}T, LV
1563 \x{11fe}\x{ad89}T, LVT
1564 *Test extend and spacing mark
1565 \x{1111}\x{ae4c}\x{0711}L, LV, extend
1566 \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
1567 \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
1568 *Test CR, LF, and control
1569 \x0d\x{0711}CR, extend
1570 \x0d\x{1b04}CR, spacingmark
1571 \x0a\x{0711}LF, extend
1572 \x0a\x{1b04}LF, spacingmark
1573 \x0b\x{0711}Control, extend
1574 \x09\x{1b04}Control, spacingmark
1575 *There are no Prepend characters, so we can't test Prepend, CR
1576
1577 /^(?>\X{2})X/utf,aftertext
1578 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1579
1580 /^\X{2,4}X/utf,aftertext
1581 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1582 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1583 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1584
1585 /^\X{2,4}?X/utf,aftertext
1586 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1587 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1588 \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
1589
1590 /\X*Z/utf,no_start_optimize
1591 \= Expect no match
1592 A\x{300}
1593
1594 /\X*(.)/utf,no_start_optimize
1595 A\x{1111}\x{ae4c}\x{1169}
1596
1597 # --------------------------------------------
1598
1599 /\x{1e9e}+/i,utf
1600 \x{1e9e}\x{00df}
1601
1602 /[z\x{1e9e}]+/i,utf
1603 \x{1e9e}\x{00df}
1604
1605 /\x{00df}+/i,utf
1606 \x{1e9e}\x{00df}
1607
1608 /[z\x{00df}]+/i,utf
1609 \x{1e9e}\x{00df}
1610
1611 /\x{1f88}+/i,utf
1612 \x{1f88}\x{1f80}
1613
1614 /[z\x{1f88}]+/i,utf
1615 \x{1f88}\x{1f80}
1616
1617 # Check a reference with more than one other case
1618
1619 /^(\x{00b5})\1{2}$/i,utf
1620 \x{00b5}\x{039c}\x{03bc}
1621
1622 # Characters with more than one other case; test in classes
1623
1624 /[z\x{00b5}]+/i,utf
1625 \x{00b5}\x{039c}\x{03bc}
1626
1627 /[z\x{039c}]+/i,utf
1628 \x{00b5}\x{039c}\x{03bc}
1629
1630 /[z\x{03bc}]+/i,utf
1631 \x{00b5}\x{039c}\x{03bc}
1632
1633 /[z\x{00c5}]+/i,utf
1634 \x{00c5}\x{00e5}\x{212b}
1635
1636 /[z\x{00e5}]+/i,utf
1637 \x{00c5}\x{00e5}\x{212b}
1638
1639 /[z\x{212b}]+/i,utf
1640 \x{00c5}\x{00e5}\x{212b}
1641
1642 /[z\x{01c4}]+/i,utf
1643 \x{01c4}\x{01c5}\x{01c6}
1644
1645 /[z\x{01c5}]+/i,utf
1646 \x{01c4}\x{01c5}\x{01c6}
1647
1648 /[z\x{01c6}]+/i,utf
1649 \x{01c4}\x{01c5}\x{01c6}
1650
1651 /[z\x{01c7}]+/i,utf
1652 \x{01c7}\x{01c8}\x{01c9}
1653
1654 /[z\x{01c8}]+/i,utf
1655 \x{01c7}\x{01c8}\x{01c9}
1656
1657 /[z\x{01c9}]+/i,utf
1658 \x{01c7}\x{01c8}\x{01c9}
1659
1660 /[z\x{01ca}]+/i,utf
1661 \x{01ca}\x{01cb}\x{01cc}
1662
1663 /[z\x{01cb}]+/i,utf
1664 \x{01ca}\x{01cb}\x{01cc}
1665
1666 /[z\x{01cc}]+/i,utf
1667 \x{01ca}\x{01cb}\x{01cc}
1668
1669 /[z\x{01f1}]+/i,utf
1670 \x{01f1}\x{01f2}\x{01f3}
1671
1672 /[z\x{01f2}]+/i,utf
1673 \x{01f1}\x{01f2}\x{01f3}
1674
1675 /[z\x{01f3}]+/i,utf
1676 \x{01f1}\x{01f2}\x{01f3}
1677
1678 /[z\x{0345}]+/i,utf
1679 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1680
1681 /[z\x{0399}]+/i,utf
1682 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1683
1684 /[z\x{03b9}]+/i,utf
1685 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1686
1687 /[z\x{1fbe}]+/i,utf
1688 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1689
1690 /[z\x{0392}]+/i,utf
1691 \x{0392}\x{03b2}\x{03d0}
1692
1693 /[z\x{03b2}]+/i,utf
1694 \x{0392}\x{03b2}\x{03d0}
1695
1696 /[z\x{03d0}]+/i,utf
1697 \x{0392}\x{03b2}\x{03d0}
1698
1699 /[z\x{0395}]+/i,utf
1700 \x{0395}\x{03b5}\x{03f5}
1701
1702 /[z\x{03b5}]+/i,utf
1703 \x{0395}\x{03b5}\x{03f5}
1704
1705 /[z\x{03f5}]+/i,utf
1706 \x{0395}\x{03b5}\x{03f5}
1707
1708 /[z\x{0398}]+/i,utf
1709 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1710
1711 /[z\x{03b8}]+/i,utf
1712 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1713
1714 /[z\x{03d1}]+/i,utf
1715 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1716
1717 /[z\x{03f4}]+/i,utf
1718 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1719
1720 /[z\x{039a}]+/i,utf
1721 \x{039a}\x{03ba}\x{03f0}
1722
1723 /[z\x{03ba}]+/i,utf
1724 \x{039a}\x{03ba}\x{03f0}
1725
1726 /[z\x{03f0}]+/i,utf
1727 \x{039a}\x{03ba}\x{03f0}
1728
1729 /[z\x{03a0}]+/i,utf
1730 \x{03a0}\x{03c0}\x{03d6}
1731
1732 /[z\x{03c0}]+/i,utf
1733 \x{03a0}\x{03c0}\x{03d6}
1734
1735 /[z\x{03d6}]+/i,utf
1736 \x{03a0}\x{03c0}\x{03d6}
1737
1738 /[z\x{03a1}]+/i,utf
1739 \x{03a1}\x{03c1}\x{03f1}
1740
1741 /[z\x{03c1}]+/i,utf
1742 \x{03a1}\x{03c1}\x{03f1}
1743
1744 /[z\x{03f1}]+/i,utf
1745 \x{03a1}\x{03c1}\x{03f1}
1746
1747 /[z\x{03a3}]+/i,utf
1748 \x{03A3}\x{03C2}\x{03C3}
1749
1750 /[z\x{03c2}]+/i,utf
1751 \x{03A3}\x{03C2}\x{03C3}
1752
1753 /[z\x{03c3}]+/i,utf
1754 \x{03A3}\x{03C2}\x{03C3}
1755
1756 /[z\x{03a6}]+/i,utf
1757 \x{03a6}\x{03c6}\x{03d5}
1758
1759 /[z\x{03c6}]+/i,utf
1760 \x{03a6}\x{03c6}\x{03d5}
1761
1762 /[z\x{03d5}]+/i,utf
1763 \x{03a6}\x{03c6}\x{03d5}
1764
1765 /[z\x{03c9}]+/i,utf
1766 \x{03c9}\x{03a9}\x{2126}
1767
1768 /[z\x{03a9}]+/i,utf
1769 \x{03c9}\x{03a9}\x{2126}
1770
1771 /[z\x{2126}]+/i,utf
1772 \x{03c9}\x{03a9}\x{2126}
1773
1774 /[z\x{1e60}]+/i,utf
1775 \x{1e60}\x{1e61}\x{1e9b}
1776
1777 /[z\x{1e61}]+/i,utf
1778 \x{1e60}\x{1e61}\x{1e9b}
1779
1780 /[z\x{1e9b}]+/i,utf
1781 \x{1e60}\x{1e61}\x{1e9b}
1782
1783 # Perl 5.12.4 gets these wrong, but 5.15.3 is OK
1784
1785 /[z\x{004b}]+/i,utf
1786 \x{004b}\x{006b}\x{212a}
1787
1788 /[z\x{006b}]+/i,utf
1789 \x{004b}\x{006b}\x{212a}
1790
1791 /[z\x{212a}]+/i,utf
1792 \x{004b}\x{006b}\x{212a}
1793
1794 /[z\x{0053}]+/i,utf
1795 \x{0053}\x{0073}\x{017f}
1796
1797 /[z\x{0073}]+/i,utf
1798 \x{0053}\x{0073}\x{017f}
1799
1800 /[z\x{017f}]+/i,utf
1801 \x{0053}\x{0073}\x{017f}
1802
1803 # --------------------------------------
1804
1805 /(ΣΆΜΟΣ) \1/i,utf
1806 ΣΆΜΟΣ ΣΆΜΟΣ
1807 ΣΆΜΟΣ σάμος
1808 σάμος σάμος
1809 σάμος σάμοσ
1810 σάμος ΣΆΜΟΣ
1811
1812 /(σάμος) \1/i,utf
1813 ΣΆΜΟΣ ΣΆΜΟΣ
1814 ΣΆΜΟΣ σάμος
1815 σάμος σάμος
1816 σάμος σάμοσ
1817 σάμος ΣΆΜΟΣ
1818
1819 /(ΣΆΜΟΣ) \1*/i,utf
1820 ΣΆΜΟΣ\x20
1821 ΣΆΜΟΣ ΣΆΜΟΣσάμοςσάμος
1822
1823 # Perl matches these
1824
1825 /\x{00b5}+/i,utf
1826 \x{00b5}\x{039c}\x{03bc}
1827
1828 /\x{039c}+/i,utf
1829 \x{00b5}\x{039c}\x{03bc}
1830
1831 /\x{03bc}+/i,utf
1832 \x{00b5}\x{039c}\x{03bc}
1833
1834
1835 /\x{00c5}+/i,utf
1836 \x{00c5}\x{00e5}\x{212b}
1837
1838 /\x{00e5}+/i,utf
1839 \x{00c5}\x{00e5}\x{212b}
1840
1841 /\x{212b}+/i,utf
1842 \x{00c5}\x{00e5}\x{212b}
1843
1844
1845 /\x{01c4}+/i,utf
1846 \x{01c4}\x{01c5}\x{01c6}
1847
1848 /\x{01c5}+/i,utf
1849 \x{01c4}\x{01c5}\x{01c6}
1850
1851 /\x{01c6}+/i,utf
1852 \x{01c4}\x{01c5}\x{01c6}
1853
1854
1855 /\x{01c7}+/i,utf
1856 \x{01c7}\x{01c8}\x{01c9}
1857
1858 /\x{01c8}+/i,utf
1859 \x{01c7}\x{01c8}\x{01c9}
1860
1861 /\x{01c9}+/i,utf
1862 \x{01c7}\x{01c8}\x{01c9}
1863
1864
1865 /\x{01ca}+/i,utf
1866 \x{01ca}\x{01cb}\x{01cc}
1867
1868 /\x{01cb}+/i,utf
1869 \x{01ca}\x{01cb}\x{01cc}
1870
1871 /\x{01cc}+/i,utf
1872 \x{01ca}\x{01cb}\x{01cc}
1873
1874
1875 /\x{01f1}+/i,utf
1876 \x{01f1}\x{01f2}\x{01f3}
1877
1878 /\x{01f2}+/i,utf
1879 \x{01f1}\x{01f2}\x{01f3}
1880
1881 /\x{01f3}+/i,utf
1882 \x{01f1}\x{01f2}\x{01f3}
1883
1884
1885 /\x{0345}+/i,utf
1886 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1887
1888 /\x{0399}+/i,utf
1889 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1890
1891 /\x{03b9}+/i,utf
1892 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1893
1894 /\x{1fbe}+/i,utf
1895 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1896
1897
1898 /\x{0392}+/i,utf
1899 \x{0392}\x{03b2}\x{03d0}
1900
1901 /\x{03b2}+/i,utf
1902 \x{0392}\x{03b2}\x{03d0}
1903
1904 /\x{03d0}+/i,utf
1905 \x{0392}\x{03b2}\x{03d0}
1906
1907
1908 /\x{0395}+/i,utf
1909 \x{0395}\x{03b5}\x{03f5}
1910
1911 /\x{03b5}+/i,utf
1912 \x{0395}\x{03b5}\x{03f5}
1913
1914 /\x{03f5}+/i,utf
1915 \x{0395}\x{03b5}\x{03f5}
1916
1917
1918 /\x{0398}+/i,utf
1919 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1920
1921 /\x{03b8}+/i,utf
1922 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1923
1924 /\x{03d1}+/i,utf
1925 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1926
1927 /\x{03f4}+/i,utf
1928 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1929
1930
1931 /\x{039a}+/i,utf
1932 \x{039a}\x{03ba}\x{03f0}
1933
1934 /\x{03ba}+/i,utf
1935 \x{039a}\x{03ba}\x{03f0}
1936
1937 /\x{03f0}+/i,utf
1938 \x{039a}\x{03ba}\x{03f0}
1939
1940
1941 /\x{03a0}+/i,utf
1942 \x{03a0}\x{03c0}\x{03d6}
1943
1944 /\x{03c0}+/i,utf
1945 \x{03a0}\x{03c0}\x{03d6}
1946
1947 /\x{03d6}+/i,utf
1948 \x{03a0}\x{03c0}\x{03d6}
1949
1950
1951 /\x{03a1}+/i,utf
1952 \x{03a1}\x{03c1}\x{03f1}
1953
1954 /\x{03c1}+/i,utf
1955 \x{03a1}\x{03c1}\x{03f1}
1956
1957 /\x{03f1}+/i,utf
1958 \x{03a1}\x{03c1}\x{03f1}
1959
1960
1961 /\x{03a3}+/i,utf
1962 \x{03A3}\x{03C2}\x{03C3}
1963
1964 /\x{03c2}+/i,utf
1965 \x{03A3}\x{03C2}\x{03C3}
1966
1967 /\x{03c3}+/i,utf
1968 \x{03A3}\x{03C2}\x{03C3}
1969
1970
1971 /\x{03a6}+/i,utf
1972 \x{03a6}\x{03c6}\x{03d5}
1973
1974 /\x{03c6}+/i,utf
1975 \x{03a6}\x{03c6}\x{03d5}
1976
1977 /\x{03d5}+/i,utf
1978 \x{03a6}\x{03c6}\x{03d5}
1979
1980
1981 /\x{03c9}+/i,utf
1982 \x{03c9}\x{03a9}\x{2126}
1983
1984 /\x{03a9}+/i,utf
1985 \x{03c9}\x{03a9}\x{2126}
1986
1987 /\x{2126}+/i,utf
1988 \x{03c9}\x{03a9}\x{2126}
1989
1990
1991 /\x{1e60}+/i,utf
1992 \x{1e60}\x{1e61}\x{1e9b}
1993
1994 /\x{1e61}+/i,utf
1995 \x{1e60}\x{1e61}\x{1e9b}
1996
1997 /\x{1e9b}+/i,utf
1998 \x{1e60}\x{1e61}\x{1e9b}
1999
2000
2001 /\x{1e9e}+/i,utf
2002 \x{1e9e}\x{00df}
2003
2004 /\x{00df}+/i,utf
2005 \x{1e9e}\x{00df}
2006
2007
2008 /\x{1f88}+/i,utf
2009 \x{1f88}\x{1f80}
2010
2011 /\x{1f80}+/i,utf
2012 \x{1f88}\x{1f80}
2013
2014 # Perl 5.12.4 gets these wrong, but 5.15.3 is OK
2015
2016 /\x{004b}+/i,utf
2017 \x{004b}\x{006b}\x{212a}
2018
2019 /\x{006b}+/i,utf
2020 \x{004b}\x{006b}\x{212a}
2021
2022 /\x{212a}+/i,utf
2023 \x{004b}\x{006b}\x{212a}
2024
2025
2026 /\x{0053}+/i,utf
2027 \x{0053}\x{0073}\x{017f}
2028
2029 /\x{0073}+/i,utf
2030 \x{0053}\x{0073}\x{017f}
2031
2032 /\x{017f}+/i,utf
2033 \x{0053}\x{0073}\x{017f}
2034
2035 /^\p{Any}*\d{4}/utf
2036 1234
2037 \= Expect no match
2038 123
2039
2040 /^\X*\w{4}/utf
2041 1234
2042 \= Expect no match
2043 123
2044
2045 /^A\s+Z/utf,ucp
2046 A\x{2005}Z
2047 A\x{85}\x{2005}Z
2048
2049 /^A[\s]+Z/utf,ucp
2050 A\x{2005}Z
2051 A\x{85}\x{2005}Z
2052
2053 /^[[:graph:]]+$/utf,ucp
2054 Letter:ABC
2055 Mark:\x{300}\x{1d172}\x{1d17b}
2056 Number:9\x{660}
2057 Punctuation:\x{66a},;
2058 Symbol:\x{6de}<>\x{fffc}
2059 Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
2060 \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
2061 \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
2062 \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
2063 \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
2064 \x{feff}
2065 \x{fff9}\x{fffa}\x{fffb}
2066 \x{110bd}
2067 \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
2068 \x{e0001}
2069 \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
2070 \= Expect no match
2071 \x{09}
2072 \x{0a}
2073 \x{1D}
2074 \x{20}
2075 \x{85}
2076 \x{a0}
2077 \x{1680}
2078 \x{2028}
2079 \x{2029}
2080 \x{202f}
2081 \x{2065}
2082 \x{3000}
2083 \x{e0002}
2084 \x{e001f}
2085 \x{e0080}
2086
2087 /^[[:print:]]+$/utf,ucp
2088 Space: \x{a0}
2089 \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
2090 \x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
2091 \x{202f}\x{205f}
2092 \x{3000}
2093 Letter:ABC
2094 Mark:\x{300}\x{1d172}\x{1d17b}
2095 Number:9\x{660}
2096 Punctuation:\x{66a},;
2097 Symbol:\x{6de}<>\x{fffc}
2098 Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
2099 \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
2100 \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
2101 \x{202f}
2102 \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
2103 \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
2104 \x{feff}
2105 \x{fff9}\x{fffa}\x{fffb}
2106 \x{110bd}
2107 \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
2108 \x{e0001}
2109 \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
2110 \= Expect no match
2111 \x{09}
2112 \x{1D}
2113 \x{85}
2114 \x{2028}
2115 \x{2029}
2116 \x{2065}
2117 \x{e0002}
2118 \x{e001f}
2119 \x{e0080}
2120
2121 /^[[:punct:]]+$/utf,ucp
2122 \$+<=>^`|~
2123 !\"#%&'()*,-./:;?@[\\]_{}
2124 \x{a1}\x{a7}
2125 \x{37e}
2126 \= Expect no match
2127 abcde
2128
2129 /^[[:^graph:]]+$/utf,ucp
2130 \x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{1680}
2131 \x{2028}\x{2029}\x{202f}\x{2065}
2132 \x{3000}\x{e0002}\x{e001f}\x{e0080}
2133 \= Expect no match
2134 Letter:ABC
2135 Mark:\x{300}\x{1d172}\x{1d17b}
2136 Number:9\x{660}
2137 Punctuation:\x{66a},;
2138 Symbol:\x{6de}<>\x{fffc}
2139 Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
2140 \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
2141 \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
2142 \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
2143 \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
2144 \x{feff}
2145 \x{fff9}\x{fffa}\x{fffb}
2146 \x{110bd}
2147 \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
2148 \x{e0001}
2149 \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
2150
2151 /^[[:^print:]]+$/utf,ucp
2152 \x{09}\x{1D}\x{85}\x{2028}\x{2029}\x{2065}
2153 \x{e0002}\x{e001f}\x{e0080}
2154 \= Expect no match
2155 Space: \x{a0}
2156 \x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
2157 \x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
2158 \x{202f}\x{205f}
2159 \x{3000}
2160 Letter:ABC
2161 Mark:\x{300}\x{1d172}\x{1d17b}
2162 Number:9\x{660}
2163 Punctuation:\x{66a},;
2164 Symbol:\x{6de}<>\x{fffc}
2165 Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
2166 \x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
2167 \x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
2168 \x{202f}
2169 \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
2170 \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
2171 \x{feff}
2172 \x{fff9}\x{fffa}\x{fffb}
2173 \x{110bd}
2174 \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
2175 \x{e0001}
2176 \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
2177
2178 /^[[:^punct:]]+$/utf,ucp
2179 abcde
2180 \= Expect no match
2181 \$+<=>^`|~
2182 !\"#%&'()*,-./:;?@[\\]_{}
2183 \x{a1}\x{a7}
2184 \x{37e}
2185
2186 /[RST]+/i,utf,ucp
2187 Ss\x{17f}
2188
2189 /[R-T]+/i,utf,ucp
2190 Ss\x{17f}
2191
2192 /[q-u]+/i,utf,ucp
2193 Ss\x{17f}
2194
2195 /^s?c/im,utf
2196 scat
2197
2198 # The next four tests are for repeated caseless back references when the
2199 # code unit length of the matched text is different to that of the original
2200 # group in the UTF-8 case.
2201
2202 /^(\x{23a})\1*(.)/i,utf
2203 \x{23a}\x{23a}\x{23a}\x{23a}
2204 \x{23a}\x{2c65}\x{2c65}\x{2c65}
2205 \x{23a}\x{23a}\x{2c65}\x{23a}
2206
2207 /^(\x{23a})\1*(..)/i,utf
2208 \x{23a}\x{2c65}\x{2c65}\x{2c65}
2209 \x{23a}\x{23a}\x{2c65}\x{23a}
2210
2211 /^(\x{23a})\1*(...)/i,utf
2212 \x{23a}\x{2c65}\x{2c65}\x{2c65}
2213 \x{23a}\x{23a}\x{2c65}\x{23a}
2214
2215 /^(\x{23a})\1*(....)/i,utf
2216 \= Expect no match
2217 \x{23a}\x{2c65}\x{2c65}\x{2c65}
2218 \x{23a}\x{23a}\x{2c65}\x{23a}
2219
2220 /[A-`]/i,utf
2221 abcdefghijklmno
2222
2223 "[\S\V\H]"utf
2224
2225 /[^\p{Any}]*+x/utf
2226 x
2227
2228 /[[:punct:]]/utf,ucp
2229 \x{b4}
2230
2231 /[[:^ascii:]]/utf,ucp
2232 \x{100}
2233 \x{200}
2234 \x{300}
2235 \x{37e}
2236 \= Expect no match
2237 aa
2238 99
2239
2240 /[[:^ascii:]\w]/utf,ucp
2241 aa
2242 99
2243 gg
2244 \x{100}
2245 \x{200}
2246 \x{300}
2247 \x{37e}
2248
2249 /[\w[:^ascii:]]/utf,ucp
2250 aa
2251 99
2252 gg
2253 \x{100}
2254 \x{200}
2255 \x{300}
2256 \x{37e}
2257
2258 /[^[:ascii:]\W]/utf,ucp
2259 \x{100}
2260 \x{200}
2261 \= Expect no match
2262 aa
2263 99
2264 gg
2265 \x{37e}
2266
2267 /[^[:^ascii:]\d]/utf,ucp
2268 a
2269 ~
2270 \a
2271 \x{7f}
2272 \= Expect no match
2273 0
2274 \x{389}
2275 \x{20ac}
2276
2277 /(?=.*b)\pL/
2278 11bb
2279
2280 /(?(?=.*b)(?=.*b)\pL|.*c)/
2281 11bb
2282
2283 /^\x{123}+?$/utf,no_auto_possess
2284 \x{123}\x{123}\x{123}
2285
2286 /^\x{123}+?$/i,utf,no_auto_possess
2287 \x{123}\x{122}\x{123}
2288 \= Expect no match
2289 \x{123}\x{124}\x{123}
2290
2291 /\N{U+1234}/utf
2292 \x{1234}
2293
2294 /[\N{U+1234}]/utf
2295 \x{1234}
2296
2297 # Test the full list of Unicode "Pattern White Space" characters that are to
2298 # be ignored by /x. The pattern lines below may show up oddly in text editors
2299 # or when listed to the screen. Note that characters such as U+2002, which are
2300 # matched as space by \h and \v are *not* "Pattern White Space".
2301
2302 /A…‎‏

B/x,utf
2303 AB
2304
2305 /A B/x,utf
2306 A\x{2002}B
2307 \= Expect no match
2308 AB
2309
2310 # -------
2311
2312 /[^\x{100}-\x{ffff}]*[\x80-\xff]/utf
2313 \x{99}\x{99}\x{99}
2314
2315 /[^\x{100}-\x{ffff}ABC]*[\x80-\xff]/utf
2316 \x{99}\x{99}\x{99}
2317
2318 /[^\x{100}-\x{ffff}]*[\x80-\xff]/i,utf
2319 \x{99}\x{99}\x{99}
2320
2321 # Script run tests
2322
2323 /^(*script_run:.{4})/utf
2324 abcd Latin x4
2325 \x{2e80}\x{2fa1d}\x{3041}\x{30a1} Han Han Hiragana Katakana
2326 \x{3041}\x{30a1}\x{3007}\x{3007} Hiragana Katakana Han Han
2327 \x{30a1}\x{3041}\x{3007}\x{3007} Katakana Hiragana Han Han
2328 \x{1100}\x{2e80}\x{2e80}\x{1101} Hangul Han Han Hangul
2329 \x{2e80}\x{3105}\x{2e80}\x{3105} Han Bopomofo Han Bopomofo
2330 \x{02ea}\x{2e80}\x{2e80}\x{3105} Bopomofo-Sk Han Han Bopomofo
2331 \x{3105}\x{2e80}\x{2e80}\x{3105} Bopomofo Han Han Bopomofo
2332 \x{0300}cd! Inherited Latin Latin Common
2333 \x{0391}12\x{03a9} Greek Common-digits Greek
2334 \x{0400}12\x{fe2f} Cyrillic Common-digits Cyrillic
2335 \x{0531}12\x{fb17} Armenian Common-digits Armenian
2336 \x{0591}12\x{fb4f} Hebrew Common-digits Hebrew
2337 \x{0600}12\x{1eef1} Arabic Common-digits Arabic
2338 \x{0600}\x{0660}\x{0669}\x{1eef1} Arabic Arabic-digits Arabic
2339 \x{0700}12\x{086a} Syriac Common-digits Syriac
2340 \x{1200}12\x{ab2e} Ethiopic Common-digits Ethiopic
2341 \x{1680}12\x{169c} Ogham Common-digits Ogham
2342 \x{3041}12\x{3041} Hiragana Common-digits Hiragana
2343 \x{0980}\x{09e6}\x{09e7}\x{0993} Bengali Bengali-digits Bengali
2344 !cde Common Latin Latin Latin
2345 A..B Latin Common Common Latin
2346 0abc Ascii-digit Latin Latin Latin
2347 1\x{0700}\x{0700}\x{0700} Ascii-digit Syriac x 3
2348 \x{1A80}\x{1A80}\x{1a40}\x{1a41} Tai Tham Hora digits, letters
2349 \= Expect no match
2350 a\x{370}bcd Latin Greek Latin Latin
2351 \x{1100}\x{02ea}\x{02ea}\x{02ea} Hangul Bopomofo x3
2352 \x{02ea}\x{02ea}\x{02ea}\x{1100} Bopomofo x3 Hangul
2353 \x{1100}\x{2e80}\x{3041}\x{1101} Hangul Han Hiragana Hangul
2354 \x{0391}\x{09e6}\x{09e7}\x{03a9} Greek Bengali digits Greek
2355 \x{0600}7\x{0669}\x{1eef1} Arabic ascii-digit Arabic-digit Arabic
2356 \x{0600}\x{0669}7\x{1eef1} Arabic Arabic-digit ascii-digit Arabic
2357 A5\x{ff19}B Latin Common-ascii/notascii-digits Latin
2358 \x{0300}cd\x{0391} Inherited Latin Latin Greek
2359 !cd\x{0391} Common Latin Latin Greek
2360 \x{1A80}\x{1A90}\x{1a40}\x{1a41} Tai Tham Hora digit, Tham digit, letters
2361 A\x{1d7ce}\x{1d7ff}B Common fancy-common-2-sets-digits Common
2362 \x{2e80}\x{3105}\x{2e80}\x{30a1} Han Bopomofo Han Katakana
2363
2364 /^(*sr:.{4}|..)/utf
2365 \x{2e80}\x{3105}\x{2e80}\x{30a1} Han Bopomofo Han Katakana
2366
2367 /^(*atomic_script_run:.{4}|..)/utf
2368 \= Expect no match
2369 \x{2e80}\x{3105}\x{2e80}\x{30a1} Han Bopomofo Han Katakana
2370
2371 /^(*asr:.*)/utf
2372 \= Expect no match
2373 \x{2e80}\x{3105}\x{2e80}\x{30a1} Han Bopomofo Han Katakana
2374
2375 /^(?>(*sr:.*))/utf
2376 \x{2e80}\x{3105}\x{2e80}\x{30a1} Han Bopomofo Han Katakana
2377
2378 /^(*sr:.*)/utf
2379 \x{2e80}\x{3105}\x{2e80}\x{30a1} Han Bopomofo Han Katakana
2380 \x{10fffd}\x{10fffd}\x{10fffd} Private use (Unknown)
2381
2382 /^(*sr:\x{2e80}*)/utf
2383 \x{2e80}\x{2e80}\x{3105} Han Han Bopomofo
2384
2385 /^(*sr:\x{2e80}*)\x{2e80}/utf
2386 \x{2e80}\x{2e80}\x{3105} Han Han Bopomofo
2387
2388 /^(*sr:.*)Test/utf
2389 Test script run on an empty string
2390
2391 /^(*sr:(.{2})){2}/utf
2392 \x{0600}7\x{0669}\x{1eef1} Arabic ascii-digit Arabic-digit Arabic
2393 \x{1A80}\x{1A80}\x{1a40}\x{1a41} Tai Tham Hora digits, letters
2394 \x{1A80}\x{1a40}\x{1A90}\x{1a41} Tai Tham Hora digit, letter, Tham digit, letter
2395 \= Expect no match
2396 \x{1100}\x{2e80}\x{3041}\x{1101} Hangul Han Hiragana Hangul
2397
2398 /^(*sr:\S*)/utf
2399 \x{1cf4}\x{20f0}\x{900}\x{11305} [Dev,Gran,Kan] [Dev,Gran,Lat] Dev Gran
2400 \x{1cf4}\x{20f0}\x{11305}\x{900} [Dev,Gran,Kan] [Dev,Gran,Lat] Gran Dev
2401 \x{1cf4}\x{20f0}\x{900}ABC [Dev,Gran,Kan] [Dev,Gran,Lat] Dev Lat
2402 \x{1cf4}\x{20f0}ABC [Dev,Gran,Kan] [Dev,Gran,Lat] Lat
2403 \x{20f0}ABC [Dev,Gran,Lat] Lat
2404 XYZ\x{20f0}ABC Lat [Dev,Gran,Lat] Lat
2405 \x{a36}\x{a33}\x{900} [Dev,...] [Dev,...] Dev
2406 \x{3001}\x{2e80}\x{3041}\x{30a1} [Bopo, Han, etc] Han Hira Kata
2407 \x{3001}\x{30a1}\x{2e80}\x{3041} [Bopo, Han, etc] Kata Han Hira
2408 \x{3001}\x{3105}\x{2e80}\x{1101} [Bopo, Han, etc] Bopomofo Han Hangul
2409 \x{3105}\x{3001}\x{2e80}\x{1101} Bopomofo [Bopo, Han, etc] Han Hangul
2410 \x{3031}\x{3041}\x{30a1}\x{2e80} [Hira Kata] Hira Kata Han
2411 \x{060c}\x{06d4}\x{0600}\x{10d00}\x{0700} [Arab Rohg Syrc Thaa] [Arab Rohg] Arab Rohg Syrc
2412 \x{060c}\x{06d4}\x{0700}\x{0600}\x{10d00} [Arab Rohg Syrc Thaa] [Arab Rohg] Syrc Arab Rohg
2413 \x{2e80}\x{3041}\x{3001}\x{3031}\x{2e80} Han Hira [Bopo, Han, etc] [Hira Kata] Han
2414
2415 /(?<!)(*sr:)/
2416
2417 /(?<!X(*sr:B)C)/
2418
2419 /(?<=abc(?=X(*sr:BCY)Z)XBCYZ)./
2420 abcXBCYZ!
2421
2422 /(?<=abc(?=X(*sr:BXY)CCC)XBXYCCC)./
2423 abcXBXYCCC!
2424
2425 /^(*sr:\S*)/utf
2426 \x{10d00}\x{10d00}\x{06d4} Rohingya Rohingya Arabic-full-stop
2427 \x{06d4}\x{10d00}\x{10d00} Arabic-full-stop Rohingya Rohingya
2428 \x{10d00}\x{10d00}\x{0363} Rohingya Rohingya Inherited-extend-Latin
2429 \x{0363}\x{10d00}\x{10d00} Inherited-extend-Latin Rohingya Rohingya
2430 AB\x{0363} Latin Latin Inherited-extend-Latin
2431 \x{0363}AB Inherited-extend-Latin Latin Latin
2432 AB\x{1cf7} Latin Latin Common-extended-Beng
2433 \x{1cf7}AB Common-extend-Beng Latin Latin
2434 \x{1cf7}\x{0993} Common-extend-Beng Bengali
2435 A\x{1abe}BC Test enclosing mark
2436 \x{0370}\x{1abe}\x{0371} Which can occur with any script (Greek here)
2437 \x{3001}\x{adf9}\x{3001} [.. Hangul ..] Hangul [.. Hangul ..]
2438 \x{3400}\x{3001}XXX Han [Han etc.]
2439 \x{3400}\x{1cd5} Han [Bengali Devanagari]
2440 \x{ac01}\x{3400} Hangul [.. Hangul ..]
2441 \x{ac01}\x{1cd5} Hangul [Bengali Devanagari]
2442 \x{102e0}\x{06d4}\x{1ee4d} [Arabic Coptic] [Arab Rohingya] Arabic
2443 \x{102e0}\x{06d4}\x{2cc9} [Arabic Coptic] [Arab Rohingya] Coptic
2444 \x{102e0}\x{06d4}\x{10d30} [Arabic Coptic] [Arab Rohingya] Rohingya
2445
2446 # Test loop breaking for empty string match
2447
2448 /^(*sr:A|)*BCD/utf
2449 AABCD
2450 ABCD
2451 BCD
2452
2453 # The use of (*ACCEPT) breaks script run checking
2454
2455 /^(*sr:.*(*ACCEPT)ZZ)/utf
2456 \x{1100}\x{2e80}\x{3041}\x{1101} Hangul Han Hiragana Hangul
2457
2458 # -------
2459
2460 # Test group names containing non-ASCII letters and digits
2461
2462 /(?'ABáC'...)\g{ABáC}/utf
2463 abcabcdefg
2464
2465 /(?'XʰABC'...)/utf
2466 xyzpq
2467
2468 /(?'XאABC'...)/utf
2469 12345
2470
2471 /(?'XᾈABC'...)/utf
2472 %^&*(...
2473
2474 /(?'𐨐ABC'...)/utf
2475 abcde
2476
2477 /^(?'אABC'...)(?&אABC)(?P=אABC)/utf
2478 123123123456
2479
2480 /^(?'אABC'...)(?&אABC)/utf
2481 123123123456
2482
2483 /\X*/
2484 \xF3aaa\xE4\xEA\xEB\xFEa
2485
2486 # End of testinput4

  ViewVC Help
Powered by ViewVC 1.1.5