testinput10 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419
  1. /-- This set of tests check Unicode property support with the DFA matching
  2. functionality of pcre_dfa_exec(). The -dfa flag must be used with pcretest
  3. when running it. --/
  4. /\pL\P{Nd}/8
  5. AB
  6. *** Failers
  7. A0
  8. 00
  9. /\X./8
  10. AB
  11. A\x{300}BC
  12. A\x{300}\x{301}\x{302}BC
  13. *** Failers
  14. \x{300}
  15. /\X\X/8
  16. ABC
  17. A\x{300}B\x{300}\x{301}C
  18. A\x{300}\x{301}\x{302}BC
  19. *** Failers
  20. \x{300}
  21. /^\pL+/8
  22. abcd
  23. a
  24. *** Failers
  25. /^\PL+/8
  26. 1234
  27. =
  28. *** Failers
  29. abcd
  30. /^\X+/8
  31. abcdA\x{300}\x{301}\x{302}
  32. A\x{300}\x{301}\x{302}
  33. A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}
  34. a
  35. *** Failers
  36. \x{300}\x{301}\x{302}
  37. /\X?abc/8
  38. abc
  39. A\x{300}abc
  40. A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
  41. \x{300}abc
  42. *** Failers
  43. /^\X?abc/8
  44. abc
  45. A\x{300}abc
  46. *** Failers
  47. A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
  48. \x{300}abc
  49. /\X*abc/8
  50. abc
  51. A\x{300}abc
  52. A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
  53. \x{300}abc
  54. *** Failers
  55. /^\X*abc/8
  56. abc
  57. A\x{300}abc
  58. A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
  59. *** Failers
  60. \x{300}abc
  61. /^\pL?=./8
  62. A=b
  63. =c
  64. *** Failers
  65. 1=2
  66. AAAA=b
  67. /^\pL*=./8
  68. AAAA=b
  69. =c
  70. *** Failers
  71. 1=2
  72. /^\X{2,3}X/8
  73. A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
  74. A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
  75. *** Failers
  76. X
  77. A\x{300}\x{301}\x{302}X
  78. A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
  79. /^\pC\pL\pM\pN\pP\pS\pZ</8
  80. \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
  81. \np\x{300}9!\$ <
  82. ** Failers
  83. ap\x{300}9!\$ <
  84. /^\PC/8
  85. X
  86. ** Failers
  87. \x7f
  88. /^\PL/8
  89. 9
  90. ** Failers
  91. \x{c0}
  92. /^\PM/8
  93. X
  94. ** Failers
  95. \x{30f}
  96. /^\PN/8
  97. X
  98. ** Failers
  99. \x{660}
  100. /^\PP/8
  101. X
  102. ** Failers
  103. \x{66c}
  104. /^\PS/8
  105. X
  106. ** Failers
  107. \x{f01}
  108. /^\PZ/8
  109. X
  110. ** Failers
  111. \x{1680}
  112. /^\p{Cc}/8
  113. \x{017}
  114. \x{09f}
  115. ** Failers
  116. \x{0600}
  117. /^\p{Cf}/8
  118. \x{601}
  119. \x{180e}
  120. \x{061c}
  121. \x{2066}
  122. \x{2067}
  123. \x{2068}
  124. \x{2069}
  125. ** Failers
  126. \x{09f}
  127. /^\p{Cn}/8
  128. ** Failers
  129. \x{09f}
  130. /^\p{Co}/8
  131. \x{f8ff}
  132. ** Failers
  133. \x{09f}
  134. /^\p{Cs}/8
  135. \?\x{dfff}
  136. ** Failers
  137. \x{09f}
  138. /^\p{Ll}/8
  139. a
  140. ** Failers
  141. Z
  142. \x{e000}
  143. /^\p{Lm}/8
  144. \x{2b0}
  145. ** Failers
  146. a
  147. /^\p{Lo}/8
  148. \x{1bb}
  149. ** Failers
  150. a
  151. \x{2b0}
  152. /^\p{Lt}/8
  153. \x{1c5}
  154. ** Failers
  155. a
  156. \x{2b0}
  157. /^\p{Lu}/8
  158. A
  159. ** Failers
  160. \x{2b0}
  161. /^\p{Mc}/8
  162. \x{903}
  163. ** Failers
  164. X
  165. \x{300}
  166. /^\p{Me}/8
  167. \x{488}
  168. ** Failers
  169. X
  170. \x{903}
  171. \x{300}
  172. /^\p{Mn}/8
  173. \x{300}
  174. \x{1a1b}
  175. ** Failers
  176. X
  177. \x{903}
  178. /^\p{Nd}+/8O
  179. 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
  180. \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
  181. \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
  182. ** Failers
  183. X
  184. /^\p{Nl}/8
  185. \x{16ee}
  186. ** Failers
  187. X
  188. \x{966}
  189. /^\p{No}/8
  190. \x{b2}
  191. \x{b3}
  192. ** Failers
  193. X
  194. \x{16ee}
  195. /^\p{Pc}/8
  196. \x5f
  197. \x{203f}
  198. ** Failers
  199. X
  200. -
  201. \x{58a}
  202. /^\p{Pd}/8
  203. -
  204. \x{58a}
  205. ** Failers
  206. X
  207. \x{203f}
  208. /^\p{Pe}/8
  209. )
  210. ]
  211. }
  212. \x{f3b}
  213. \x{2309}
  214. \x{230b}
  215. ** Failers
  216. X
  217. \x{203f}
  218. (
  219. [
  220. {
  221. \x{f3c}
  222. /^\p{Pf}/8
  223. \x{bb}
  224. \x{2019}
  225. ** Failers
  226. X
  227. \x{203f}
  228. /^\p{Pi}/8
  229. \x{ab}
  230. \x{2018}
  231. ** Failers
  232. X
  233. \x{203f}
  234. /^\p{Po}/8
  235. !
  236. \x{37e}
  237. ** Failers
  238. X
  239. \x{203f}
  240. /^\p{Ps}/8
  241. (
  242. [
  243. {
  244. \x{f3c}
  245. \x{2308}
  246. \x{230a}
  247. ** Failers
  248. X
  249. )
  250. ]
  251. }
  252. \x{f3b}
  253. /^\p{Sc}+/8
  254. $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
  255. \x{9f2}
  256. ** Failers
  257. X
  258. \x{2c2}
  259. /^\p{Sk}/8
  260. \x{2c2}
  261. ** Failers
  262. X
  263. \x{9f2}
  264. /^\p{Sm}+/8
  265. +<|~\x{ac}\x{2044}
  266. ** Failers
  267. X
  268. \x{9f2}
  269. /^\p{So}/8
  270. \x{a6}
  271. \x{482}
  272. ** Failers
  273. X
  274. \x{9f2}
  275. /^\p{Zl}/8
  276. \x{2028}
  277. ** Failers
  278. X
  279. \x{2029}
  280. /^\p{Zp}/8
  281. \x{2029}
  282. ** Failers
  283. X
  284. \x{2028}
  285. /^\p{Zs}/8
  286. \ \
  287. \x{a0}
  288. \x{1680}
  289. \x{2000}
  290. \x{2001}
  291. ** Failers
  292. \x{2028}
  293. \x{200d}
  294. /\p{Nd}+(..)/8
  295. \x{660}\x{661}\x{662}ABC
  296. /\p{Nd}+?(..)/8
  297. \x{660}\x{661}\x{662}ABC
  298. /\p{Nd}{2,}(..)/8
  299. \x{660}\x{661}\x{662}ABC
  300. /\p{Nd}{2,}?(..)/8
  301. \x{660}\x{661}\x{662}ABC
  302. /\p{Nd}*(..)/8
  303. \x{660}\x{661}\x{662}ABC
  304. /\p{Nd}*?(..)/8
  305. \x{660}\x{661}\x{662}ABC
  306. /\p{Nd}{2}(..)/8
  307. \x{660}\x{661}\x{662}ABC
  308. /\p{Nd}{2,3}(..)/8
  309. \x{660}\x{661}\x{662}ABC
  310. /\p{Nd}{2,3}?(..)/8
  311. \x{660}\x{661}\x{662}ABC
  312. /\p{Nd}?(..)/8
  313. \x{660}\x{661}\x{662}ABC
  314. /\p{Nd}??(..)/8
  315. \x{660}\x{661}\x{662}ABC
  316. /\p{Nd}*+(..)/8
  317. \x{660}\x{661}\x{662}ABC
  318. /\p{Nd}*+(...)/8
  319. \x{660}\x{661}\x{662}ABC
  320. /\p{Nd}*+(....)/8
  321. ** Failers
  322. \x{660}\x{661}\x{662}ABC
  323. /\p{Lu}/8i
  324. A
  325. a\x{10a0}B
  326. ** Failers
  327. a
  328. \x{1d00}
  329. /\p{^Lu}/8i
  330. 1234
  331. ** Failers
  332. ABC
  333. /\P{Lu}/8i
  334. 1234
  335. ** Failers
  336. ABC
  337. /(?<=A\p{Nd})XYZ/8
  338. A2XYZ
  339. 123A5XYZPQR
  340. ABA\x{660}XYZpqr
  341. ** Failers
  342. AXYZ
  343. XYZ
  344. /(?<!\pL)XYZ/8
  345. 1XYZ
  346. AB=XYZ..
  347. XYZ
  348. ** Failers
  349. WXYZ
  350. /[\p{Nd}]/8
  351. 1234
  352. /[\p{Nd}+-]+/8
  353. 1234
  354. 12-34
  355. 12+\x{661}-34
  356. ** Failers
  357. abcd
  358. /[\P{Nd}]+/8
  359. abcd
  360. ** Failers
  361. 1234
  362. /\D+/8O
  363. 11111111111111111111111111111111111111111111111111111111111111111111111
  364. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  365. /\P{Nd}+/8O
  366. 11111111111111111111111111111111111111111111111111111111111111111111111
  367. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  368. /[\D]+/8O
  369. 11111111111111111111111111111111111111111111111111111111111111111111111
  370. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  371. /[\P{Nd}]+/8O
  372. 11111111111111111111111111111111111111111111111111111111111111111111111
  373. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  374. /[\D\P{Nd}]+/8O
  375. 11111111111111111111111111111111111111111111111111111111111111111111111
  376. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  377. /\pL/8
  378. a
  379. A
  380. /\pL/8i
  381. a
  382. A
  383. /\p{Lu}/8
  384. A
  385. aZ
  386. ** Failers
  387. abc
  388. /\p{Lu}/8i
  389. A
  390. aZ
  391. ** Failers
  392. abc
  393. /\p{Ll}/8
  394. a
  395. Az
  396. ** Failers
  397. ABC
  398. /\p{Ll}/8i
  399. a
  400. Az
  401. ** Failers
  402. ABC
  403. /^\x{c0}$/8i
  404. \x{c0}
  405. \x{e0}
  406. /^\x{e0}$/8i
  407. \x{c0}
  408. \x{e0}
  409. /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8
  410. A\x{391}\x{10427}\x{ff3a}\x{1fb0}
  411. ** Failers
  412. a\x{391}\x{10427}\x{ff3a}\x{1fb0}
  413. A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
  414. A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
  415. A\x{391}\x{10427}\x{ff5a}\x{1fb0}
  416. A\x{391}\x{10427}\x{ff3a}\x{1fb8}
  417. /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8i
  418. A\x{391}\x{10427}\x{ff3a}\x{1fb0}
  419. a\x{391}\x{10427}\x{ff3a}\x{1fb0}
  420. A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
  421. A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
  422. A\x{391}\x{10427}\x{ff5a}\x{1fb0}
  423. A\x{391}\x{10427}\x{ff3a}\x{1fb8}
  424. /\x{391}+/8i
  425. \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
  426. /\x{391}{3,5}(.)/8i
  427. \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
  428. /\x{391}{3,5}?(.)/8i
  429. \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
  430. /[\x{391}\x{ff3a}]/8i
  431. \x{391}
  432. \x{ff3a}
  433. \x{3b1}
  434. \x{ff5a}
  435. /[\x{c0}\x{391}]/8i
  436. \x{c0}
  437. \x{e0}
  438. /[\x{105}-\x{109}]/8i
  439. \x{104}
  440. \x{105}
  441. \x{109}
  442. ** Failers
  443. \x{100}
  444. \x{10a}
  445. /[z-\x{100}]/8i
  446. Z
  447. z
  448. \x{39c}
  449. \x{178}
  450. |
  451. \x{80}
  452. \x{ff}
  453. \x{100}
  454. \x{101}
  455. ** Failers
  456. \x{102}
  457. Y
  458. y
  459. /[z-\x{100}]/8i
  460. /^\X/8
  461. A
  462. A\x{300}BC
  463. A\x{300}\x{301}\x{302}BC
  464. *** Failers
  465. \x{300}
  466. /^[\X]/8
  467. X123
  468. *** Failers
  469. AXYZ
  470. /^(\X*)C/8
  471. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
  472. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  473. /^(\X*?)C/8
  474. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
  475. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  476. /^(\X*)(.)/8
  477. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
  478. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  479. /^(\X*?)(.)/8
  480. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
  481. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  482. /^\X(.)/8
  483. *** Failers
  484. A\x{300}\x{301}\x{302}
  485. /^\X{2,3}(.)/8
  486. A\x{300}\x{301}B\x{300}X
  487. A\x{300}\x{301}B\x{300}C\x{300}\x{301}
  488. A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
  489. A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
  490. /^\X{2,3}?(.)/8
  491. A\x{300}\x{301}B\x{300}X
  492. A\x{300}\x{301}B\x{300}C\x{300}\x{301}
  493. A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
  494. A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
  495. /^\pN{2,3}X/
  496. 12X
  497. 123X
  498. *** Failers
  499. X
  500. 1X
  501. 1234X
  502. /\x{100}/i8
  503. \x{100}
  504. \x{101}
  505. /^\p{Han}+/8
  506. \x{2e81}\x{3007}\x{2f804}\x{31a0}
  507. ** Failers
  508. \x{2e7f}
  509. /^\P{Katakana}+/8
  510. \x{3105}
  511. ** Failers
  512. \x{30ff}
  513. /^[\p{Arabic}]/8
  514. \x{06e9}
  515. \x{060b}
  516. ** Failers
  517. X\x{06e9}
  518. /^[\P{Yi}]/8
  519. \x{2f800}
  520. ** Failers
  521. \x{a014}
  522. \x{a4c6}
  523. /^\p{Any}X/8
  524. AXYZ
  525. \x{1234}XYZ
  526. ** Failers
  527. X
  528. /^\P{Any}X/8
  529. ** Failers
  530. AX
  531. /^\p{Any}?X/8
  532. XYZ
  533. AXYZ
  534. \x{1234}XYZ
  535. ** Failers
  536. ABXYZ
  537. /^\P{Any}?X/8
  538. XYZ
  539. ** Failers
  540. AXYZ
  541. \x{1234}XYZ
  542. ABXYZ
  543. /^\p{Any}+X/8
  544. AXYZ
  545. \x{1234}XYZ
  546. A\x{1234}XYZ
  547. ** Failers
  548. XYZ
  549. /^\P{Any}+X/8
  550. ** Failers
  551. AXYZ
  552. \x{1234}XYZ
  553. A\x{1234}XYZ
  554. XYZ
  555. /^\p{Any}*X/8
  556. XYZ
  557. AXYZ
  558. \x{1234}XYZ
  559. A\x{1234}XYZ
  560. ** Failers
  561. /^\P{Any}*X/8
  562. XYZ
  563. ** Failers
  564. AXYZ
  565. \x{1234}XYZ
  566. A\x{1234}XYZ
  567. /^[\p{Any}]X/8
  568. AXYZ
  569. \x{1234}XYZ
  570. ** Failers
  571. X
  572. /^[\P{Any}]X/8
  573. ** Failers
  574. AX
  575. /^[\p{Any}]?X/8
  576. XYZ
  577. AXYZ
  578. \x{1234}XYZ
  579. ** Failers
  580. ABXYZ
  581. /^[\P{Any}]?X/8
  582. XYZ
  583. ** Failers
  584. AXYZ
  585. \x{1234}XYZ
  586. ABXYZ
  587. /^[\p{Any}]+X/8
  588. AXYZ
  589. \x{1234}XYZ
  590. A\x{1234}XYZ
  591. ** Failers
  592. XYZ
  593. /^[\P{Any}]+X/8
  594. ** Failers
  595. AXYZ
  596. \x{1234}XYZ
  597. A\x{1234}XYZ
  598. XYZ
  599. /^[\p{Any}]*X/8
  600. XYZ
  601. AXYZ
  602. \x{1234}XYZ
  603. A\x{1234}XYZ
  604. ** Failers
  605. /^[\P{Any}]*X/8
  606. XYZ
  607. ** Failers
  608. AXYZ
  609. \x{1234}XYZ
  610. A\x{1234}XYZ
  611. /^\p{Any}{3,5}?/8
  612. abcdefgh
  613. \x{1234}\n\r\x{3456}xyz
  614. /^\p{Any}{3,5}/8
  615. abcdefgh
  616. \x{1234}\n\r\x{3456}xyz
  617. /^\P{Any}{3,5}?/8
  618. ** Failers
  619. abcdefgh
  620. \x{1234}\n\r\x{3456}xyz
  621. /^\p{L&}X/8
  622. AXY
  623. aXY
  624. \x{1c5}XY
  625. ** Failers
  626. \x{1bb}XY
  627. \x{2b0}XY
  628. !XY
  629. /^[\p{L&}]X/8
  630. AXY
  631. aXY
  632. \x{1c5}XY
  633. ** Failers
  634. \x{1bb}XY
  635. \x{2b0}XY
  636. !XY
  637. /^\p{L&}+X/8
  638. AXY
  639. aXY
  640. AbcdeXyz
  641. \x{1c5}AbXY
  642. abcDEXypqreXlmn
  643. ** Failers
  644. \x{1bb}XY
  645. \x{2b0}XY
  646. !XY
  647. /^[\p{L&}]+X/8
  648. AXY
  649. aXY
  650. AbcdeXyz
  651. \x{1c5}AbXY
  652. abcDEXypqreXlmn
  653. ** Failers
  654. \x{1bb}XY
  655. \x{2b0}XY
  656. !XY
  657. /^\p{L&}+?X/8
  658. AXY
  659. aXY
  660. AbcdeXyz
  661. \x{1c5}AbXY
  662. abcDEXypqreXlmn
  663. ** Failers
  664. \x{1bb}XY
  665. \x{2b0}XY
  666. !XY
  667. /^[\p{L&}]+?X/8
  668. AXY
  669. aXY
  670. AbcdeXyz
  671. \x{1c5}AbXY
  672. abcDEXypqreXlmn
  673. ** Failers
  674. \x{1bb}XY
  675. \x{2b0}XY
  676. !XY
  677. /^\P{L&}X/8
  678. !XY
  679. \x{1bb}XY
  680. \x{2b0}XY
  681. ** Failers
  682. \x{1c5}XY
  683. AXY
  684. /^[\P{L&}]X/8
  685. !XY
  686. \x{1bb}XY
  687. \x{2b0}XY
  688. ** Failers
  689. \x{1c5}XY
  690. AXY
  691. /^\x{023a}+?(\x{0130}+)/8i
  692. \x{023a}\x{2c65}\x{0130}
  693. /^\x{023a}+([^X])/8i
  694. \x{023a}\x{2c65}X
  695. /\x{c0}+\x{116}+/8i
  696. \x{c0}\x{e0}\x{116}\x{117}
  697. /[\x{c0}\x{116}]+/8i
  698. \x{c0}\x{e0}\x{116}\x{117}
  699. /Check property support in non-UTF-8 mode/
  700. /\p{L}{4}/
  701. 123abcdefg
  702. 123abc\xc4\xc5zz
  703. /\p{Carian}\p{Cham}\p{Kayah_Li}\p{Lepcha}\p{Lycian}\p{Lydian}\p{Ol_Chiki}\p{Rejang}\p{Saurashtra}\p{Sundanese}\p{Vai}/8
  704. \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
  705. /\x{a77d}\x{1d79}/8i
  706. \x{a77d}\x{1d79}
  707. \x{1d79}\x{a77d}
  708. /\x{a77d}\x{1d79}/8
  709. \x{a77d}\x{1d79}
  710. ** Failers
  711. \x{1d79}\x{a77d}
  712. /^\p{Xan}/8
  713. ABCD
  714. 1234
  715. \x{6ca}
  716. \x{a6c}
  717. \x{10a7}
  718. ** Failers
  719. _ABC
  720. /^\p{Xan}+/8
  721. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  722. ** Failers
  723. _ABC
  724. /^\p{Xan}*/8
  725. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  726. /^\p{Xan}{2,9}/8
  727. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  728. /^[\p{Xan}]/8
  729. ABCD1234_
  730. 1234abcd_
  731. \x{6ca}
  732. \x{a6c}
  733. \x{10a7}
  734. ** Failers
  735. _ABC
  736. /^[\p{Xan}]+/8
  737. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  738. ** Failers
  739. _ABC
  740. /^>\p{Xsp}/8
  741. >\x{1680}\x{2028}\x{0b}
  742. ** Failers
  743. \x{0b}
  744. /^>\p{Xsp}+/8O
  745. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  746. /^>\p{Xsp}*/8O
  747. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  748. /^>\p{Xsp}{2,9}/8O
  749. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  750. /^>[\p{Xsp}]/8O
  751. >\x{2028}\x{0b}
  752. /^>[\p{Xsp}]+/8O
  753. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  754. /^>\p{Xps}/8
  755. >\x{1680}\x{2028}\x{0b}
  756. >\x{a0}
  757. ** Failers
  758. \x{0b}
  759. /^>\p{Xps}+/8
  760. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  761. /^>\p{Xps}+?/8
  762. >\x{1680}\x{2028}\x{0b}
  763. /^>\p{Xps}*/8
  764. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  765. /^>\p{Xps}{2,9}/8
  766. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  767. /^>\p{Xps}{2,9}?/8
  768. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  769. /^>[\p{Xps}]/8
  770. >\x{2028}\x{0b}
  771. /^>[\p{Xps}]+/8
  772. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  773. /^\p{Xwd}/8
  774. ABCD
  775. 1234
  776. \x{6ca}
  777. \x{a6c}
  778. \x{10a7}
  779. _ABC
  780. ** Failers
  781. []
  782. /^\p{Xwd}+/8
  783. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  784. /^\p{Xwd}*/8
  785. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  786. /^\p{Xwd}{2,9}/8
  787. A_12\x{6ca}\x{a6c}\x{10a7}
  788. /^[\p{Xwd}]/8
  789. ABCD1234_
  790. 1234abcd_
  791. \x{6ca}
  792. \x{a6c}
  793. \x{10a7}
  794. _ABC
  795. ** Failers
  796. []
  797. /^[\p{Xwd}]+/8
  798. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  799. /-- Unicode properties for \b abd \B --/
  800. /\b...\B/8W
  801. abc_
  802. \x{37e}abc\x{376}
  803. \x{37e}\x{376}\x{371}\x{393}\x{394}
  804. !\x{c0}++\x{c1}\x{c2}
  805. !\x{c0}+++++
  806. /-- Without PCRE_UCP, non-ASCII always fail, even if < 256 --/
  807. /\b...\B/8
  808. abc_
  809. ** Failers
  810. \x{37e}abc\x{376}
  811. \x{37e}\x{376}\x{371}\x{393}\x{394}
  812. !\x{c0}++\x{c1}\x{c2}
  813. !\x{c0}+++++
  814. /-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties --/
  815. /\b...\B/W
  816. abc_
  817. !\x{c0}++\x{c1}\x{c2}
  818. !\x{c0}+++++
  819. /-- Caseless single negated characters > 127 need UCP support --/
  820. /[^\x{100}]/8i
  821. \x{100}\x{101}X
  822. /[^\x{100}]+/8i
  823. \x{100}\x{101}XX
  824. /^\X/8
  825. A\P
  826. A\P\P
  827. A\x{300}\x{301}\P
  828. A\x{300}\x{301}\P\P
  829. A\x{301}\P
  830. A\x{301}\P\P
  831. /^\X{2,3}/8
  832. A\P
  833. A\P\P
  834. AA\P
  835. AA\P\P
  836. A\x{300}\x{301}\P
  837. A\x{300}\x{301}\P\P
  838. A\x{300}\x{301}A\x{300}\x{301}\P
  839. A\x{300}\x{301}A\x{300}\x{301}\P\P
  840. /^\X{2}/8
  841. AA\P
  842. AA\P\P
  843. A\x{300}\x{301}A\x{300}\x{301}\P
  844. A\x{300}\x{301}A\x{300}\x{301}\P\P
  845. /^\X+/8
  846. AA\P
  847. AA\P\P
  848. /^\X+?Z/8
  849. AA\P
  850. AA\P\P
  851. /-- These are tests for extended grapheme clusters --/
  852. /^\X/8+
  853. G\x{34e}\x{34e}X
  854. \x{34e}\x{34e}X
  855. \x04X
  856. \x{1100}X
  857. \x{1100}\x{34e}X
  858. \x{1b04}\x{1b04}X
  859. *These match up to the roman letters
  860. \x{1111}\x{1111}L,L
  861. \x{1111}\x{1111}\x{1169}L,L,V
  862. \x{1111}\x{ae4c}L, LV
  863. \x{1111}\x{ad89}L, LVT
  864. \x{1111}\x{ae4c}\x{1169}L, LV, V
  865. \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
  866. \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
  867. \x{1111}\x{ad89}\x{11fe}L, LVT, T
  868. \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
  869. \x{ad89}\x{11fe}\x{11fe}LVT, T, T
  870. *These match just the first codepoint (invalid sequence)
  871. \x{1111}\x{11fe}L, T
  872. \x{ae4c}\x{1111}LV, L
  873. \x{ae4c}\x{ae4c}LV, LV
  874. \x{ae4c}\x{ad89}LV, LVT
  875. \x{1169}\x{1111}V, L
  876. \x{1169}\x{ae4c}V, LV
  877. \x{1169}\x{ad89}V, LVT
  878. \x{ad89}\x{1111}LVT, L
  879. \x{ad89}\x{1169}LVT, V
  880. \x{ad89}\x{ae4c}LVT, LV
  881. \x{ad89}\x{ad89}LVT, LVT
  882. \x{11fe}\x{1111}T, L
  883. \x{11fe}\x{1169}T, V
  884. \x{11fe}\x{ae4c}T, LV
  885. \x{11fe}\x{ad89}T, LVT
  886. *Test extend and spacing mark
  887. \x{1111}\x{ae4c}\x{0711}L, LV, extend
  888. \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
  889. \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
  890. *Test CR, LF, and control
  891. \x0d\x{0711}CR, extend
  892. \x0d\x{1b04}CR, spacingmark
  893. \x0a\x{0711}LF, extend
  894. \x0a\x{1b04}LF, spacingmark
  895. \x0b\x{0711}Control, extend
  896. \x09\x{1b04}Control, spacingmark
  897. *There are no Prepend characters, so we can't test Prepend, CR
  898. /^(?>\X{2})X/8+
  899. \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  900. /^\X{2,4}X/8+
  901. \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  902. \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  903. \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  904. /^\X{2,4}?X/8+
  905. \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  906. \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  907. \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  908. /-- --/
  909. /\x{1e9e}+/8i
  910. \x{1e9e}\x{00df}
  911. /[z\x{1e9e}]+/8i
  912. \x{1e9e}\x{00df}
  913. /\x{00df}+/8i
  914. \x{1e9e}\x{00df}
  915. /[z\x{00df}]+/8i
  916. \x{1e9e}\x{00df}
  917. /\x{1f88}+/8i
  918. \x{1f88}\x{1f80}
  919. /[z\x{1f88}]+/8i
  920. \x{1f88}\x{1f80}
  921. /-- Perl matches these --/
  922. /\x{00b5}+/8i
  923. \x{00b5}\x{039c}\x{03bc}
  924. /\x{039c}+/8i
  925. \x{00b5}\x{039c}\x{03bc}
  926. /\x{03bc}+/8i
  927. \x{00b5}\x{039c}\x{03bc}
  928. /\x{00c5}+/8i
  929. \x{00c5}\x{00e5}\x{212b}
  930. /\x{00e5}+/8i
  931. \x{00c5}\x{00e5}\x{212b}
  932. /\x{212b}+/8i
  933. \x{00c5}\x{00e5}\x{212b}
  934. /\x{01c4}+/8i
  935. \x{01c4}\x{01c5}\x{01c6}
  936. /\x{01c5}+/8i
  937. \x{01c4}\x{01c5}\x{01c6}
  938. /\x{01c6}+/8i
  939. \x{01c4}\x{01c5}\x{01c6}
  940. /\x{01c7}+/8i
  941. \x{01c7}\x{01c8}\x{01c9}
  942. /\x{01c8}+/8i
  943. \x{01c7}\x{01c8}\x{01c9}
  944. /\x{01c9}+/8i
  945. \x{01c7}\x{01c8}\x{01c9}
  946. /\x{01ca}+/8i
  947. \x{01ca}\x{01cb}\x{01cc}
  948. /\x{01cb}+/8i
  949. \x{01ca}\x{01cb}\x{01cc}
  950. /\x{01cc}+/8i
  951. \x{01ca}\x{01cb}\x{01cc}
  952. /\x{01f1}+/8i
  953. \x{01f1}\x{01f2}\x{01f3}
  954. /\x{01f2}+/8i
  955. \x{01f1}\x{01f2}\x{01f3}
  956. /\x{01f3}+/8i
  957. \x{01f1}\x{01f2}\x{01f3}
  958. /\x{0345}+/8i
  959. \x{0345}\x{0399}\x{03b9}\x{1fbe}
  960. /\x{0399}+/8i
  961. \x{0345}\x{0399}\x{03b9}\x{1fbe}
  962. /\x{03b9}+/8i
  963. \x{0345}\x{0399}\x{03b9}\x{1fbe}
  964. /\x{1fbe}+/8i
  965. \x{0345}\x{0399}\x{03b9}\x{1fbe}
  966. /\x{0392}+/8i
  967. \x{0392}\x{03b2}\x{03d0}
  968. /\x{03b2}+/8i
  969. \x{0392}\x{03b2}\x{03d0}
  970. /\x{03d0}+/8i
  971. \x{0392}\x{03b2}\x{03d0}
  972. /\x{0395}+/8i
  973. \x{0395}\x{03b5}\x{03f5}
  974. /\x{03b5}+/8i
  975. \x{0395}\x{03b5}\x{03f5}
  976. /\x{03f5}+/8i
  977. \x{0395}\x{03b5}\x{03f5}
  978. /\x{0398}+/8i
  979. \x{0398}\x{03b8}\x{03d1}\x{03f4}
  980. /\x{03b8}+/8i
  981. \x{0398}\x{03b8}\x{03d1}\x{03f4}
  982. /\x{03d1}+/8i
  983. \x{0398}\x{03b8}\x{03d1}\x{03f4}
  984. /\x{03f4}+/8i
  985. \x{0398}\x{03b8}\x{03d1}\x{03f4}
  986. /\x{039a}+/8i
  987. \x{039a}\x{03ba}\x{03f0}
  988. /\x{03ba}+/8i
  989. \x{039a}\x{03ba}\x{03f0}
  990. /\x{03f0}+/8i
  991. \x{039a}\x{03ba}\x{03f0}
  992. /\x{03a0}+/8i
  993. \x{03a0}\x{03c0}\x{03d6}
  994. /\x{03c0}+/8i
  995. \x{03a0}\x{03c0}\x{03d6}
  996. /\x{03d6}+/8i
  997. \x{03a0}\x{03c0}\x{03d6}
  998. /\x{03a1}+/8i
  999. \x{03a1}\x{03c1}\x{03f1}
  1000. /\x{03c1}+/8i
  1001. \x{03a1}\x{03c1}\x{03f1}
  1002. /\x{03f1}+/8i
  1003. \x{03a1}\x{03c1}\x{03f1}
  1004. /\x{03a3}+/8i
  1005. \x{03A3}\x{03C2}\x{03C3}
  1006. /\x{03c2}+/8i
  1007. \x{03A3}\x{03C2}\x{03C3}
  1008. /\x{03c3}+/8i
  1009. \x{03A3}\x{03C2}\x{03C3}
  1010. /\x{03a6}+/8i
  1011. \x{03a6}\x{03c6}\x{03d5}
  1012. /\x{03c6}+/8i
  1013. \x{03a6}\x{03c6}\x{03d5}
  1014. /\x{03d5}+/8i
  1015. \x{03a6}\x{03c6}\x{03d5}
  1016. /\x{03c9}+/8i
  1017. \x{03c9}\x{03a9}\x{2126}
  1018. /\x{03a9}+/8i
  1019. \x{03c9}\x{03a9}\x{2126}
  1020. /\x{2126}+/8i
  1021. \x{03c9}\x{03a9}\x{2126}
  1022. /\x{1e60}+/8i
  1023. \x{1e60}\x{1e61}\x{1e9b}
  1024. /\x{1e61}+/8i
  1025. \x{1e60}\x{1e61}\x{1e9b}
  1026. /\x{1e9b}+/8i
  1027. \x{1e60}\x{1e61}\x{1e9b}
  1028. /\x{1e9e}+/8i
  1029. \x{1e9e}\x{00df}
  1030. /\x{00df}+/8i
  1031. \x{1e9e}\x{00df}
  1032. /\x{1f88}+/8i
  1033. \x{1f88}\x{1f80}
  1034. /\x{1f80}+/8i
  1035. \x{1f88}\x{1f80}
  1036. /\x{004b}+/8i
  1037. \x{004b}\x{006b}\x{212a}
  1038. /\x{006b}+/8i
  1039. \x{004b}\x{006b}\x{212a}
  1040. /\x{212a}+/8i
  1041. \x{004b}\x{006b}\x{212a}
  1042. /\x{0053}+/8i
  1043. \x{0053}\x{0073}\x{017f}
  1044. /\x{0073}+/8i
  1045. \x{0053}\x{0073}\x{017f}
  1046. /\x{017f}+/8i
  1047. \x{0053}\x{0073}\x{017f}
  1048. /ist/8i
  1049. ikt
  1050. /is+t/8i
  1051. iSs\x{17f}t
  1052. ikt
  1053. /is+?t/8i
  1054. ikt
  1055. /is?t/8i
  1056. ikt
  1057. /is{2}t/8i
  1058. iskt
  1059. /^\p{Xuc}/8
  1060. $abc
  1061. @abc
  1062. `abc
  1063. \x{1234}abc
  1064. ** Failers
  1065. abc
  1066. /^\p{Xuc}+/8
  1067. $@`\x{a0}\x{1234}\x{e000}**
  1068. ** Failers
  1069. \x{9f}
  1070. /^\p{Xuc}+?/8
  1071. $@`\x{a0}\x{1234}\x{e000}**
  1072. ** Failers
  1073. \x{9f}
  1074. /^\p{Xuc}+?\*/8
  1075. $@`\x{a0}\x{1234}\x{e000}**
  1076. ** Failers
  1077. \x{9f}
  1078. /^\p{Xuc}++/8
  1079. $@`\x{a0}\x{1234}\x{e000}**
  1080. ** Failers
  1081. \x{9f}
  1082. /^\p{Xuc}{3,5}/8
  1083. $@`\x{a0}\x{1234}\x{e000}**
  1084. ** Failers
  1085. \x{9f}
  1086. /^\p{Xuc}{3,5}?/8
  1087. $@`\x{a0}\x{1234}\x{e000}**
  1088. ** Failers
  1089. \x{9f}
  1090. /^[\p{Xuc}]/8
  1091. $@`\x{a0}\x{1234}\x{e000}**
  1092. ** Failers
  1093. \x{9f}
  1094. /^[\p{Xuc}]+/8
  1095. $@`\x{a0}\x{1234}\x{e000}**
  1096. ** Failers
  1097. \x{9f}
  1098. /^\P{Xuc}/8
  1099. abc
  1100. ** Failers
  1101. $abc
  1102. @abc
  1103. `abc
  1104. \x{1234}abc
  1105. /^[\P{Xuc}]/8
  1106. abc
  1107. ** Failers
  1108. $abc
  1109. @abc
  1110. `abc
  1111. \x{1234}abc
  1112. /^A\s+Z/8W
  1113. A\x{2005}Z
  1114. A\x{85}\x{180e}\x{2005}Z
  1115. /^A[\s]+Z/8W
  1116. A\x{2005}Z
  1117. A\x{85}\x{180e}\x{2005}Z
  1118. /-- End of testinput10 --/