blob: fc057619e2ee9b1a6dd0b11e22a4698d65a4b773 [file] [log] [blame]
Tristan Matthews04616462013-11-14 16:09:34 -05001/-- This set of tests checks UTF-8 support with the DFA matching functionality
2 of pcre_dfa_exec(). The -dfa flag must be used with pcretest when running
3 it. --/
4
5/\x{100}ab/8
6 \x{100}ab
7
8/a\x{100}*b/8
9 ab
10 a\x{100}b
11 a\x{100}\x{100}b
12
13/a\x{100}+b/8
14 a\x{100}b
15 a\x{100}\x{100}b
16 *** Failers
17 ab
18
19/\bX/8
20 Xoanon
21 +Xoanon
22 \x{300}Xoanon
23 *** Failers
24 YXoanon
25
26/\BX/8
27 YXoanon
28 *** Failers
29 Xoanon
30 +Xoanon
31 \x{300}Xoanon
32
33/X\b/8
34 X+oanon
35 ZX\x{300}oanon
36 FAX
37 *** Failers
38 Xoanon
39
40/X\B/8
41 Xoanon
42 *** Failers
43 X+oanon
44 ZX\x{300}oanon
45 FAX
46
47/[^a]/8
48 abcd
49 a\x{100}
50
51/^[abc\x{123}\x{400}-\x{402}]{2,3}\d/8
52 ab99
53 \x{123}\x{123}45
54 \x{400}\x{401}\x{402}6
55 *** Failers
56 d99
57 \x{123}\x{122}4
58 \x{400}\x{403}6
59 \x{400}\x{401}\x{402}\x{402}6
60
61/abc/8
62 Ã]
63 Ã
64 ÃÃÃ
65 ÃÃÃ\?
66 \xe1\x88
67 \P\xe1\x88
68 \P\P\xe1\x88
69
70/a.b/8
71 acb
72 a\x7fb
73 a\x{100}b
74 *** Failers
75 a\nb
76
77/a(.{3})b/8
78 a\x{4000}xyb
79 a\x{4000}\x7fyb
80 a\x{4000}\x{100}yb
81 *** Failers
82 a\x{4000}b
83 ac\ncb
84
85/a(.*?)(.)/
86 a\xc0\x88b
87
88/a(.*?)(.)/8
89 a\x{100}b
90
91/a(.*)(.)/
92 a\xc0\x88b
93
94/a(.*)(.)/8
95 a\x{100}b
96
97/a(.)(.)/
98 a\xc0\x92bcd
99
100/a(.)(.)/8
101 a\x{240}bcd
102
103/a(.?)(.)/
104 a\xc0\x92bcd
105
106/a(.?)(.)/8
107 a\x{240}bcd
108
109/a(.??)(.)/
110 a\xc0\x92bcd
111
112/a(.??)(.)/8
113 a\x{240}bcd
114
115/a(.{3})b/8
116 a\x{1234}xyb
117 a\x{1234}\x{4321}yb
118 a\x{1234}\x{4321}\x{3412}b
119 *** Failers
120 a\x{1234}b
121 ac\ncb
122
123/a(.{3,})b/8
124 a\x{1234}xyb
125 a\x{1234}\x{4321}yb
126 a\x{1234}\x{4321}\x{3412}b
127 axxxxbcdefghijb
128 a\x{1234}\x{4321}\x{3412}\x{3421}b
129 *** Failers
130 a\x{1234}b
131
132/a(.{3,}?)b/8
133 a\x{1234}xyb
134 a\x{1234}\x{4321}yb
135 a\x{1234}\x{4321}\x{3412}b
136 axxxxbcdefghijb
137 a\x{1234}\x{4321}\x{3412}\x{3421}b
138 *** Failers
139 a\x{1234}b
140
141/a(.{3,5})b/8
142 a\x{1234}xyb
143 a\x{1234}\x{4321}yb
144 a\x{1234}\x{4321}\x{3412}b
145 axxxxbcdefghijb
146 a\x{1234}\x{4321}\x{3412}\x{3421}b
147 axbxxbcdefghijb
148 axxxxxbcdefghijb
149 *** Failers
150 a\x{1234}b
151 axxxxxxbcdefghijb
152
153/a(.{3,5}?)b/8
154 a\x{1234}xyb
155 a\x{1234}\x{4321}yb
156 a\x{1234}\x{4321}\x{3412}b
157 axxxxbcdefghijb
158 a\x{1234}\x{4321}\x{3412}\x{3421}b
159 axbxxbcdefghijb
160 axxxxxbcdefghijb
161 *** Failers
162 a\x{1234}b
163 axxxxxxbcdefghijb
164
165/^[a\x{c0}]/8
166 *** Failers
167 \x{100}
168
169/(?<=aXb)cd/8
170 aXbcd
171
172/(?<=a\x{100}b)cd/8
173 a\x{100}bcd
174
175/(?<=a\x{100000}b)cd/8
176 a\x{100000}bcd
177
178/(?:\x{100}){3}b/8
179 \x{100}\x{100}\x{100}b
180 *** Failers
181 \x{100}\x{100}b
182
183/\x{ab}/8
184 \x{ab}
185 \xc2\xab
186 *** Failers
187 \x00{ab}
188
189/(?<=(.))X/8
190 WXYZ
191 \x{256}XYZ
192 *** Failers
193 XYZ
194
195/[^a]+/8g
196 bcd
197 \x{100}aY\x{256}Z
198
199/^[^a]{2}/8
200 \x{100}bc
201
202/^[^a]{2,}/8
203 \x{100}bcAa
204
205/^[^a]{2,}?/8
206 \x{100}bca
207
208/[^a]+/8ig
209 bcd
210 \x{100}aY\x{256}Z
211
212/^[^a]{2}/8i
213 \x{100}bc
214
215/^[^a]{2,}/8i
216 \x{100}bcAa
217
218/^[^a]{2,}?/8i
219 \x{100}bca
220
221/\x{100}{0,0}/8
222 abcd
223
224/\x{100}?/8
225 abcd
226 \x{100}\x{100}
227
228/\x{100}{0,3}/8
229 \x{100}\x{100}
230 \x{100}\x{100}\x{100}\x{100}
231
232/\x{100}*/8
233 abce
234 \x{100}\x{100}\x{100}\x{100}
235
236/\x{100}{1,1}/8
237 abcd\x{100}\x{100}\x{100}\x{100}
238
239/\x{100}{1,3}/8
240 abcd\x{100}\x{100}\x{100}\x{100}
241
242/\x{100}+/8
243 abcd\x{100}\x{100}\x{100}\x{100}
244
245/\x{100}{3}/8
246 abcd\x{100}\x{100}\x{100}XX
247
248/\x{100}{3,5}/8
249 abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
250
251/\x{100}{3,}/8
252 abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
253
254/(?<=a\x{100}{2}b)X/8
255 Xyyya\x{100}\x{100}bXzzz
256
257/\D*/8
258 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
259
260/\D*/8
261 \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}
262
263/\D/8
264 1X2
265 1\x{100}2
266
267/>\S/8
268 > >X Y
269 > >\x{100} Y
270
271/\d/8
272 \x{100}3
273
274/\s/8
275 \x{100} X
276
277/\D+/8
278 12abcd34
279 *** Failers
280 1234
281
282/\D{2,3}/8
283 12abcd34
284 12ab34
285 *** Failers
286 1234
287 12a34
288
289/\D{2,3}?/8
290 12abcd34
291 12ab34
292 *** Failers
293 1234
294 12a34
295
296/\d+/8
297 12abcd34
298 *** Failers
299
300/\d{2,3}/8
301 12abcd34
302 1234abcd
303 *** Failers
304 1.4
305
306/\d{2,3}?/8
307 12abcd34
308 1234abcd
309 *** Failers
310 1.4
311
312/\S+/8
313 12abcd34
314 *** Failers
315 \ \
316
317/\S{2,3}/8
318 12abcd34
319 1234abcd
320 *** Failers
321 \ \
322
323/\S{2,3}?/8
324 12abcd34
325 1234abcd
326 *** Failers
327 \ \
328
329/>\s+</8
330 12> <34
331 *** Failers
332
333/>\s{2,3}</8
334 ab> <cd
335 ab> <ce
336 *** Failers
337 ab> <cd
338
339/>\s{2,3}?</8
340 ab> <cd
341 ab> <ce
342 *** Failers
343 ab> <cd
344
345/\w+/8
346 12 34
347 *** Failers
348 +++=*!
349
350/\w{2,3}/8
351 ab cd
352 abcd ce
353 *** Failers
354 a.b.c
355
356/\w{2,3}?/8
357 ab cd
358 abcd ce
359 *** Failers
360 a.b.c
361
362/\W+/8
363 12====34
364 *** Failers
365 abcd
366
367/\W{2,3}/8
368 ab====cd
369 ab==cd
370 *** Failers
371 a.b.c
372
373/\W{2,3}?/8
374 ab====cd
375 ab==cd
376 *** Failers
377 a.b.c
378
379/[\x{100}]/8
380 \x{100}
381 Z\x{100}
382 \x{100}Z
383 *** Failers
384
385/[Z\x{100}]/8
386 Z\x{100}
387 \x{100}
388 \x{100}Z
389 *** Failers
390
391/[\x{100}\x{200}]/8
392 ab\x{100}cd
393 ab\x{200}cd
394 *** Failers
395
396/[\x{100}-\x{200}]/8
397 ab\x{100}cd
398 ab\x{200}cd
399 ab\x{111}cd
400 *** Failers
401
402/[z-\x{200}]/8
403 ab\x{100}cd
404 ab\x{200}cd
405 ab\x{111}cd
406 abzcd
407 ab|cd
408 *** Failers
409
410/[Q\x{100}\x{200}]/8
411 ab\x{100}cd
412 ab\x{200}cd
413 Q?
414 *** Failers
415
416/[Q\x{100}-\x{200}]/8
417 ab\x{100}cd
418 ab\x{200}cd
419 ab\x{111}cd
420 Q?
421 *** Failers
422
423/[Qz-\x{200}]/8
424 ab\x{100}cd
425 ab\x{200}cd
426 ab\x{111}cd
427 abzcd
428 ab|cd
429 Q?
430 *** Failers
431
432/[\x{100}\x{200}]{1,3}/8
433 ab\x{100}cd
434 ab\x{200}cd
435 ab\x{200}\x{100}\x{200}\x{100}cd
436 *** Failers
437
438/[\x{100}\x{200}]{1,3}?/8
439 ab\x{100}cd
440 ab\x{200}cd
441 ab\x{200}\x{100}\x{200}\x{100}cd
442 *** Failers
443
444/[Q\x{100}\x{200}]{1,3}/8
445 ab\x{100}cd
446 ab\x{200}cd
447 ab\x{200}\x{100}\x{200}\x{100}cd
448 *** Failers
449
450/[Q\x{100}\x{200}]{1,3}?/8
451 ab\x{100}cd
452 ab\x{200}cd
453 ab\x{200}\x{100}\x{200}\x{100}cd
454 *** Failers
455
456/(?<=[\x{100}\x{200}])X/8
457 abc\x{200}X
458 abc\x{100}X
459 *** Failers
460 X
461
462/(?<=[Q\x{100}\x{200}])X/8
463 abc\x{200}X
464 abc\x{100}X
465 abQX
466 *** Failers
467 X
468
469/(?<=[\x{100}\x{200}]{3})X/8
470 abc\x{100}\x{200}\x{100}X
471 *** Failers
472 abc\x{200}X
473 X
474
475/[^\x{100}\x{200}]X/8
476 AX
477 \x{150}X
478 \x{500}X
479 *** Failers
480 \x{100}X
481 \x{200}X
482
483/[^Q\x{100}\x{200}]X/8
484 AX
485 \x{150}X
486 \x{500}X
487 *** Failers
488 \x{100}X
489 \x{200}X
490 QX
491
492/[^\x{100}-\x{200}]X/8
493 AX
494 \x{500}X
495 *** Failers
496 \x{100}X
497 \x{150}X
498 \x{200}X
499
500/[z-\x{100}]/8i
501 z
502 Z
503 \x{100}
504 *** Failers
505 \x{102}
506 y
507
508/[\xFF]/
509 >\xff<
510
511/[\xff]/8
512 >\x{ff}<
513
514/[^\xFF]/
515 XYZ
516
517/[^\xff]/8
518 XYZ
519 \x{123}
520
521/^[ac]*b/8
522 xb
523
524/^[ac\x{100}]*b/8
525 xb
526
527/^[^x]*b/8i
528 xb
529
530/^[^x]*b/8
531 xb
532
533/^\d*b/8
534 xb
535
536/(|a)/g8
537 catac
538 a\x{256}a
539
540/^\x{85}$/8i
541 \x{85}
542
543/^abc./mgx8<any>
544 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
545
546/abc.$/mgx8<any>
547 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
548
549/^a\Rb/8<bsr_unicode>
550 a\nb
551 a\rb
552 a\r\nb
553 a\x0bb
554 a\x0cb
555 a\x{85}b
556 a\x{2028}b
557 a\x{2029}b
558 ** Failers
559 a\n\rb
560
561/^a\R*b/8<bsr_unicode>
562 ab
563 a\nb
564 a\rb
565 a\r\nb
566 a\x0bb
567 a\x0c\x{2028}\x{2029}b
568 a\x{85}b
569 a\n\rb
570 a\n\r\x{85}\x0cb
571
572/^a\R+b/8<bsr_unicode>
573 a\nb
574 a\rb
575 a\r\nb
576 a\x0bb
577 a\x0c\x{2028}\x{2029}b
578 a\x{85}b
579 a\n\rb
580 a\n\r\x{85}\x0cb
581 ** Failers
582 ab
583
584/^a\R{1,3}b/8<bsr_unicode>
585 a\nb
586 a\n\rb
587 a\n\r\x{85}b
588 a\r\n\r\nb
589 a\r\n\r\n\r\nb
590 a\n\r\n\rb
591 a\n\n\r\nb
592 ** Failers
593 a\n\n\n\rb
594 a\r
595
596/\h+\V?\v{3,4}/8
597 \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
598
599/\V?\v{3,4}/8
600 \x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
601
602/\h+\V?\v{3,4}/8
603 >\x09\x20\x{a0}X\x0a\x0a\x0a<
604
605/\V?\v{3,4}/8
606 >\x09\x20\x{a0}X\x0a\x0a\x0a<
607
608/\H\h\V\v/8
609 X X\x0a
610 X\x09X\x0b
611 ** Failers
612 \x{a0} X\x0a
613
614/\H*\h+\V?\v{3,4}/8
615 \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
616 \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
617 \x09\x20\x{a0}\x0a\x0b\x0c
618 ** Failers
619 \x09\x20\x{a0}\x0a\x0b
620
621/\H\h\V\v/8
622 \x{3001}\x{3000}\x{2030}\x{2028}
623 X\x{180e}X\x{85}
624 ** Failers
625 \x{2009} X\x0a
626
627/\H*\h+\V?\v{3,4}/8
628 \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
629 \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
630 \x09\x20\x{202f}\x0a\x0b\x0c
631 ** Failers
632 \x09\x{200a}\x{a0}\x{2028}\x0b
633
634/a\Rb/I8<bsr_anycrlf>
635 a\rb
636 a\nb
637 a\r\nb
638 ** Failers
639 a\x{85}b
640 a\x0bb
641
642/a\Rb/I8<bsr_unicode>
643 a\rb
644 a\nb
645 a\r\nb
646 a\x{85}b
647 a\x0bb
648 ** Failers
649 a\x{85}b\<bsr_anycrlf>
650 a\x0bb\<bsr_anycrlf>
651
652/a\R?b/I8<bsr_anycrlf>
653 a\rb
654 a\nb
655 a\r\nb
656 ** Failers
657 a\x{85}b
658 a\x0bb
659
660/a\R?b/I8<bsr_unicode>
661 a\rb
662 a\nb
663 a\r\nb
664 a\x{85}b
665 a\x0bb
666 ** Failers
667 a\x{85}b\<bsr_anycrlf>
668 a\x0bb\<bsr_anycrlf>
669
670/X/8f<any>
671 A\x{1ec5}ABCXYZ
672
673/abcd*/8
674 xxxxabcd\P
675 xxxxabcd\P\P
676
677/abcd*/i8
678 xxxxabcd\P
679 xxxxabcd\P\P
680 XXXXABCD\P
681 XXXXABCD\P\P
682
683/abc\d*/8
684 xxxxabc1\P
685 xxxxabc1\P\P
686
687/abc[de]*/8
688 xxxxabcde\P
689 xxxxabcde\P\P
690
691/\bthe cat\b/8
692 the cat\P
693 the cat\P\P
694
695/a+/8
696 a\x{123}aa\>1
697 a\x{123}aa\>2
698 a\x{123}aa\>3
699 a\x{123}aa\>4
700 a\x{123}aa\>5
701 a\x{123}aa\>6
702
703/ab\Cde/8
704 abXde
705
706/(?<=ab\Cde)X/8
707
708/-- End of testinput8 --/