testinput9 11 KB

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