github的一些开源项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4230 lines
99 KiB

  1. # This set of tests checks UTF and Unicode property support with the DFA
  2. # matching functionality of pcre2_dfa_match(). A default subject modifier is
  3. # used to force DFA matching for all tests.
  4. #subject dfa
  5. #newline_default LF any anyCRLF
  6. /\x{100}ab/utf
  7. \x{100}ab
  8. 0: \x{100}ab
  9. /a\x{100}*b/utf
  10. ab
  11. 0: ab
  12. a\x{100}b
  13. 0: a\x{100}b
  14. a\x{100}\x{100}b
  15. 0: a\x{100}\x{100}b
  16. /a\x{100}+b/utf
  17. a\x{100}b
  18. 0: a\x{100}b
  19. a\x{100}\x{100}b
  20. 0: a\x{100}\x{100}b
  21. \= Expect no match
  22. ab
  23. No match
  24. /\bX/utf
  25. Xoanon
  26. 0: X
  27. +Xoanon
  28. 0: X
  29. \x{300}Xoanon
  30. 0: X
  31. \= Expect no match
  32. YXoanon
  33. No match
  34. /\BX/utf
  35. YXoanon
  36. 0: X
  37. \= Expect no match
  38. Xoanon
  39. No match
  40. +Xoanon
  41. No match
  42. \x{300}Xoanon
  43. No match
  44. /X\b/utf
  45. X+oanon
  46. 0: X
  47. ZX\x{300}oanon
  48. 0: X
  49. FAX
  50. 0: X
  51. \= Expect no match
  52. Xoanon
  53. No match
  54. /X\B/utf
  55. Xoanon
  56. 0: X
  57. \= Expect no match
  58. X+oanon
  59. No match
  60. ZX\x{300}oanon
  61. No match
  62. FAX
  63. No match
  64. /[^a]/utf
  65. abcd
  66. 0: b
  67. a\x{100}
  68. 0: \x{100}
  69. /^[abc\x{123}\x{400}-\x{402}]{2,3}\d/utf
  70. ab99
  71. 0: ab9
  72. \x{123}\x{123}45
  73. 0: \x{123}\x{123}4
  74. \x{400}\x{401}\x{402}6
  75. 0: \x{400}\x{401}\x{402}6
  76. \= Expect no match
  77. d99
  78. No match
  79. \x{123}\x{122}4
  80. No match
  81. \x{400}\x{403}6
  82. No match
  83. \x{400}\x{401}\x{402}\x{402}6
  84. No match
  85. /a.b/utf
  86. acb
  87. 0: acb
  88. a\x7fb
  89. 0: a\x{7f}b
  90. a\x{100}b
  91. 0: a\x{100}b
  92. \= Expect no match
  93. a\nb
  94. No match
  95. /a(.{3})b/utf
  96. a\x{4000}xyb
  97. 0: a\x{4000}xyb
  98. a\x{4000}\x7fyb
  99. 0: a\x{4000}\x{7f}yb
  100. a\x{4000}\x{100}yb
  101. 0: a\x{4000}\x{100}yb
  102. \= Expect no match
  103. a\x{4000}b
  104. No match
  105. ac\ncb
  106. No match
  107. /a(.*?)(.)/
  108. a\xc0\x88b
  109. 0: a\xc0\x88b
  110. 1: a\xc0\x88
  111. 2: a\xc0
  112. /a(.*?)(.)/utf
  113. a\x{100}b
  114. 0: a\x{100}b
  115. 1: a\x{100}
  116. /a(.*)(.)/
  117. a\xc0\x88b
  118. 0: a\xc0\x88b
  119. 1: a\xc0\x88
  120. 2: a\xc0
  121. /a(.*)(.)/utf
  122. a\x{100}b
  123. 0: a\x{100}b
  124. 1: a\x{100}
  125. /a(.)(.)/
  126. a\xc0\x92bcd
  127. 0: a\xc0\x92
  128. /a(.)(.)/utf
  129. a\x{240}bcd
  130. 0: a\x{240}b
  131. /a(.?)(.)/
  132. a\xc0\x92bcd
  133. 0: a\xc0\x92
  134. 1: a\xc0
  135. /a(.?)(.)/utf
  136. a\x{240}bcd
  137. 0: a\x{240}b
  138. 1: a\x{240}
  139. /a(.??)(.)/
  140. a\xc0\x92bcd
  141. 0: a\xc0\x92
  142. 1: a\xc0
  143. /a(.??)(.)/utf
  144. a\x{240}bcd
  145. 0: a\x{240}b
  146. 1: a\x{240}
  147. /a(.{3})b/utf
  148. a\x{1234}xyb
  149. 0: a\x{1234}xyb
  150. a\x{1234}\x{4321}yb
  151. 0: a\x{1234}\x{4321}yb
  152. a\x{1234}\x{4321}\x{3412}b
  153. 0: a\x{1234}\x{4321}\x{3412}b
  154. \= Expect no match
  155. a\x{1234}b
  156. No match
  157. ac\ncb
  158. No match
  159. /a(.{3,})b/utf
  160. a\x{1234}xyb
  161. 0: a\x{1234}xyb
  162. a\x{1234}\x{4321}yb
  163. 0: a\x{1234}\x{4321}yb
  164. a\x{1234}\x{4321}\x{3412}b
  165. 0: a\x{1234}\x{4321}\x{3412}b
  166. axxxxbcdefghijb
  167. 0: axxxxbcdefghijb
  168. 1: axxxxb
  169. a\x{1234}\x{4321}\x{3412}\x{3421}b
  170. 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
  171. \= Expect no match
  172. a\x{1234}b
  173. No match
  174. /a(.{3,}?)b/utf
  175. a\x{1234}xyb
  176. 0: a\x{1234}xyb
  177. a\x{1234}\x{4321}yb
  178. 0: a\x{1234}\x{4321}yb
  179. a\x{1234}\x{4321}\x{3412}b
  180. 0: a\x{1234}\x{4321}\x{3412}b
  181. axxxxbcdefghijb
  182. 0: axxxxbcdefghijb
  183. 1: axxxxb
  184. a\x{1234}\x{4321}\x{3412}\x{3421}b
  185. 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
  186. \= Expect no match
  187. a\x{1234}b
  188. No match
  189. /a(.{3,5})b/utf
  190. a\x{1234}xyb
  191. 0: a\x{1234}xyb
  192. a\x{1234}\x{4321}yb
  193. 0: a\x{1234}\x{4321}yb
  194. a\x{1234}\x{4321}\x{3412}b
  195. 0: a\x{1234}\x{4321}\x{3412}b
  196. axxxxbcdefghijb
  197. 0: axxxxb
  198. a\x{1234}\x{4321}\x{3412}\x{3421}b
  199. 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
  200. axbxxbcdefghijb
  201. 0: axbxxb
  202. axxxxxbcdefghijb
  203. 0: axxxxxb
  204. \= Expect no match
  205. a\x{1234}b
  206. No match
  207. axxxxxxbcdefghijb
  208. No match
  209. /a(.{3,5}?)b/utf
  210. a\x{1234}xyb
  211. 0: a\x{1234}xyb
  212. a\x{1234}\x{4321}yb
  213. 0: a\x{1234}\x{4321}yb
  214. a\x{1234}\x{4321}\x{3412}b
  215. 0: a\x{1234}\x{4321}\x{3412}b
  216. axxxxbcdefghijb
  217. 0: axxxxb
  218. a\x{1234}\x{4321}\x{3412}\x{3421}b
  219. 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
  220. axbxxbcdefghijb
  221. 0: axbxxb
  222. axxxxxbcdefghijb
  223. 0: axxxxxb
  224. \= Expect no match
  225. a\x{1234}b
  226. No match
  227. axxxxxxbcdefghijb
  228. No match
  229. /^[a\x{c0}]/utf
  230. \= Expect no match
  231. \x{100}
  232. No match
  233. /(?<=aXb)cd/utf
  234. aXbcd
  235. 0: cd
  236. /(?<=a\x{100}b)cd/utf
  237. a\x{100}bcd
  238. 0: cd
  239. /(?<=a\x{100000}b)cd/utf
  240. a\x{100000}bcd
  241. 0: cd
  242. /(?:\x{100}){3}b/utf
  243. \x{100}\x{100}\x{100}b
  244. 0: \x{100}\x{100}\x{100}b
  245. \= Expect no match
  246. \x{100}\x{100}b
  247. No match
  248. /\x{ab}/utf
  249. \x{ab}
  250. 0: \x{ab}
  251. \xc2\xab
  252. 0: \x{ab}
  253. \= Expect no match
  254. \x00{ab}
  255. No match
  256. /(?<=(.))X/utf
  257. WXYZ
  258. 0: X
  259. \x{256}XYZ
  260. 0: X
  261. \= Expect no match
  262. XYZ
  263. No match
  264. /[^a]+/g,utf
  265. bcd
  266. 0: bcd
  267. \x{100}aY\x{256}Z
  268. 0: \x{100}
  269. 0: Y\x{256}Z
  270. /^[^a]{2}/utf
  271. \x{100}bc
  272. 0: \x{100}b
  273. /^[^a]{2,}/utf
  274. \x{100}bcAa
  275. 0: \x{100}bcA
  276. /^[^a]{2,}?/utf
  277. \x{100}bca
  278. 0: \x{100}bc
  279. 1: \x{100}b
  280. /[^a]+/gi,utf
  281. bcd
  282. 0: bcd
  283. \x{100}aY\x{256}Z
  284. 0: \x{100}
  285. 0: Y\x{256}Z
  286. /^[^a]{2}/i,utf
  287. \x{100}bc
  288. 0: \x{100}b
  289. /^[^a]{2,}/i,utf
  290. \x{100}bcAa
  291. 0: \x{100}bc
  292. /^[^a]{2,}?/i,utf
  293. \x{100}bca
  294. 0: \x{100}bc
  295. 1: \x{100}b
  296. /\x{100}{0,0}/utf
  297. abcd
  298. 0:
  299. /\x{100}?/utf
  300. abcd
  301. 0:
  302. \x{100}\x{100}
  303. 0: \x{100}
  304. /\x{100}{0,3}/utf
  305. \x{100}\x{100}
  306. 0: \x{100}\x{100}
  307. \x{100}\x{100}\x{100}\x{100}
  308. 0: \x{100}\x{100}\x{100}
  309. /\x{100}*/utf
  310. abce
  311. 0:
  312. \x{100}\x{100}\x{100}\x{100}
  313. 0: \x{100}\x{100}\x{100}\x{100}
  314. /\x{100}{1,1}/utf
  315. abcd\x{100}\x{100}\x{100}\x{100}
  316. 0: \x{100}
  317. /\x{100}{1,3}/utf
  318. abcd\x{100}\x{100}\x{100}\x{100}
  319. 0: \x{100}\x{100}\x{100}
  320. /\x{100}+/utf
  321. abcd\x{100}\x{100}\x{100}\x{100}
  322. 0: \x{100}\x{100}\x{100}\x{100}
  323. /\x{100}{3}/utf
  324. abcd\x{100}\x{100}\x{100}XX
  325. 0: \x{100}\x{100}\x{100}
  326. /\x{100}{3,5}/utf
  327. abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
  328. 0: \x{100}\x{100}\x{100}\x{100}\x{100}
  329. /\x{100}{3,}/utf,no_auto_possess
  330. abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
  331. 0: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  332. 1: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  333. 2: \x{100}\x{100}\x{100}\x{100}\x{100}
  334. 3: \x{100}\x{100}\x{100}\x{100}
  335. 4: \x{100}\x{100}\x{100}
  336. /(?<=a\x{100}{2}b)X/utf
  337. Xyyya\x{100}\x{100}bXzzz
  338. 0: X
  339. /\D*/utf,no_auto_possess
  340. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  341. Matched, but offsets vector is too small to show all matches
  342. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  343. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  344. 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  345. 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  346. 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  347. 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  348. 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  349. 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  350. 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  351. 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  352. 10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  353. 11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  354. 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  355. 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  356. 14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  357. /\D*/utf,no_auto_possess
  358. \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  359. Matched, but offsets vector is too small to show all matches
  360. 0: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  361. 1: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  362. 2: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  363. 3: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  364. 4: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  365. 5: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  366. 6: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  367. 7: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  368. 8: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  369. 9: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  370. 10: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  371. 11: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  372. 12: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  373. 13: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  374. 14: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  375. /\D/utf
  376. 1X2
  377. 0: X
  378. 1\x{100}2
  379. 0: \x{100}
  380. />\S/utf
  381. > >X Y
  382. 0: >X
  383. > >\x{100} Y
  384. 0: >\x{100}
  385. /\d/utf
  386. \x{100}3
  387. 0: 3
  388. /\s/utf
  389. \x{100} X
  390. 0:
  391. /\D+/utf
  392. 12abcd34
  393. 0: abcd
  394. \= Expect no match
  395. 1234
  396. No match
  397. /\D{2,3}/utf
  398. 12abcd34
  399. 0: abc
  400. 12ab34
  401. 0: ab
  402. \= Expect no match
  403. 1234
  404. No match
  405. 12a34
  406. No match
  407. /\D{2,3}?/utf
  408. 12abcd34
  409. 0: abc
  410. 1: ab
  411. 12ab34
  412. 0: ab
  413. \= Expect no match
  414. 1234
  415. No match
  416. 12a34
  417. No match
  418. /\d+/utf
  419. 12abcd34
  420. 0: 12
  421. /\d{2,3}/utf
  422. 12abcd34
  423. 0: 12
  424. 1234abcd
  425. 0: 123
  426. \= Expect no match
  427. 1.4
  428. No match
  429. /\d{2,3}?/utf
  430. 12abcd34
  431. 0: 12
  432. 1234abcd
  433. 0: 123
  434. 1: 12
  435. \= Expect no match
  436. 1.4
  437. No match
  438. /\S+/utf
  439. 12abcd34
  440. 0: 12abcd34
  441. \= Expect no match
  442. \ \
  443. No match
  444. /\S{2,3}/utf
  445. 12abcd34
  446. 0: 12a
  447. 1234abcd
  448. 0: 123
  449. \= Expect no match
  450. \ \
  451. No match
  452. /\S{2,3}?/utf
  453. 12abcd34
  454. 0: 12a
  455. 1: 12
  456. 1234abcd
  457. 0: 123
  458. 1: 12
  459. \= Expect no match
  460. \ \
  461. No match
  462. />\s+</utf
  463. 12> <34
  464. 0: > <
  465. />\s{2,3}</utf
  466. ab> <cd
  467. 0: > <
  468. ab> <ce
  469. 0: > <
  470. \= Expect no match
  471. ab> <cd
  472. No match
  473. />\s{2,3}?</utf
  474. ab> <cd
  475. 0: > <
  476. ab> <ce
  477. 0: > <
  478. \= Expect no match
  479. ab> <cd
  480. No match
  481. /\w+/utf
  482. 12 34
  483. 0: 12
  484. \= Expect no match
  485. +++=*!
  486. No match
  487. /\w{2,3}/utf
  488. ab cd
  489. 0: ab
  490. abcd ce
  491. 0: abc
  492. \= Expect no match
  493. a.b.c
  494. No match
  495. /\w{2,3}?/utf
  496. ab cd
  497. 0: ab
  498. abcd ce
  499. 0: abc
  500. 1: ab
  501. \= Expect no match
  502. a.b.c
  503. No match
  504. /\W+/utf
  505. 12====34
  506. 0: ====
  507. \= Expect no match
  508. abcd
  509. No match
  510. /\W{2,3}/utf
  511. ab====cd
  512. 0: ===
  513. ab==cd
  514. 0: ==
  515. \= Expect no match
  516. a.b.c
  517. No match
  518. /\W{2,3}?/utf
  519. ab====cd
  520. 0: ===
  521. 1: ==
  522. ab==cd
  523. 0: ==
  524. \= Expect no match
  525. a.b.c
  526. No match
  527. /[\x{100}]/utf
  528. \x{100}
  529. 0: \x{100}
  530. Z\x{100}
  531. 0: \x{100}
  532. \x{100}Z
  533. 0: \x{100}
  534. /[Z\x{100}]/utf
  535. Z\x{100}
  536. 0: Z
  537. \x{100}
  538. 0: \x{100}
  539. \x{100}Z
  540. 0: \x{100}
  541. /[\x{100}\x{200}]/utf
  542. ab\x{100}cd
  543. 0: \x{100}
  544. ab\x{200}cd
  545. 0: \x{200}
  546. /[\x{100}-\x{200}]/utf
  547. ab\x{100}cd
  548. 0: \x{100}
  549. ab\x{200}cd
  550. 0: \x{200}
  551. ab\x{111}cd
  552. 0: \x{111}
  553. /[z-\x{200}]/utf
  554. ab\x{100}cd
  555. 0: \x{100}
  556. ab\x{200}cd
  557. 0: \x{200}
  558. ab\x{111}cd
  559. 0: \x{111}
  560. abzcd
  561. 0: z
  562. ab|cd
  563. 0: |
  564. /[Q\x{100}\x{200}]/utf
  565. ab\x{100}cd
  566. 0: \x{100}
  567. ab\x{200}cd
  568. 0: \x{200}
  569. Q?
  570. 0: Q
  571. /[Q\x{100}-\x{200}]/utf
  572. ab\x{100}cd
  573. 0: \x{100}
  574. ab\x{200}cd
  575. 0: \x{200}
  576. ab\x{111}cd
  577. 0: \x{111}
  578. Q?
  579. 0: Q
  580. /[Qz-\x{200}]/utf
  581. ab\x{100}cd
  582. 0: \x{100}
  583. ab\x{200}cd
  584. 0: \x{200}
  585. ab\x{111}cd
  586. 0: \x{111}
  587. abzcd
  588. 0: z
  589. ab|cd
  590. 0: |
  591. Q?
  592. 0: Q
  593. /[\x{100}\x{200}]{1,3}/utf
  594. ab\x{100}cd
  595. 0: \x{100}
  596. ab\x{200}cd
  597. 0: \x{200}
  598. ab\x{200}\x{100}\x{200}\x{100}cd
  599. 0: \x{200}\x{100}\x{200}
  600. /[\x{100}\x{200}]{1,3}?/utf
  601. ab\x{100}cd
  602. 0: \x{100}
  603. ab\x{200}cd
  604. 0: \x{200}
  605. ab\x{200}\x{100}\x{200}\x{100}cd
  606. 0: \x{200}\x{100}\x{200}
  607. 1: \x{200}\x{100}
  608. 2: \x{200}
  609. /[Q\x{100}\x{200}]{1,3}/utf
  610. ab\x{100}cd
  611. 0: \x{100}
  612. ab\x{200}cd
  613. 0: \x{200}
  614. ab\x{200}\x{100}\x{200}\x{100}cd
  615. 0: \x{200}\x{100}\x{200}
  616. /[Q\x{100}\x{200}]{1,3}?/utf
  617. ab\x{100}cd
  618. 0: \x{100}
  619. ab\x{200}cd
  620. 0: \x{200}
  621. ab\x{200}\x{100}\x{200}\x{100}cd
  622. 0: \x{200}\x{100}\x{200}
  623. 1: \x{200}\x{100}
  624. 2: \x{200}
  625. /(?<=[\x{100}\x{200}])X/utf
  626. abc\x{200}X
  627. 0: X
  628. abc\x{100}X
  629. 0: X
  630. \= Expect no match
  631. X
  632. No match
  633. /(?<=[Q\x{100}\x{200}])X/utf
  634. abc\x{200}X
  635. 0: X
  636. abc\x{100}X
  637. 0: X
  638. abQX
  639. 0: X
  640. \= Expect no match
  641. X
  642. No match
  643. /(?<=[\x{100}\x{200}]{3})X/utf
  644. abc\x{100}\x{200}\x{100}X
  645. 0: X
  646. \= Expect no match
  647. abc\x{200}X
  648. No match
  649. X
  650. No match
  651. /[^\x{100}\x{200}]X/utf
  652. AX
  653. 0: AX
  654. \x{150}X
  655. 0: \x{150}X
  656. \x{500}X
  657. 0: \x{500}X
  658. \= Expect no match
  659. \x{100}X
  660. No match
  661. \x{200}X
  662. No match
  663. /[^Q\x{100}\x{200}]X/utf
  664. AX
  665. 0: AX
  666. \x{150}X
  667. 0: \x{150}X
  668. \x{500}X
  669. 0: \x{500}X
  670. \= Expect no match
  671. \x{100}X
  672. No match
  673. \x{200}X
  674. No match
  675. QX
  676. No match
  677. /[^\x{100}-\x{200}]X/utf
  678. AX
  679. 0: AX
  680. \x{500}X
  681. 0: \x{500}X
  682. \= Expect no match
  683. \x{100}X
  684. No match
  685. \x{150}X
  686. No match
  687. \x{200}X
  688. No match
  689. /[z-\x{100}]/i,utf
  690. z
  691. 0: z
  692. Z
  693. 0: Z
  694. \x{100}
  695. 0: \x{100}
  696. \= Expect no match
  697. \x{102}
  698. No match
  699. y
  700. No match
  701. /[\xFF]/
  702. >\xff<
  703. 0: \xff
  704. /[\xff]/utf
  705. >\x{ff}<
  706. 0: \x{ff}
  707. /[^\xFF]/
  708. XYZ
  709. 0: X
  710. /[^\xff]/utf
  711. XYZ
  712. 0: X
  713. \x{123}
  714. 0: \x{123}
  715. /^[ac]*b/utf
  716. \= Expect no match
  717. xb
  718. No match
  719. /^[ac\x{100}]*b/utf
  720. \= Expect no match
  721. xb
  722. No match
  723. /^[^x]*b/i,utf
  724. \= Expect no match
  725. xb
  726. No match
  727. /^[^x]*b/utf
  728. \= Expect no match
  729. xb
  730. No match
  731. /^\d*b/utf
  732. \= Expect no match
  733. xb
  734. No match
  735. /(|a)/g,utf
  736. catac
  737. 0:
  738. 0: a
  739. 1:
  740. 0:
  741. 0: a
  742. 1:
  743. 0:
  744. 0:
  745. a\x{256}a
  746. 0: a
  747. 1:
  748. 0:
  749. 0: a
  750. 1:
  751. 0:
  752. /^\x{85}$/i,utf
  753. \x{85}
  754. 0: \x{85}
  755. /^abc./gmx,newline=any,utf
  756. abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
  757. 0: abc1
  758. 0: abc2
  759. 0: abc3
  760. 0: abc4
  761. 0: abc5
  762. 0: abc6
  763. 0: abc7
  764. 0: abc8
  765. 0: abc9
  766. /abc.$/gmx,newline=any,utf
  767. abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
  768. 0: abc1
  769. 0: abc2
  770. 0: abc3
  771. 0: abc4
  772. 0: abc5
  773. 0: abc6
  774. 0: abc7
  775. 0: abc8
  776. 0: abc9
  777. /^a\Rb/bsr=unicode,utf
  778. a\nb
  779. 0: a\x{0a}b
  780. a\rb
  781. 0: a\x{0d}b
  782. a\r\nb
  783. 0: a\x{0d}\x{0a}b
  784. a\x0bb
  785. 0: a\x{0b}b
  786. a\x0cb
  787. 0: a\x{0c}b
  788. a\x{85}b
  789. 0: a\x{85}b
  790. a\x{2028}b
  791. 0: a\x{2028}b
  792. a\x{2029}b
  793. 0: a\x{2029}b
  794. \= Expect no match
  795. a\n\rb
  796. No match
  797. /^a\R*b/bsr=unicode,utf
  798. ab
  799. 0: ab
  800. a\nb
  801. 0: a\x{0a}b
  802. a\rb
  803. 0: a\x{0d}b
  804. a\r\nb
  805. 0: a\x{0d}\x{0a}b
  806. a\x0bb
  807. 0: a\x{0b}b
  808. a\x0c\x{2028}\x{2029}b
  809. 0: a\x{0c}\x{2028}\x{2029}b
  810. a\x{85}b
  811. 0: a\x{85}b
  812. a\n\rb
  813. 0: a\x{0a}\x{0d}b
  814. a\n\r\x{85}\x0cb
  815. 0: a\x{0a}\x{0d}\x{85}\x{0c}b
  816. /^a\R+b/bsr=unicode,utf
  817. a\nb
  818. 0: a\x{0a}b
  819. a\rb
  820. 0: a\x{0d}b
  821. a\r\nb
  822. 0: a\x{0d}\x{0a}b
  823. a\x0bb
  824. 0: a\x{0b}b
  825. a\x0c\x{2028}\x{2029}b
  826. 0: a\x{0c}\x{2028}\x{2029}b
  827. a\x{85}b
  828. 0: a\x{85}b
  829. a\n\rb
  830. 0: a\x{0a}\x{0d}b
  831. a\n\r\x{85}\x0cb
  832. 0: a\x{0a}\x{0d}\x{85}\x{0c}b
  833. \= Expect no match
  834. ab
  835. No match
  836. /^a\R{1,3}b/bsr=unicode,utf
  837. a\nb
  838. 0: a\x{0a}b
  839. a\n\rb
  840. 0: a\x{0a}\x{0d}b
  841. a\n\r\x{85}b
  842. 0: a\x{0a}\x{0d}\x{85}b
  843. a\r\n\r\nb
  844. 0: a\x{0d}\x{0a}\x{0d}\x{0a}b
  845. a\r\n\r\n\r\nb
  846. 0: a\x{0d}\x{0a}\x{0d}\x{0a}\x{0d}\x{0a}b
  847. a\n\r\n\rb
  848. 0: a\x{0a}\x{0d}\x{0a}\x{0d}b
  849. a\n\n\r\nb
  850. 0: a\x{0a}\x{0a}\x{0d}\x{0a}b
  851. \= Expect no match
  852. a\n\n\n\rb
  853. No match
  854. a\r
  855. No match
  856. /\h+\V?\v{3,4}/utf,no_auto_possess
  857. \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
  858. 0: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}\x{0d}
  859. 1: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}
  860. /\V?\v{3,4}/utf,no_auto_possess
  861. \x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
  862. 0: X\x{0a}\x{0b}\x{0c}\x{0d}
  863. 1: X\x{0a}\x{0b}\x{0c}
  864. /\h+\V?\v{3,4}/utf,no_auto_possess
  865. >\x09\x20\x{a0}X\x0a\x0a\x0a<
  866. 0: \x{09} \x{a0}X\x{0a}\x{0a}\x{0a}
  867. /\V?\v{3,4}/utf,no_auto_possess
  868. >\x09\x20\x{a0}X\x0a\x0a\x0a<
  869. 0: X\x{0a}\x{0a}\x{0a}
  870. /\H\h\V\v/utf
  871. X X\x0a
  872. 0: X X\x{0a}
  873. X\x09X\x0b
  874. 0: X\x{09}X\x{0b}
  875. \= Expect no match
  876. \x{a0} X\x0a
  877. No match
  878. /\H*\h+\V?\v{3,4}/utf,no_auto_possess
  879. \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
  880. 0: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}\x{0d}
  881. 1: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}
  882. \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
  883. 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}\x{0d}
  884. 1: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}
  885. \x09\x20\x{a0}\x0a\x0b\x0c
  886. 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}
  887. \= Expect no match
  888. \x09\x20\x{a0}\x0a\x0b
  889. No match
  890. /\H\h\V\v/utf
  891. \x{3001}\x{3000}\x{2030}\x{2028}
  892. 0: \x{3001}\x{3000}\x{2030}\x{2028}
  893. X\x{180e}X\x{85}
  894. 0: X\x{180e}X\x{85}
  895. \= Expect no match
  896. \x{2009} X\x0a
  897. No match
  898. /\H*\h+\V?\v{3,4}/utf,no_auto_possess
  899. \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
  900. 0: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x{0c}\x{0d}
  901. 1: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x{0c}
  902. \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
  903. 0: \x{09}\x{205f}\x{a0}\x{0a}\x{2029}\x{0c}\x{2028}
  904. 1: \x{09}\x{205f}\x{a0}\x{0a}\x{2029}\x{0c}
  905. \x09\x20\x{202f}\x0a\x0b\x0c
  906. 0: \x{09} \x{202f}\x{0a}\x{0b}\x{0c}
  907. \= Expect no match
  908. \x09\x{200a}\x{a0}\x{2028}\x0b
  909. No match
  910. /a\Rb/I,bsr=anycrlf,utf
  911. Capture group count = 0
  912. Options: utf
  913. \R matches CR, LF, or CRLF
  914. First code unit = 'a'
  915. Last code unit = 'b'
  916. Subject length lower bound = 3
  917. a\rb
  918. 0: a\x{0d}b
  919. a\nb
  920. 0: a\x{0a}b
  921. a\r\nb
  922. 0: a\x{0d}\x{0a}b
  923. \= Expect no match
  924. a\x{85}b
  925. No match
  926. a\x0bb
  927. No match
  928. /a\Rb/I,bsr=unicode,utf
  929. Capture group count = 0
  930. Options: utf
  931. \R matches any Unicode newline
  932. First code unit = 'a'
  933. Last code unit = 'b'
  934. Subject length lower bound = 3
  935. a\rb
  936. 0: a\x{0d}b
  937. a\nb
  938. 0: a\x{0a}b
  939. a\r\nb
  940. 0: a\x{0d}\x{0a}b
  941. a\x{85}b
  942. 0: a\x{85}b
  943. a\x0bb
  944. 0: a\x{0b}b
  945. /a\R?b/I,bsr=anycrlf,utf
  946. Capture group count = 0
  947. Options: utf
  948. \R matches CR, LF, or CRLF
  949. First code unit = 'a'
  950. Last code unit = 'b'
  951. Subject length lower bound = 2
  952. a\rb
  953. 0: a\x{0d}b
  954. a\nb
  955. 0: a\x{0a}b
  956. a\r\nb
  957. 0: a\x{0d}\x{0a}b
  958. \= Expect no match
  959. a\x{85}b
  960. No match
  961. a\x0bb
  962. No match
  963. /a\R?b/I,bsr=unicode,utf
  964. Capture group count = 0
  965. Options: utf
  966. \R matches any Unicode newline
  967. First code unit = 'a'
  968. Last code unit = 'b'
  969. Subject length lower bound = 2
  970. a\rb
  971. 0: a\x{0d}b
  972. a\nb
  973. 0: a\x{0a}b
  974. a\r\nb
  975. 0: a\x{0d}\x{0a}b
  976. a\x{85}b
  977. 0: a\x{85}b
  978. a\x0bb
  979. 0: a\x{0b}b
  980. /X/newline=any,utf,firstline
  981. A\x{1ec5}ABCXYZ
  982. 0: X
  983. /abcd*/utf
  984. xxxxabcd\=ps
  985. 0: abcd
  986. xxxxabcd\=ph
  987. Partial match: abcd
  988. /abcd*/i,utf
  989. xxxxabcd\=ps
  990. 0: abcd
  991. xxxxabcd\=ph
  992. Partial match: abcd
  993. XXXXABCD\=ps
  994. 0: ABCD
  995. XXXXABCD\=ph
  996. Partial match: ABCD
  997. /abc\d*/utf
  998. xxxxabc1\=ps
  999. 0: abc1
  1000. xxxxabc1\=ph
  1001. Partial match: abc1
  1002. /abc[de]*/utf
  1003. xxxxabcde\=ps
  1004. 0: abcde
  1005. xxxxabcde\=ph
  1006. Partial match: abcde
  1007. /\bthe cat\b/utf
  1008. the cat\=ps
  1009. 0: the cat
  1010. the cat\=ph
  1011. Partial match: the cat
  1012. /./newline=crlf,utf
  1013. \r\=ps
  1014. 0: \x{0d}
  1015. \r\=ph
  1016. Partial match: \x{0d}
  1017. /.{2,3}/newline=crlf,utf
  1018. \r\=ps
  1019. Partial match: \x{0d}
  1020. \r\=ph
  1021. Partial match: \x{0d}
  1022. \r\r\=ps
  1023. 0: \x{0d}\x{0d}
  1024. \r\r\=ph
  1025. Partial match: \x{0d}\x{0d}
  1026. \r\r\r\=ps
  1027. 0: \x{0d}\x{0d}\x{0d}
  1028. \r\r\r\=ph
  1029. Partial match: \x{0d}\x{0d}\x{0d}
  1030. /.{2,3}?/newline=crlf,utf
  1031. \r\=ps
  1032. Partial match: \x{0d}
  1033. \r\=ph
  1034. Partial match: \x{0d}
  1035. \r\r\=ps
  1036. 0: \x{0d}\x{0d}
  1037. \r\r\=ph
  1038. Partial match: \x{0d}\x{0d}
  1039. \r\r\r\=ps
  1040. 0: \x{0d}\x{0d}\x{0d}
  1041. 1: \x{0d}\x{0d}
  1042. \r\r\r\=ph
  1043. Partial match: \x{0d}\x{0d}\x{0d}
  1044. /[^\x{100}]/utf
  1045. \x{100}\x{101}X
  1046. 0: \x{101}
  1047. /[^\x{100}]+/utf
  1048. \x{100}\x{101}X
  1049. 0: \x{101}X
  1050. /\pL\P{Nd}/utf
  1051. AB
  1052. 0: AB
  1053. \= Expect no match
  1054. A0
  1055. No match
  1056. 00
  1057. No match
  1058. /\X./utf
  1059. AB
  1060. 0: AB
  1061. A\x{300}BC
  1062. 0: A\x{300}B
  1063. A\x{300}\x{301}\x{302}BC
  1064. 0: A\x{300}\x{301}\x{302}B
  1065. \= Expect no match
  1066. \x{300}
  1067. No match
  1068. /\X\X/utf
  1069. ABC
  1070. 0: AB
  1071. A\x{300}B\x{300}\x{301}C
  1072. 0: A\x{300}B\x{300}\x{301}
  1073. A\x{300}\x{301}\x{302}BC
  1074. 0: A\x{300}\x{301}\x{302}B
  1075. \= Expect no match
  1076. \x{300}
  1077. No match
  1078. /^\pL+/utf
  1079. abcd
  1080. 0: abcd
  1081. a
  1082. 0: a
  1083. /^\PL+/utf
  1084. 1234
  1085. 0: 1234
  1086. =
  1087. 0: =
  1088. \= Expect no match
  1089. abcd
  1090. No match
  1091. /^\X+/utf
  1092. abcdA\x{300}\x{301}\x{302}
  1093. 0: abcdA\x{300}\x{301}\x{302}
  1094. A\x{300}\x{301}\x{302}
  1095. 0: A\x{300}\x{301}\x{302}
  1096. A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}
  1097. 0: A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}
  1098. a
  1099. 0: a
  1100. \x{300}\x{301}\x{302}
  1101. 0: \x{300}\x{301}\x{302}
  1102. /\X?abc/utf
  1103. abc
  1104. 0: abc
  1105. A\x{300}abc
  1106. 0: A\x{300}abc
  1107. A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
  1108. 0: A\x{300}abc
  1109. \x{300}abc
  1110. 0: \x{300}abc
  1111. /^\X?abc/utf
  1112. abc
  1113. 0: abc
  1114. A\x{300}abc
  1115. 0: A\x{300}abc
  1116. \x{300}abc
  1117. 0: \x{300}abc
  1118. \= Expect no match
  1119. A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
  1120. No match
  1121. /\X*abc/utf
  1122. abc
  1123. 0: abc
  1124. A\x{300}abc
  1125. 0: A\x{300}abc
  1126. A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
  1127. 0: A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abc
  1128. \x{300}abc
  1129. 0: \x{300}abc
  1130. /^\X*abc/utf
  1131. abc
  1132. 0: abc
  1133. A\x{300}abc
  1134. 0: A\x{300}abc
  1135. A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
  1136. 0: A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abc
  1137. \x{300}abc
  1138. 0: \x{300}abc
  1139. /^\pL?=./utf
  1140. A=b
  1141. 0: A=b
  1142. =c
  1143. 0: =c
  1144. \= Expect no match
  1145. 1=2
  1146. No match
  1147. AAAA=b
  1148. No match
  1149. /^\pL*=./utf
  1150. AAAA=b
  1151. 0: AAAA=b
  1152. =c
  1153. 0: =c
  1154. \= Expect no match
  1155. 1=2
  1156. No match
  1157. /^\X{2,3}X/utf
  1158. A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
  1159. 0: A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
  1160. A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
  1161. 0: A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
  1162. \= Expect no match
  1163. X
  1164. No match
  1165. A\x{300}\x{301}\x{302}X
  1166. No match
  1167. 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
  1168. No match
  1169. /^\pC\pL\pM\pN\pP\pS\pZ</utf
  1170. \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
  1171. 0: \x{7f}\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
  1172. \np\x{300}9!\$ <
  1173. 0: \x{0a}p\x{300}9!$ <
  1174. \= Expect no match
  1175. ap\x{300}9!\$ <
  1176. No match
  1177. /^\PC/utf
  1178. X
  1179. 0: X
  1180. \= Expect no match
  1181. \x7f
  1182. No match
  1183. /^\PL/utf
  1184. 9
  1185. 0: 9
  1186. \= Expect no match
  1187. \x{c0}
  1188. No match
  1189. /^\PM/utf
  1190. X
  1191. 0: X
  1192. \= Expect no match
  1193. \x{30f}
  1194. No match
  1195. /^\PN/utf
  1196. X
  1197. 0: X
  1198. \= Expect no match
  1199. \x{660}
  1200. No match
  1201. /^\PP/utf
  1202. X
  1203. 0: X
  1204. \= Expect no match
  1205. \x{66c}
  1206. No match
  1207. /^\PS/utf
  1208. X
  1209. 0: X
  1210. \= Expect no match
  1211. \x{f01}
  1212. No match
  1213. /^\PZ/utf
  1214. X
  1215. 0: X
  1216. \= Expect no match
  1217. \x{1680}
  1218. No match
  1219. /^\p{Cc}/utf
  1220. \x{017}
  1221. 0: \x{17}
  1222. \x{09f}
  1223. 0: \x{9f}
  1224. \= Expect no match
  1225. \x{0600}
  1226. No match
  1227. /^\p{Cf}/utf
  1228. \x{601}
  1229. 0: \x{601}
  1230. \x{180e}
  1231. 0: \x{180e}
  1232. \x{061c}
  1233. 0: \x{61c}
  1234. \x{2066}
  1235. 0: \x{2066}
  1236. \x{2067}
  1237. 0: \x{2067}
  1238. \x{2068}
  1239. 0: \x{2068}
  1240. \x{2069}
  1241. 0: \x{2069}
  1242. \= Expect no match
  1243. \x{09f}
  1244. No match
  1245. /^\p{Cn}/utf
  1246. \= Expect no match
  1247. \x{09f}
  1248. No match
  1249. /^\p{Co}/utf
  1250. \x{f8ff}
  1251. 0: \x{f8ff}
  1252. \= Expect no match
  1253. \x{09f}
  1254. No match
  1255. /^\p{Cs}/utf
  1256. \x{dfff}\=no_utf_check
  1257. 0: \x{dfff}
  1258. \= Expect no match
  1259. \x{09f}
  1260. No match
  1261. /^\p{Ll}/utf
  1262. a
  1263. 0: a
  1264. \= Expect no match
  1265. Z
  1266. No match
  1267. \x{e000}
  1268. No match
  1269. /^\p{Lm}/utf
  1270. \x{2b0}
  1271. 0: \x{2b0}
  1272. \= Expect no match
  1273. a
  1274. No match
  1275. /^\p{Lo}/utf
  1276. \x{1bb}
  1277. 0: \x{1bb}
  1278. \= Expect no match
  1279. a
  1280. No match
  1281. \x{2b0}
  1282. No match
  1283. /^\p{Lt}/utf
  1284. \x{1c5}
  1285. 0: \x{1c5}
  1286. \= Expect no match
  1287. a
  1288. No match
  1289. \x{2b0}
  1290. No match
  1291. /^\p{Lu}/utf
  1292. A
  1293. 0: A
  1294. \= Expect no match
  1295. \x{2b0}
  1296. No match
  1297. /^\p{Mc}/utf
  1298. \x{903}
  1299. 0: \x{903}
  1300. \= Expect no match
  1301. X
  1302. No match
  1303. \x{300}
  1304. No match
  1305. /^\p{Me}/utf
  1306. \x{488}
  1307. 0: \x{488}
  1308. \= Expect no match
  1309. X
  1310. No match
  1311. \x{903}
  1312. No match
  1313. \x{300}
  1314. No match
  1315. /^\p{Mn}/utf
  1316. \x{300}
  1317. 0: \x{300}
  1318. \x{1a1b}
  1319. 0: \x{1a1b}
  1320. \= Expect no match
  1321. X
  1322. No match
  1323. \x{903}
  1324. No match
  1325. /^\p{Nd}+/utf,no_auto_possess
  1326. 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
  1327. Matched, but offsets vector is too small to show all matches
  1328. 0: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}
  1329. 1: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}
  1330. 2: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}
  1331. 3: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}
  1332. 4: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}
  1333. 5: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}
  1334. 6: 0123456789\x{660}\x{661}\x{662}\x{663}
  1335. 7: 0123456789\x{660}\x{661}\x{662}
  1336. 8: 0123456789\x{660}\x{661}
  1337. 9: 0123456789\x{660}
  1338. 10: 0123456789
  1339. 11: 012345678
  1340. 12: 01234567
  1341. 13: 0123456
  1342. 14: 012345
  1343. \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
  1344. 0: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}
  1345. 1: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}
  1346. 2: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}
  1347. 3: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}
  1348. 4: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}
  1349. 5: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}
  1350. 6: \x{6f0}\x{6f1}\x{6f2}\x{6f3}
  1351. 7: \x{6f0}\x{6f1}\x{6f2}
  1352. 8: \x{6f0}\x{6f1}
  1353. 9: \x{6f0}
  1354. \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
  1355. 0: \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}
  1356. 1: \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}
  1357. 2: \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}
  1358. 3: \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}
  1359. 4: \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}
  1360. 5: \x{966}\x{967}\x{968}\x{969}\x{96a}
  1361. 6: \x{966}\x{967}\x{968}\x{969}
  1362. 7: \x{966}\x{967}\x{968}
  1363. 8: \x{966}\x{967}
  1364. 9: \x{966}
  1365. \= Expect no match
  1366. X
  1367. No match
  1368. /^\p{Nl}/utf
  1369. \x{16ee}
  1370. 0: \x{16ee}
  1371. \= Expect no match
  1372. X
  1373. No match
  1374. \x{966}
  1375. No match
  1376. /^\p{No}/utf
  1377. \x{b2}
  1378. 0: \x{b2}
  1379. \x{b3}
  1380. 0: \x{b3}
  1381. \= Expect no match
  1382. X
  1383. No match
  1384. \x{16ee}
  1385. No match
  1386. /^\p{Pc}/utf
  1387. \x5f
  1388. 0: _
  1389. \x{203f}
  1390. 0: \x{203f}
  1391. \= Expect no match
  1392. X
  1393. No match
  1394. -
  1395. No match
  1396. \x{58a}
  1397. No match
  1398. /^\p{Pd}/utf
  1399. -
  1400. 0: -
  1401. \x{58a}
  1402. 0: \x{58a}
  1403. \= Expect no match
  1404. X
  1405. No match
  1406. \x{203f}
  1407. No match
  1408. /^\p{Pe}/utf
  1409. )
  1410. 0: )
  1411. ]
  1412. 0: ]
  1413. }
  1414. 0: }
  1415. \x{f3b}
  1416. 0: \x{f3b}
  1417. \x{2309}
  1418. 0: \x{2309}
  1419. \x{230b}
  1420. 0: \x{230b}
  1421. \= Expect no match
  1422. X
  1423. No match
  1424. \x{203f}
  1425. No match
  1426. (
  1427. No match
  1428. [
  1429. No match
  1430. {
  1431. No match
  1432. \x{f3c}
  1433. No match
  1434. /^\p{Pf}/utf
  1435. \x{bb}
  1436. 0: \x{bb}
  1437. \x{2019}
  1438. 0: \x{2019}
  1439. \= Expect no match
  1440. X
  1441. No match
  1442. \x{203f}
  1443. No match
  1444. /^\p{Pi}/utf
  1445. \x{ab}
  1446. 0: \x{ab}
  1447. \x{2018}
  1448. 0: \x{2018}
  1449. \= Expect no match
  1450. X
  1451. No match
  1452. \x{203f}
  1453. No match
  1454. /^\p{Po}/utf
  1455. !
  1456. 0: !
  1457. \x{37e}
  1458. 0: \x{37e}
  1459. \= Expect no match
  1460. X
  1461. No match
  1462. \x{203f}
  1463. No match
  1464. /^\p{Ps}/utf
  1465. (
  1466. 0: (
  1467. [
  1468. 0: [
  1469. {
  1470. 0: {
  1471. \x{f3c}
  1472. 0: \x{f3c}
  1473. \x{2308}
  1474. 0: \x{2308}
  1475. \x{230a}
  1476. 0: \x{230a}
  1477. \= Expect no match
  1478. X
  1479. No match
  1480. )
  1481. No match
  1482. ]
  1483. No match
  1484. }
  1485. No match
  1486. \x{f3b}
  1487. No match
  1488. /^\p{Sc}+/utf
  1489. $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
  1490. 0: $\x{a2}\x{a3}\x{a4}\x{a5}
  1491. \x{9f2}
  1492. 0: \x{9f2}
  1493. \= Expect no match
  1494. X
  1495. No match
  1496. \x{2c2}
  1497. No match
  1498. /^\p{Sk}/utf
  1499. \x{2c2}
  1500. 0: \x{2c2}
  1501. \= Expect no match
  1502. X
  1503. No match
  1504. \x{9f2}
  1505. No match
  1506. /^\p{Sm}+/utf
  1507. +<|~\x{ac}\x{2044}
  1508. 0: +<|~\x{ac}\x{2044}
  1509. \= Expect no match
  1510. X
  1511. No match
  1512. \x{9f2}
  1513. No match
  1514. /^\p{So}/utf
  1515. \x{a6}
  1516. 0: \x{a6}
  1517. \x{482}
  1518. 0: \x{482}
  1519. \= Expect no match
  1520. X
  1521. No match
  1522. \x{9f2}
  1523. No match
  1524. /^\p{Zl}/utf
  1525. \x{2028}
  1526. 0: \x{2028}
  1527. \= Expect no match
  1528. X
  1529. No match
  1530. \x{2029}
  1531. No match
  1532. /^\p{Zp}/utf
  1533. \x{2029}
  1534. 0: \x{2029}
  1535. \= Expect no match
  1536. X
  1537. No match
  1538. \x{2028}
  1539. No match
  1540. /^\p{Zs}/utf
  1541. \ \
  1542. 0:
  1543. \x{a0}
  1544. 0: \x{a0}
  1545. \x{1680}
  1546. 0: \x{1680}
  1547. \x{2000}
  1548. 0: \x{2000}
  1549. \x{2001}
  1550. 0: \x{2001}
  1551. \= Expect no match
  1552. \x{2028}
  1553. No match
  1554. \x{200d}
  1555. No match
  1556. /\p{Nd}+(..)/utf
  1557. \x{660}\x{661}\x{662}ABC
  1558. 0: \x{660}\x{661}\x{662}AB
  1559. 1: \x{660}\x{661}\x{662}A
  1560. 2: \x{660}\x{661}\x{662}
  1561. /\p{Nd}+?(..)/utf
  1562. \x{660}\x{661}\x{662}ABC
  1563. 0: \x{660}\x{661}\x{662}AB
  1564. 1: \x{660}\x{661}\x{662}A
  1565. 2: \x{660}\x{661}\x{662}
  1566. /\p{Nd}{2,}(..)/utf
  1567. \x{660}\x{661}\x{662}ABC
  1568. 0: \x{660}\x{661}\x{662}AB
  1569. 1: \x{660}\x{661}\x{662}A
  1570. /\p{Nd}{2,}?(..)/utf
  1571. \x{660}\x{661}\x{662}ABC
  1572. 0: \x{660}\x{661}\x{662}AB
  1573. 1: \x{660}\x{661}\x{662}A
  1574. /\p{Nd}*(..)/utf
  1575. \x{660}\x{661}\x{662}ABC
  1576. 0: \x{660}\x{661}\x{662}AB
  1577. 1: \x{660}\x{661}\x{662}A
  1578. 2: \x{660}\x{661}\x{662}
  1579. 3: \x{660}\x{661}
  1580. /\p{Nd}*?(..)/utf
  1581. \x{660}\x{661}\x{662}ABC
  1582. 0: \x{660}\x{661}\x{662}AB
  1583. 1: \x{660}\x{661}\x{662}A
  1584. 2: \x{660}\x{661}\x{662}
  1585. 3: \x{660}\x{661}
  1586. /\p{Nd}{2}(..)/utf
  1587. \x{660}\x{661}\x{662}ABC
  1588. 0: \x{660}\x{661}\x{662}A
  1589. /\p{Nd}{2,3}(..)/utf
  1590. \x{660}\x{661}\x{662}ABC
  1591. 0: \x{660}\x{661}\x{662}AB
  1592. 1: \x{660}\x{661}\x{662}A
  1593. /\p{Nd}{2,3}?(..)/utf
  1594. \x{660}\x{661}\x{662}ABC
  1595. 0: \x{660}\x{661}\x{662}AB
  1596. 1: \x{660}\x{661}\x{662}A
  1597. /\p{Nd}?(..)/utf
  1598. \x{660}\x{661}\x{662}ABC
  1599. 0: \x{660}\x{661}\x{662}
  1600. 1: \x{660}\x{661}
  1601. /\p{Nd}??(..)/utf
  1602. \x{660}\x{661}\x{662}ABC
  1603. 0: \x{660}\x{661}\x{662}
  1604. 1: \x{660}\x{661}
  1605. /\p{Nd}*+(..)/utf
  1606. \x{660}\x{661}\x{662}ABC
  1607. 0: \x{660}\x{661}\x{662}AB
  1608. /\p{Nd}*+(...)/utf
  1609. \x{660}\x{661}\x{662}ABC
  1610. 0: \x{660}\x{661}\x{662}ABC
  1611. /\p{Nd}*+(....)/utf
  1612. \= Expect no match
  1613. \x{660}\x{661}\x{662}ABC
  1614. No match
  1615. /\p{Lu}/i,utf
  1616. A
  1617. 0: A
  1618. a\x{10a0}B
  1619. 0: \x{10a0}
  1620. \= Expect no match
  1621. a
  1622. No match
  1623. \x{1d00}
  1624. No match
  1625. /\p{^Lu}/i,utf
  1626. 1234
  1627. 0: 1
  1628. \= Expect no match
  1629. ABC
  1630. No match
  1631. /\P{Lu}/i,utf
  1632. 1234
  1633. 0: 1
  1634. \= Expect no match
  1635. ABC
  1636. No match
  1637. /(?<=A\p{Nd})XYZ/utf
  1638. A2XYZ
  1639. 0: XYZ
  1640. 123A5XYZPQR
  1641. 0: XYZ
  1642. ABA\x{660}XYZpqr
  1643. 0: XYZ
  1644. \= Expect no match
  1645. AXYZ
  1646. No match
  1647. XYZ
  1648. No match
  1649. /(?<!\pL)XYZ/utf
  1650. 1XYZ
  1651. 0: XYZ
  1652. AB=XYZ..
  1653. 0: XYZ
  1654. XYZ
  1655. 0: XYZ
  1656. \= Expect no match
  1657. WXYZ
  1658. No match
  1659. /[\p{Nd}]/utf
  1660. 1234
  1661. 0: 1
  1662. /[\p{Nd}+-]+/utf
  1663. 1234
  1664. 0: 1234
  1665. 12-34
  1666. 0: 12-34
  1667. 12+\x{661}-34
  1668. 0: 12+\x{661}-34
  1669. \= Expect no match
  1670. abcd
  1671. No match
  1672. /[\P{Nd}]+/utf
  1673. abcd
  1674. 0: abcd
  1675. \= Expect no match
  1676. 1234
  1677. No match
  1678. /\D+/utf,no_auto_possess
  1679. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1680. Matched, but offsets vector is too small to show all matches
  1681. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1682. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1683. 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1684. 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1685. 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1686. 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1687. 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1688. 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1689. 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1690. 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1691. 10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1692. 11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1693. 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1694. 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1695. 14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1696. \= Expect no match
  1697. 11111111111111111111111111111111111111111111111111111111111111111111111
  1698. No match
  1699. /\P{Nd}+/utf,no_auto_possess
  1700. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1701. Matched, but offsets vector is too small to show all matches
  1702. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1703. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1704. 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1705. 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1706. 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1707. 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1708. 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1709. 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1710. 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1711. 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1712. 10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1713. 11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1714. 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1715. 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1716. 14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1717. \= Expect no match
  1718. 11111111111111111111111111111111111111111111111111111111111111111111111
  1719. No match
  1720. /[\D]+/utf,no_auto_possess
  1721. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1722. Matched, but offsets vector is too small to show all matches
  1723. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1724. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1725. 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1726. 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1727. 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1728. 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1729. 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1730. 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1731. 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1732. 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1733. 10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1734. 11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1735. 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1736. 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1737. 14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1738. \= Expect no match
  1739. 11111111111111111111111111111111111111111111111111111111111111111111111
  1740. No match
  1741. /[\P{Nd}]+/utf,no_auto_possess
  1742. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1743. Matched, but offsets vector is too small to show all matches
  1744. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1745. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1746. 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1747. 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1748. 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1749. 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1750. 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1751. 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1752. 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1753. 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1754. 10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1755. 11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1756. 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1757. 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1758. 14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1759. \= Expect no match
  1760. 11111111111111111111111111111111111111111111111111111111111111111111111
  1761. No match
  1762. /[\D\P{Nd}]+/utf,no_auto_possess
  1763. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1764. Matched, but offsets vector is too small to show all matches
  1765. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1766. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1767. 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1768. 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1769. 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1770. 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1771. 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1772. 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1773. 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1774. 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1775. 10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1776. 11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1777. 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1778. 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1779. 14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1780. \= Expect no match
  1781. 11111111111111111111111111111111111111111111111111111111111111111111111
  1782. No match
  1783. /\pL/utf
  1784. a
  1785. 0: a
  1786. A
  1787. 0: A
  1788. /\pL/i,utf
  1789. a
  1790. 0: a
  1791. A
  1792. 0: A
  1793. /\p{Lu}/utf
  1794. A
  1795. 0: A
  1796. aZ
  1797. 0: Z
  1798. \= Expect no match
  1799. abc
  1800. No match
  1801. /\p{Lu}/i,utf
  1802. A
  1803. 0: A
  1804. aZ
  1805. 0: Z
  1806. \= Expect no match
  1807. abc
  1808. No match
  1809. /\p{Ll}/utf
  1810. a
  1811. 0: a
  1812. Az
  1813. 0: z
  1814. \= Expect no match
  1815. ABC
  1816. No match
  1817. /\p{Ll}/i,utf
  1818. a
  1819. 0: a
  1820. Az
  1821. 0: z
  1822. \= Expect no match
  1823. ABC
  1824. No match
  1825. /^\x{c0}$/i,utf
  1826. \x{c0}
  1827. 0: \x{c0}
  1828. \x{e0}
  1829. 0: \x{e0}
  1830. /^\x{e0}$/i,utf
  1831. \x{c0}
  1832. 0: \x{c0}
  1833. \x{e0}
  1834. 0: \x{e0}
  1835. /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
  1836. A\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1837. 0: A\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1838. \= Expect no match
  1839. a\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1840. No match
  1841. A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
  1842. No match
  1843. A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
  1844. No match
  1845. A\x{391}\x{10427}\x{ff5a}\x{1fb0}
  1846. No match
  1847. A\x{391}\x{10427}\x{ff3a}\x{1fb8}
  1848. No match
  1849. /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
  1850. A\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1851. 0: A\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1852. a\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1853. 0: a\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1854. A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
  1855. 0: A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
  1856. A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
  1857. 0: A\x{391}\x{1044f}\x{ff3a}\x{1fb0}
  1858. A\x{391}\x{10427}\x{ff5a}\x{1fb0}
  1859. 0: A\x{391}\x{10427}\x{ff5a}\x{1fb0}
  1860. A\x{391}\x{10427}\x{ff3a}\x{1fb8}
  1861. 0: A\x{391}\x{10427}\x{ff3a}\x{1fb8}
  1862. /\x{391}+/i,utf
  1863. \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
  1864. 0: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
  1865. /\x{391}{3,5}(.)/i,utf
  1866. \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
  1867. 0: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
  1868. 1: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
  1869. 2: \x{391}\x{3b1}\x{3b1}\x{3b1}
  1870. /\x{391}{3,5}?(.)/i,utf
  1871. \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
  1872. 0: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
  1873. 1: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
  1874. 2: \x{391}\x{3b1}\x{3b1}\x{3b1}
  1875. /[\x{391}\x{ff3a}]/i,utf
  1876. \x{391}
  1877. 0: \x{391}
  1878. \x{ff3a}
  1879. 0: \x{ff3a}
  1880. \x{3b1}
  1881. 0: \x{3b1}
  1882. \x{ff5a}
  1883. 0: \x{ff5a}
  1884. /[\x{c0}\x{391}]/i,utf
  1885. \x{c0}
  1886. 0: \x{c0}
  1887. \x{e0}
  1888. 0: \x{e0}
  1889. /[\x{105}-\x{109}]/i,utf
  1890. \x{104}
  1891. 0: \x{104}
  1892. \x{105}
  1893. 0: \x{105}
  1894. \x{109}
  1895. 0: \x{109}
  1896. \= Expect no match
  1897. \x{100}
  1898. No match
  1899. \x{10a}
  1900. No match
  1901. /[z-\x{100}]/i,utf
  1902. Z
  1903. 0: Z
  1904. z
  1905. 0: z
  1906. \x{39c}
  1907. 0: \x{39c}
  1908. \x{178}
  1909. 0: \x{178}
  1910. |
  1911. 0: |
  1912. \x{80}
  1913. 0: \x{80}
  1914. \x{ff}
  1915. 0: \x{ff}
  1916. \x{100}
  1917. 0: \x{100}
  1918. \x{101}
  1919. 0: \x{101}
  1920. \= Expect no match
  1921. \x{102}
  1922. No match
  1923. Y
  1924. No match
  1925. y
  1926. No match
  1927. /[z-\x{100}]/i,utf
  1928. /^\X/utf
  1929. A
  1930. 0: A
  1931. A\x{300}BC
  1932. 0: A\x{300}
  1933. A\x{300}\x{301}\x{302}BC
  1934. 0: A\x{300}\x{301}\x{302}
  1935. \x{300}
  1936. 0: \x{300}
  1937. /^(\X*)C/utf
  1938. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
  1939. 0: A\x{300}\x{301}\x{302}BC
  1940. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1941. 0: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1942. 1: A\x{300}\x{301}\x{302}BC
  1943. /^(\X*?)C/utf
  1944. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
  1945. 0: A\x{300}\x{301}\x{302}BC
  1946. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1947. 0: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1948. 1: A\x{300}\x{301}\x{302}BC
  1949. /^(\X*)(.)/utf
  1950. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
  1951. 0: A\x{300}\x{301}\x{302}BCA
  1952. 1: A\x{300}\x{301}\x{302}BC
  1953. 2: A\x{300}\x{301}\x{302}B
  1954. 3: A
  1955. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1956. 0: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1957. 1: A\x{300}\x{301}\x{302}BCA
  1958. 2: A\x{300}\x{301}\x{302}BC
  1959. 3: A\x{300}\x{301}\x{302}B
  1960. 4: A
  1961. /^(\X*?)(.)/utf
  1962. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
  1963. 0: A\x{300}\x{301}\x{302}BCA
  1964. 1: A\x{300}\x{301}\x{302}BC
  1965. 2: A\x{300}\x{301}\x{302}B
  1966. 3: A
  1967. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1968. 0: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1969. 1: A\x{300}\x{301}\x{302}BCA
  1970. 2: A\x{300}\x{301}\x{302}BC
  1971. 3: A\x{300}\x{301}\x{302}B
  1972. 4: A
  1973. /^\X(.)/utf
  1974. \= Expect no match
  1975. A\x{300}\x{301}\x{302}
  1976. No match
  1977. /^\X{2,3}(.)/utf
  1978. A\x{300}\x{301}B\x{300}X
  1979. 0: A\x{300}\x{301}B\x{300}X
  1980. A\x{300}\x{301}B\x{300}C\x{300}\x{301}
  1981. 0: A\x{300}\x{301}B\x{300}C
  1982. A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
  1983. 0: A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
  1984. 1: A\x{300}\x{301}B\x{300}C
  1985. A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
  1986. 0: A\x{300}\x{301}B\x{300}C\x{300}\x{301}D
  1987. 1: A\x{300}\x{301}B\x{300}C
  1988. /^\X{2,3}?(.)/utf
  1989. A\x{300}\x{301}B\x{300}X
  1990. 0: A\x{300}\x{301}B\x{300}X
  1991. A\x{300}\x{301}B\x{300}C\x{300}\x{301}
  1992. 0: A\x{300}\x{301}B\x{300}C
  1993. A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
  1994. 0: A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
  1995. 1: A\x{300}\x{301}B\x{300}C
  1996. A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
  1997. 0: A\x{300}\x{301}B\x{300}C\x{300}\x{301}D
  1998. 1: A\x{300}\x{301}B\x{300}C
  1999. /^\pN{2,3}X/
  2000. 12X
  2001. 0: 12X
  2002. 123X
  2003. 0: 123X
  2004. \= Expect no match
  2005. X
  2006. No match
  2007. 1X
  2008. No match
  2009. 1234X
  2010. No match
  2011. /\x{100}/i,utf
  2012. \x{100}
  2013. 0: \x{100}
  2014. \x{101}
  2015. 0: \x{101}
  2016. /^\p{Han}+/utf
  2017. \x{2e81}\x{3007}\x{2f804}\x{31a0}
  2018. 0: \x{2e81}\x{3007}\x{2f804}
  2019. \= Expect no match
  2020. \x{2e7f}
  2021. No match
  2022. /^\P{Katakana}+/utf
  2023. \x{3105}
  2024. 0: \x{3105}
  2025. \= Expect no match
  2026. \x{30ff}
  2027. No match
  2028. /^[\p{Arabic}]/utf
  2029. \x{06e9}
  2030. 0: \x{6e9}
  2031. \x{060b}
  2032. 0: \x{60b}
  2033. \= Expect no match
  2034. X\x{06e9}
  2035. No match
  2036. /^[\P{Yi}]/utf
  2037. \x{2f800}
  2038. 0: \x{2f800}
  2039. \= Expect no match
  2040. \x{a014}
  2041. No match
  2042. \x{a4c6}
  2043. No match
  2044. /^\p{Any}X/utf
  2045. AXYZ
  2046. 0: AX
  2047. \x{1234}XYZ
  2048. 0: \x{1234}X
  2049. \= Expect no match
  2050. X
  2051. No match
  2052. /^\P{Any}X/utf
  2053. \= Expect no match
  2054. AX
  2055. No match
  2056. /^\p{Any}?X/utf
  2057. XYZ
  2058. 0: X
  2059. AXYZ
  2060. 0: AX
  2061. \x{1234}XYZ
  2062. 0: \x{1234}X
  2063. \= Expect no match
  2064. ABXYZ
  2065. No match
  2066. /^\P{Any}?X/utf
  2067. XYZ
  2068. 0: X
  2069. \= Expect no match
  2070. AXYZ
  2071. No match
  2072. \x{1234}XYZ
  2073. No match
  2074. ABXYZ
  2075. No match
  2076. /^\p{Any}+X/utf
  2077. AXYZ
  2078. 0: AX
  2079. \x{1234}XYZ
  2080. 0: \x{1234}X
  2081. A\x{1234}XYZ
  2082. 0: A\x{1234}X
  2083. \= Expect no match
  2084. XYZ
  2085. No match
  2086. /^\P{Any}+X/utf
  2087. \= Expect no match
  2088. AXYZ
  2089. No match
  2090. \x{1234}XYZ
  2091. No match
  2092. A\x{1234}XYZ
  2093. No match
  2094. XYZ
  2095. No match
  2096. /^\p{Any}*X/utf
  2097. XYZ
  2098. 0: X
  2099. AXYZ
  2100. 0: AX
  2101. \x{1234}XYZ
  2102. 0: \x{1234}X
  2103. A\x{1234}XYZ
  2104. 0: A\x{1234}X
  2105. /^\P{Any}*X/utf
  2106. XYZ
  2107. 0: X
  2108. \= Expect no match
  2109. AXYZ
  2110. No match
  2111. \x{1234}XYZ
  2112. No match
  2113. A\x{1234}XYZ
  2114. No match
  2115. /^[\p{Any}]X/utf
  2116. AXYZ
  2117. 0: AX
  2118. \x{1234}XYZ
  2119. 0: \x{1234}X
  2120. \= Expect no match
  2121. X
  2122. No match
  2123. /^[\P{Any}]X/utf
  2124. \= Expect no match
  2125. AX
  2126. No match
  2127. /^[\p{Any}]?X/utf
  2128. XYZ
  2129. 0: X
  2130. AXYZ
  2131. 0: AX
  2132. \x{1234}XYZ
  2133. 0: \x{1234}X
  2134. \= Expect no match
  2135. ABXYZ
  2136. No match
  2137. /^[\P{Any}]?X/utf
  2138. XYZ
  2139. 0: X
  2140. \= Expect no match
  2141. AXYZ
  2142. No match
  2143. \x{1234}XYZ
  2144. No match
  2145. ABXYZ
  2146. No match
  2147. /^[\p{Any}]+X/utf
  2148. AXYZ
  2149. 0: AX
  2150. \x{1234}XYZ
  2151. 0: \x{1234}X
  2152. A\x{1234}XYZ
  2153. 0: A\x{1234}X
  2154. \= Expect no match
  2155. XYZ
  2156. No match
  2157. /^[\P{Any}]+X/utf
  2158. \= Expect no match
  2159. AXYZ
  2160. No match
  2161. \x{1234}XYZ
  2162. No match
  2163. A\x{1234}XYZ
  2164. No match
  2165. XYZ
  2166. No match
  2167. /^[\p{Any}]*X/utf
  2168. XYZ
  2169. 0: X
  2170. AXYZ
  2171. 0: AX
  2172. \x{1234}XYZ
  2173. 0: \x{1234}X
  2174. A\x{1234}XYZ
  2175. 0: A\x{1234}X
  2176. /^[\P{Any}]*X/utf
  2177. XYZ
  2178. 0: X
  2179. \= Expect no match
  2180. AXYZ
  2181. No match
  2182. \x{1234}XYZ
  2183. No match
  2184. A\x{1234}XYZ
  2185. No match
  2186. /^\p{Any}{3,5}?/utf
  2187. abcdefgh
  2188. 0: abcde
  2189. 1: abcd
  2190. 2: abc
  2191. \x{1234}\n\r\x{3456}xyz
  2192. 0: \x{1234}\x{0a}\x{0d}\x{3456}x
  2193. 1: \x{1234}\x{0a}\x{0d}\x{3456}
  2194. 2: \x{1234}\x{0a}\x{0d}
  2195. /^\p{Any}{3,5}/utf
  2196. abcdefgh
  2197. 0: abcde
  2198. \x{1234}\n\r\x{3456}xyz
  2199. 0: \x{1234}\x{0a}\x{0d}\x{3456}x
  2200. /^\P{Any}{3,5}?/utf
  2201. \= Expect no match
  2202. abcdefgh
  2203. No match
  2204. \x{1234}\n\r\x{3456}xyz
  2205. No match
  2206. /^\p{L&}X/utf
  2207. AXY
  2208. 0: AX
  2209. aXY
  2210. 0: aX
  2211. \x{1c5}XY
  2212. 0: \x{1c5}X
  2213. \= Expect no match
  2214. \x{1bb}XY
  2215. No match
  2216. \x{2b0}XY
  2217. No match
  2218. !XY
  2219. No match
  2220. /^[\p{L&}]X/utf
  2221. AXY
  2222. 0: AX
  2223. aXY
  2224. 0: aX
  2225. \x{1c5}XY
  2226. 0: \x{1c5}X
  2227. \= Expect no match
  2228. \x{1bb}XY
  2229. No match
  2230. \x{2b0}XY
  2231. No match
  2232. !XY
  2233. No match
  2234. /^\p{L&}+X/utf
  2235. AXY
  2236. 0: AX
  2237. aXY
  2238. 0: aX
  2239. AbcdeXyz
  2240. 0: AbcdeX
  2241. \x{1c5}AbXY
  2242. 0: \x{1c5}AbX
  2243. abcDEXypqreXlmn
  2244. 0: abcDEXypqreX
  2245. 1: abcDEX
  2246. \= Expect no match
  2247. \x{1bb}XY
  2248. No match
  2249. \x{2b0}XY
  2250. No match
  2251. !XY
  2252. No match
  2253. /^[\p{L&}]+X/utf
  2254. AXY
  2255. 0: AX
  2256. aXY
  2257. 0: aX
  2258. AbcdeXyz
  2259. 0: AbcdeX
  2260. \x{1c5}AbXY
  2261. 0: \x{1c5}AbX
  2262. abcDEXypqreXlmn
  2263. 0: abcDEXypqreX
  2264. 1: abcDEX
  2265. \= Expect no match
  2266. \x{1bb}XY
  2267. No match
  2268. \x{2b0}XY
  2269. No match
  2270. !XY
  2271. No match
  2272. /^\p{L&}+?X/utf
  2273. AXY
  2274. 0: AX
  2275. aXY
  2276. 0: aX
  2277. AbcdeXyz
  2278. 0: AbcdeX
  2279. \x{1c5}AbXY
  2280. 0: \x{1c5}AbX
  2281. abcDEXypqreXlmn
  2282. 0: abcDEXypqreX
  2283. 1: abcDEX
  2284. \= Expect no match
  2285. \x{1bb}XY
  2286. No match
  2287. \x{2b0}XY
  2288. No match
  2289. !XY
  2290. No match
  2291. /^[\p{L&}]+?X/utf
  2292. AXY
  2293. 0: AX
  2294. aXY
  2295. 0: aX
  2296. AbcdeXyz
  2297. 0: AbcdeX
  2298. \x{1c5}AbXY
  2299. 0: \x{1c5}AbX
  2300. abcDEXypqreXlmn
  2301. 0: abcDEXypqreX
  2302. 1: abcDEX
  2303. \= Expect no match
  2304. \x{1bb}XY
  2305. No match
  2306. \x{2b0}XY
  2307. No match
  2308. !XY
  2309. No match
  2310. /^\P{L&}X/utf
  2311. !XY
  2312. 0: !X
  2313. \x{1bb}XY
  2314. 0: \x{1bb}X
  2315. \x{2b0}XY
  2316. 0: \x{2b0}X
  2317. \= Expect no match
  2318. \x{1c5}XY
  2319. No match
  2320. AXY
  2321. No match
  2322. /^[\P{L&}]X/utf
  2323. !XY
  2324. 0: !X
  2325. \x{1bb}XY
  2326. 0: \x{1bb}X
  2327. \x{2b0}XY
  2328. 0: \x{2b0}X
  2329. \= Expect no match
  2330. \x{1c5}XY
  2331. No match
  2332. AXY
  2333. No match
  2334. /^\x{023a}+?(\x{0130}+)/i,utf
  2335. \x{023a}\x{2c65}\x{0130}
  2336. 0: \x{23a}\x{2c65}\x{130}
  2337. /^\x{023a}+([^X])/i,utf
  2338. \x{023a}\x{2c65}X
  2339. 0: \x{23a}\x{2c65}
  2340. /\x{c0}+\x{116}+/i,utf
  2341. \x{c0}\x{e0}\x{116}\x{117}
  2342. 0: \x{c0}\x{e0}\x{116}\x{117}
  2343. /[\x{c0}\x{116}]+/i,utf
  2344. \x{c0}\x{e0}\x{116}\x{117}
  2345. 0: \x{c0}\x{e0}\x{116}\x{117}
  2346. # Check property support in non-UTF-8 mode
  2347. /\p{L}{4}/
  2348. 123abcdefg
  2349. 0: abcd
  2350. 123abc\xc4\xc5zz
  2351. 0: abc\xc4
  2352. /\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
  2353. \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
  2354. 0: \x{102a4}\x{aa52}\x{a91d}\x{1c46}\x{10283}\x{1092e}\x{1c6b}\x{a93b}\x{a8bf}\x{1ba0}\x{a50a}
  2355. /\x{a77d}\x{1d79}/i,utf
  2356. \x{a77d}\x{1d79}
  2357. 0: \x{a77d}\x{1d79}
  2358. \x{1d79}\x{a77d}
  2359. 0: \x{1d79}\x{a77d}
  2360. /\x{a77d}\x{1d79}/utf
  2361. \x{a77d}\x{1d79}
  2362. 0: \x{a77d}\x{1d79}
  2363. \= Expect no match
  2364. \x{1d79}\x{a77d}
  2365. No match
  2366. /^\p{Xan}/utf
  2367. ABCD
  2368. 0: A
  2369. 1234
  2370. 0: 1
  2371. \x{6ca}
  2372. 0: \x{6ca}
  2373. \x{a6c}
  2374. 0: \x{a6c}
  2375. \x{10a7}
  2376. 0: \x{10a7}
  2377. \= Expect no match
  2378. _ABC
  2379. No match
  2380. /^\p{Xan}+/utf
  2381. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2382. 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
  2383. \= Expect no match
  2384. _ABC
  2385. No match
  2386. /^\p{Xan}*/utf
  2387. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2388. 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
  2389. /^\p{Xan}{2,9}/utf
  2390. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2391. 0: ABCD1234\x{6ca}
  2392. /^[\p{Xan}]/utf
  2393. ABCD1234_
  2394. 0: A
  2395. 1234abcd_
  2396. 0: 1
  2397. \x{6ca}
  2398. 0: \x{6ca}
  2399. \x{a6c}
  2400. 0: \x{a6c}
  2401. \x{10a7}
  2402. 0: \x{10a7}
  2403. \= Expect no match
  2404. _ABC
  2405. No match
  2406. /^[\p{Xan}]+/utf
  2407. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2408. 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
  2409. \= Expect no match
  2410. _ABC
  2411. No match
  2412. /^>\p{Xsp}/utf
  2413. >\x{1680}\x{2028}\x{0b}
  2414. 0: >\x{1680}
  2415. \= Expect no match
  2416. \x{0b}
  2417. No match
  2418. /^>\p{Xsp}+/utf,no_auto_possess
  2419. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2420. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2421. 1: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  2422. 2: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}
  2423. 3: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}
  2424. 4: > \x{09}\x{0a}\x{0c}\x{0d}
  2425. 5: > \x{09}\x{0a}\x{0c}
  2426. 6: > \x{09}\x{0a}
  2427. 7: > \x{09}
  2428. 8: >
  2429. /^>\p{Xsp}*/utf,no_auto_possess
  2430. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2431. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2432. 1: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  2433. 2: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}
  2434. 3: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}
  2435. 4: > \x{09}\x{0a}\x{0c}\x{0d}
  2436. 5: > \x{09}\x{0a}\x{0c}
  2437. 6: > \x{09}\x{0a}
  2438. 7: > \x{09}
  2439. 8: >
  2440. 9: >
  2441. /^>\p{Xsp}{2,9}/utf,no_auto_possess
  2442. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2443. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2444. 1: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  2445. 2: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}
  2446. 3: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}
  2447. 4: > \x{09}\x{0a}\x{0c}\x{0d}
  2448. 5: > \x{09}\x{0a}\x{0c}
  2449. 6: > \x{09}\x{0a}
  2450. 7: > \x{09}
  2451. /^>[\p{Xsp}]/utf,no_auto_possess
  2452. >\x{2028}\x{0b}
  2453. 0: >\x{2028}
  2454. /^>[\p{Xsp}]+/utf,no_auto_possess
  2455. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2456. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2457. 1: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  2458. 2: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}
  2459. 3: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}
  2460. 4: > \x{09}\x{0a}\x{0c}\x{0d}
  2461. 5: > \x{09}\x{0a}\x{0c}
  2462. 6: > \x{09}\x{0a}
  2463. 7: > \x{09}
  2464. 8: >
  2465. /^>\p{Xps}/utf
  2466. >\x{1680}\x{2028}\x{0b}
  2467. 0: >\x{1680}
  2468. >\x{a0}
  2469. 0: >\x{a0}
  2470. \= Expect no match
  2471. \x{0b}
  2472. No match
  2473. /^>\p{Xps}+/utf
  2474. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2475. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2476. /^>\p{Xps}+?/utf
  2477. >\x{1680}\x{2028}\x{0b}
  2478. 0: >\x{1680}\x{2028}\x{0b}
  2479. 1: >\x{1680}\x{2028}
  2480. 2: >\x{1680}
  2481. /^>\p{Xps}*/utf
  2482. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2483. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2484. /^>\p{Xps}{2,9}/utf
  2485. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2486. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2487. /^>\p{Xps}{2,9}?/utf
  2488. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2489. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2490. 1: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  2491. 2: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}
  2492. 3: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}
  2493. 4: > \x{09}\x{0a}\x{0c}\x{0d}
  2494. 5: > \x{09}\x{0a}\x{0c}
  2495. 6: > \x{09}\x{0a}
  2496. 7: > \x{09}
  2497. /^>[\p{Xps}]/utf
  2498. >\x{2028}\x{0b}
  2499. 0: >\x{2028}
  2500. /^>[\p{Xps}]+/utf
  2501. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2502. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2503. /^\p{Xwd}/utf
  2504. ABCD
  2505. 0: A
  2506. 1234
  2507. 0: 1
  2508. \x{6ca}
  2509. 0: \x{6ca}
  2510. \x{a6c}
  2511. 0: \x{a6c}
  2512. \x{10a7}
  2513. 0: \x{10a7}
  2514. _ABC
  2515. 0: _
  2516. \= Expect no match
  2517. []
  2518. No match
  2519. /^\p{Xwd}+/utf
  2520. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2521. 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2522. /^\p{Xwd}*/utf
  2523. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2524. 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2525. /^\p{Xwd}{2,9}/utf
  2526. A_12\x{6ca}\x{a6c}\x{10a7}
  2527. 0: A_12\x{6ca}\x{a6c}\x{10a7}
  2528. /^[\p{Xwd}]/utf
  2529. ABCD1234_
  2530. 0: A
  2531. 1234abcd_
  2532. 0: 1
  2533. \x{6ca}
  2534. 0: \x{6ca}
  2535. \x{a6c}
  2536. 0: \x{a6c}
  2537. \x{10a7}
  2538. 0: \x{10a7}
  2539. _ABC
  2540. 0: _
  2541. \= Expect no match
  2542. []
  2543. No match
  2544. /^[\p{Xwd}]+/utf
  2545. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2546. 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2547. # Unicode properties for \b and \B
  2548. /\b...\B/utf,ucp
  2549. abc_
  2550. 0: abc
  2551. \x{37e}abc\x{376}
  2552. 0: abc
  2553. \x{37e}\x{376}\x{371}\x{393}\x{394}
  2554. 0: \x{376}\x{371}\x{393}
  2555. !\x{c0}++\x{c1}\x{c2}
  2556. 0: ++\x{c1}
  2557. !\x{c0}+++++
  2558. 0: \x{c0}++
  2559. # Without PCRE_UCP, non-ASCII always fail, even if < 256
  2560. /\b...\B/utf
  2561. abc_
  2562. 0: abc
  2563. \= Expect no match
  2564. \x{37e}abc\x{376}
  2565. No match
  2566. \x{37e}\x{376}\x{371}\x{393}\x{394}
  2567. No match
  2568. !\x{c0}++\x{c1}\x{c2}
  2569. No match
  2570. !\x{c0}+++++
  2571. No match
  2572. # With PCRE_UCP, non-UTF8 chars that are < 256 still check properties
  2573. /\b...\B/ucp
  2574. abc_
  2575. 0: abc
  2576. !\x{c0}++\x{c1}\x{c2}
  2577. 0: ++\xc1
  2578. !\x{c0}+++++
  2579. 0: \xc0++
  2580. # Caseless single negated characters > 127 need UCP support
  2581. /[^\x{100}]/i,utf
  2582. \x{100}\x{101}X
  2583. 0: X
  2584. /[^\x{100}]+/i,utf
  2585. \x{100}\x{101}XX
  2586. 0: XX
  2587. /^\X/utf
  2588. A\=ps
  2589. 0: A
  2590. A\=ph
  2591. Partial match: A
  2592. A\x{300}\x{301}\=ps
  2593. 0: A\x{300}\x{301}
  2594. A\x{300}\x{301}\=ph
  2595. Partial match: A\x{300}\x{301}
  2596. A\x{301}\=ps
  2597. 0: A\x{301}
  2598. A\x{301}\=ph
  2599. Partial match: A\x{301}
  2600. /^\X{2,3}/utf
  2601. A\=ps
  2602. Partial match: A
  2603. A\=ph
  2604. Partial match: A
  2605. AA\=ps
  2606. 0: AA
  2607. AA\=ph
  2608. Partial match: AA
  2609. A\x{300}\x{301}\=ps
  2610. Partial match: A\x{300}\x{301}
  2611. A\x{300}\x{301}\=ph
  2612. Partial match: A\x{300}\x{301}
  2613. A\x{300}\x{301}A\x{300}\x{301}\=ps
  2614. 0: A\x{300}\x{301}A\x{300}\x{301}
  2615. A\x{300}\x{301}A\x{300}\x{301}\=ph
  2616. Partial match: A\x{300}\x{301}A\x{300}\x{301}
  2617. /^\X{2}/utf
  2618. AA\=ps
  2619. 0: AA
  2620. AA\=ph
  2621. Partial match: AA
  2622. A\x{300}\x{301}A\x{300}\x{301}\=ps
  2623. 0: A\x{300}\x{301}A\x{300}\x{301}
  2624. A\x{300}\x{301}A\x{300}\x{301}\=ph
  2625. Partial match: A\x{300}\x{301}A\x{300}\x{301}
  2626. /^\X+/utf
  2627. AA\=ps
  2628. 0: AA
  2629. AA\=ph
  2630. Partial match: AA
  2631. /^\X+?Z/utf
  2632. AA\=ps
  2633. Partial match: AA
  2634. AA\=ph
  2635. Partial match: AA
  2636. # These are tests for extended grapheme clusters
  2637. /^\X/utf,aftertext
  2638. G\x{34e}\x{34e}X
  2639. 0: G\x{34e}\x{34e}
  2640. 0+ X
  2641. \x{34e}\x{34e}X
  2642. 0: \x{34e}\x{34e}
  2643. 0+ X
  2644. \x04X
  2645. 0: \x{04}
  2646. 0+ X
  2647. \x{1100}X
  2648. 0: \x{1100}
  2649. 0+ X
  2650. \x{1100}\x{34e}X
  2651. 0: \x{1100}\x{34e}
  2652. 0+ X
  2653. \x{1b04}\x{1b04}X
  2654. 0: \x{1b04}\x{1b04}
  2655. 0+ X
  2656. \= These match up to the roman letters
  2657. \x{1111}\x{1111}L,L
  2658. 0: \x{1111}\x{1111}
  2659. 0+ L,L
  2660. \x{1111}\x{1111}\x{1169}L,L,V
  2661. 0: \x{1111}\x{1111}\x{1169}
  2662. 0+ L,L,V
  2663. \x{1111}\x{ae4c}L, LV
  2664. 0: \x{1111}\x{ae4c}
  2665. 0+ L, LV
  2666. \x{1111}\x{ad89}L, LVT
  2667. 0: \x{1111}\x{ad89}
  2668. 0+ L, LVT
  2669. \x{1111}\x{ae4c}\x{1169}L, LV, V
  2670. 0: \x{1111}\x{ae4c}\x{1169}
  2671. 0+ L, LV, V
  2672. \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
  2673. 0: \x{1111}\x{ae4c}\x{1169}\x{1169}
  2674. 0+ L, LV, V, V
  2675. \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
  2676. 0: \x{1111}\x{ae4c}\x{1169}\x{11fe}
  2677. 0+ L, LV, V, T
  2678. \x{1111}\x{ad89}\x{11fe}L, LVT, T
  2679. 0: \x{1111}\x{ad89}\x{11fe}
  2680. 0+ L, LVT, T
  2681. \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
  2682. 0: \x{1111}\x{ad89}\x{11fe}\x{11fe}
  2683. 0+ L, LVT, T, T
  2684. \x{ad89}\x{11fe}\x{11fe}LVT, T, T
  2685. 0: \x{ad89}\x{11fe}\x{11fe}
  2686. 0+ LVT, T, T
  2687. \= These match just the first codepoint (invalid sequence)
  2688. \x{1111}\x{11fe}L, T
  2689. 0: \x{1111}
  2690. 0+ \x{11fe}L, T
  2691. \x{ae4c}\x{1111}LV, L
  2692. 0: \x{ae4c}
  2693. 0+ \x{1111}LV, L
  2694. \x{ae4c}\x{ae4c}LV, LV
  2695. 0: \x{ae4c}
  2696. 0+ \x{ae4c}LV, LV
  2697. \x{ae4c}\x{ad89}LV, LVT
  2698. 0: \x{ae4c}
  2699. 0+ \x{ad89}LV, LVT
  2700. \x{1169}\x{1111}V, L
  2701. 0: \x{1169}
  2702. 0+ \x{1111}V, L
  2703. \x{1169}\x{ae4c}V, LV
  2704. 0: \x{1169}
  2705. 0+ \x{ae4c}V, LV
  2706. \x{1169}\x{ad89}V, LVT
  2707. 0: \x{1169}
  2708. 0+ \x{ad89}V, LVT
  2709. \x{ad89}\x{1111}LVT, L
  2710. 0: \x{ad89}
  2711. 0+ \x{1111}LVT, L
  2712. \x{ad89}\x{1169}LVT, V
  2713. 0: \x{ad89}
  2714. 0+ \x{1169}LVT, V
  2715. \x{ad89}\x{ae4c}LVT, LV
  2716. 0: \x{ad89}
  2717. 0+ \x{ae4c}LVT, LV
  2718. \x{ad89}\x{ad89}LVT, LVT
  2719. 0: \x{ad89}
  2720. 0+ \x{ad89}LVT, LVT
  2721. \x{11fe}\x{1111}T, L
  2722. 0: \x{11fe}
  2723. 0+ \x{1111}T, L
  2724. \x{11fe}\x{1169}T, V
  2725. 0: \x{11fe}
  2726. 0+ \x{1169}T, V
  2727. \x{11fe}\x{ae4c}T, LV
  2728. 0: \x{11fe}
  2729. 0+ \x{ae4c}T, LV
  2730. \x{11fe}\x{ad89}T, LVT
  2731. 0: \x{11fe}
  2732. 0+ \x{ad89}T, LVT
  2733. \= Test extend and spacing mark
  2734. \x{1111}\x{ae4c}\x{0711}L, LV, extend
  2735. 0: \x{1111}\x{ae4c}\x{711}
  2736. 0+ L, LV, extend
  2737. \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
  2738. 0: \x{1111}\x{ae4c}\x{1b04}
  2739. 0+ L, LV, spacing mark
  2740. \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
  2741. 0: \x{1111}\x{ae4c}\x{1b04}\x{711}\x{1b04}
  2742. 0+ L, LV, spacing mark, extend, spacing mark
  2743. \= Test CR, LF, and control
  2744. \x0d\x{0711}CR, extend
  2745. 0: \x{0d}
  2746. 0+ \x{711}CR, extend
  2747. \x0d\x{1b04}CR, spacingmark
  2748. 0: \x{0d}
  2749. 0+ \x{1b04}CR, spacingmark
  2750. \x0a\x{0711}LF, extend
  2751. 0: \x{0a}
  2752. 0+ \x{711}LF, extend
  2753. \x0a\x{1b04}LF, spacingmark
  2754. 0: \x{0a}
  2755. 0+ \x{1b04}LF, spacingmark
  2756. \x0b\x{0711}Control, extend
  2757. 0: \x{0b}
  2758. 0+ \x{711}Control, extend
  2759. \x09\x{1b04}Control, spacingmark
  2760. 0: \x{09}
  2761. 0+ \x{1b04}Control, spacingmark
  2762. \= There are no Prepend characters, so we can't test Prepend, CR
  2763. /^(?>\X{2})X/utf,aftertext
  2764. \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2765. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2766. 0+
  2767. /^\X{2,4}X/utf,aftertext
  2768. \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2769. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2770. 0+
  2771. \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2772. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2773. 0+
  2774. \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2775. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2776. 0+
  2777. /^\X{2,4}?X/utf,aftertext
  2778. \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2779. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2780. 0+
  2781. \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2782. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2783. 0+
  2784. \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2785. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2786. 0+
  2787. /\x{1e9e}+/i,utf
  2788. \x{1e9e}\x{00df}
  2789. 0: \x{1e9e}\x{df}
  2790. /[z\x{1e9e}]+/i,utf
  2791. \x{1e9e}\x{00df}
  2792. 0: \x{1e9e}\x{df}
  2793. /\x{00df}+/i,utf
  2794. \x{1e9e}\x{00df}
  2795. 0: \x{1e9e}\x{df}
  2796. /[z\x{00df}]+/i,utf
  2797. \x{1e9e}\x{00df}
  2798. 0: \x{1e9e}\x{df}
  2799. /\x{1f88}+/i,utf
  2800. \x{1f88}\x{1f80}
  2801. 0: \x{1f88}\x{1f80}
  2802. /[z\x{1f88}]+/i,utf
  2803. \x{1f88}\x{1f80}
  2804. 0: \x{1f88}\x{1f80}
  2805. # Perl matches these
  2806. /\x{00b5}+/i,utf
  2807. \x{00b5}\x{039c}\x{03bc}
  2808. 0: \x{b5}\x{39c}\x{3bc}
  2809. /\x{039c}+/i,utf
  2810. \x{00b5}\x{039c}\x{03bc}
  2811. 0: \x{b5}\x{39c}\x{3bc}
  2812. /\x{03bc}+/i,utf
  2813. \x{00b5}\x{039c}\x{03bc}
  2814. 0: \x{b5}\x{39c}\x{3bc}
  2815. /\x{00c5}+/i,utf
  2816. \x{00c5}\x{00e5}\x{212b}
  2817. 0: \x{c5}\x{e5}\x{212b}
  2818. /\x{00e5}+/i,utf
  2819. \x{00c5}\x{00e5}\x{212b}
  2820. 0: \x{c5}\x{e5}\x{212b}
  2821. /\x{212b}+/i,utf
  2822. \x{00c5}\x{00e5}\x{212b}
  2823. 0: \x{c5}\x{e5}\x{212b}
  2824. /\x{01c4}+/i,utf
  2825. \x{01c4}\x{01c5}\x{01c6}
  2826. 0: \x{1c4}\x{1c5}\x{1c6}
  2827. /\x{01c5}+/i,utf
  2828. \x{01c4}\x{01c5}\x{01c6}
  2829. 0: \x{1c4}\x{1c5}\x{1c6}
  2830. /\x{01c6}+/i,utf
  2831. \x{01c4}\x{01c5}\x{01c6}
  2832. 0: \x{1c4}\x{1c5}\x{1c6}
  2833. /\x{01c7}+/i,utf
  2834. \x{01c7}\x{01c8}\x{01c9}
  2835. 0: \x{1c7}\x{1c8}\x{1c9}
  2836. /\x{01c8}+/i,utf
  2837. \x{01c7}\x{01c8}\x{01c9}
  2838. 0: \x{1c7}\x{1c8}\x{1c9}
  2839. /\x{01c9}+/i,utf
  2840. \x{01c7}\x{01c8}\x{01c9}
  2841. 0: \x{1c7}\x{1c8}\x{1c9}
  2842. /\x{01ca}+/i,utf
  2843. \x{01ca}\x{01cb}\x{01cc}
  2844. 0: \x{1ca}\x{1cb}\x{1cc}
  2845. /\x{01cb}+/i,utf
  2846. \x{01ca}\x{01cb}\x{01cc}
  2847. 0: \x{1ca}\x{1cb}\x{1cc}
  2848. /\x{01cc}+/i,utf
  2849. \x{01ca}\x{01cb}\x{01cc}
  2850. 0: \x{1ca}\x{1cb}\x{1cc}
  2851. /\x{01f1}+/i,utf
  2852. \x{01f1}\x{01f2}\x{01f3}
  2853. 0: \x{1f1}\x{1f2}\x{1f3}
  2854. /\x{01f2}+/i,utf
  2855. \x{01f1}\x{01f2}\x{01f3}
  2856. 0: \x{1f1}\x{1f2}\x{1f3}
  2857. /\x{01f3}+/i,utf
  2858. \x{01f1}\x{01f2}\x{01f3}
  2859. 0: \x{1f1}\x{1f2}\x{1f3}
  2860. /\x{0345}+/i,utf
  2861. \x{0345}\x{0399}\x{03b9}\x{1fbe}
  2862. 0: \x{345}\x{399}\x{3b9}\x{1fbe}
  2863. /\x{0399}+/i,utf
  2864. \x{0345}\x{0399}\x{03b9}\x{1fbe}
  2865. 0: \x{345}\x{399}\x{3b9}\x{1fbe}
  2866. /\x{03b9}+/i,utf
  2867. \x{0345}\x{0399}\x{03b9}\x{1fbe}
  2868. 0: \x{345}\x{399}\x{3b9}\x{1fbe}
  2869. /\x{1fbe}+/i,utf
  2870. \x{0345}\x{0399}\x{03b9}\x{1fbe}
  2871. 0: \x{345}\x{399}\x{3b9}\x{1fbe}
  2872. /\x{0392}+/i,utf
  2873. \x{0392}\x{03b2}\x{03d0}
  2874. 0: \x{392}\x{3b2}\x{3d0}
  2875. /\x{03b2}+/i,utf
  2876. \x{0392}\x{03b2}\x{03d0}
  2877. 0: \x{392}\x{3b2}\x{3d0}
  2878. /\x{03d0}+/i,utf
  2879. \x{0392}\x{03b2}\x{03d0}
  2880. 0: \x{392}\x{3b2}\x{3d0}
  2881. /\x{0395}+/i,utf
  2882. \x{0395}\x{03b5}\x{03f5}
  2883. 0: \x{395}\x{3b5}\x{3f5}
  2884. /\x{03b5}+/i,utf
  2885. \x{0395}\x{03b5}\x{03f5}
  2886. 0: \x{395}\x{3b5}\x{3f5}
  2887. /\x{03f5}+/i,utf
  2888. \x{0395}\x{03b5}\x{03f5}
  2889. 0: \x{395}\x{3b5}\x{3f5}
  2890. /\x{0398}+/i,utf
  2891. \x{0398}\x{03b8}\x{03d1}\x{03f4}
  2892. 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
  2893. /\x{03b8}+/i,utf
  2894. \x{0398}\x{03b8}\x{03d1}\x{03f4}
  2895. 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
  2896. /\x{03d1}+/i,utf
  2897. \x{0398}\x{03b8}\x{03d1}\x{03f4}
  2898. 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
  2899. /\x{03f4}+/i,utf
  2900. \x{0398}\x{03b8}\x{03d1}\x{03f4}
  2901. 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
  2902. /\x{039a}+/i,utf
  2903. \x{039a}\x{03ba}\x{03f0}
  2904. 0: \x{39a}\x{3ba}\x{3f0}
  2905. /\x{03ba}+/i,utf
  2906. \x{039a}\x{03ba}\x{03f0}
  2907. 0: \x{39a}\x{3ba}\x{3f0}
  2908. /\x{03f0}+/i,utf
  2909. \x{039a}\x{03ba}\x{03f0}
  2910. 0: \x{39a}\x{3ba}\x{3f0}
  2911. /\x{03a0}+/i,utf
  2912. \x{03a0}\x{03c0}\x{03d6}
  2913. 0: \x{3a0}\x{3c0}\x{3d6}
  2914. /\x{03c0}+/i,utf
  2915. \x{03a0}\x{03c0}\x{03d6}
  2916. 0: \x{3a0}\x{3c0}\x{3d6}
  2917. /\x{03d6}+/i,utf
  2918. \x{03a0}\x{03c0}\x{03d6}
  2919. 0: \x{3a0}\x{3c0}\x{3d6}
  2920. /\x{03a1}+/i,utf
  2921. \x{03a1}\x{03c1}\x{03f1}
  2922. 0: \x{3a1}\x{3c1}\x{3f1}
  2923. /\x{03c1}+/i,utf
  2924. \x{03a1}\x{03c1}\x{03f1}
  2925. 0: \x{3a1}\x{3c1}\x{3f1}
  2926. /\x{03f1}+/i,utf
  2927. \x{03a1}\x{03c1}\x{03f1}
  2928. 0: \x{3a1}\x{3c1}\x{3f1}
  2929. /\x{03a3}+/i,utf
  2930. \x{03A3}\x{03C2}\x{03C3}
  2931. 0: \x{3a3}\x{3c2}\x{3c3}
  2932. /\x{03c2}+/i,utf
  2933. \x{03A3}\x{03C2}\x{03C3}
  2934. 0: \x{3a3}\x{3c2}\x{3c3}
  2935. /\x{03c3}+/i,utf
  2936. \x{03A3}\x{03C2}\x{03C3}
  2937. 0: \x{3a3}\x{3c2}\x{3c3}
  2938. /\x{03a6}+/i,utf
  2939. \x{03a6}\x{03c6}\x{03d5}
  2940. 0: \x{3a6}\x{3c6}\x{3d5}
  2941. /\x{03c6}+/i,utf
  2942. \x{03a6}\x{03c6}\x{03d5}
  2943. 0: \x{3a6}\x{3c6}\x{3d5}
  2944. /\x{03d5}+/i,utf
  2945. \x{03a6}\x{03c6}\x{03d5}
  2946. 0: \x{3a6}\x{3c6}\x{3d5}
  2947. /\x{03c9}+/i,utf
  2948. \x{03c9}\x{03a9}\x{2126}
  2949. 0: \x{3c9}\x{3a9}\x{2126}
  2950. /\x{03a9}+/i,utf
  2951. \x{03c9}\x{03a9}\x{2126}
  2952. 0: \x{3c9}\x{3a9}\x{2126}
  2953. /\x{2126}+/i,utf
  2954. \x{03c9}\x{03a9}\x{2126}
  2955. 0: \x{3c9}\x{3a9}\x{2126}
  2956. /\x{1e60}+/i,utf
  2957. \x{1e60}\x{1e61}\x{1e9b}
  2958. 0: \x{1e60}\x{1e61}\x{1e9b}
  2959. /\x{1e61}+/i,utf
  2960. \x{1e60}\x{1e61}\x{1e9b}
  2961. 0: \x{1e60}\x{1e61}\x{1e9b}
  2962. /\x{1e9b}+/i,utf
  2963. \x{1e60}\x{1e61}\x{1e9b}
  2964. 0: \x{1e60}\x{1e61}\x{1e9b}
  2965. /\x{1e9e}+/i,utf
  2966. \x{1e9e}\x{00df}
  2967. 0: \x{1e9e}\x{df}
  2968. /\x{00df}+/i,utf
  2969. \x{1e9e}\x{00df}
  2970. 0: \x{1e9e}\x{df}
  2971. /\x{1f88}+/i,utf
  2972. \x{1f88}\x{1f80}
  2973. 0: \x{1f88}\x{1f80}
  2974. /\x{1f80}+/i,utf
  2975. \x{1f88}\x{1f80}
  2976. 0: \x{1f88}\x{1f80}
  2977. /\x{004b}+/i,utf
  2978. \x{004b}\x{006b}\x{212a}
  2979. 0: Kk\x{212a}
  2980. /\x{006b}+/i,utf
  2981. \x{004b}\x{006b}\x{212a}
  2982. 0: Kk\x{212a}
  2983. /\x{212a}+/i,utf
  2984. \x{004b}\x{006b}\x{212a}
  2985. 0: Kk\x{212a}
  2986. /\x{0053}+/i,utf
  2987. \x{0053}\x{0073}\x{017f}
  2988. 0: Ss\x{17f}
  2989. /\x{0073}+/i,utf
  2990. \x{0053}\x{0073}\x{017f}
  2991. 0: Ss\x{17f}
  2992. /\x{017f}+/i,utf
  2993. \x{0053}\x{0073}\x{017f}
  2994. 0: Ss\x{17f}
  2995. /ist/i,utf
  2996. \= Expect no match
  2997. ikt
  2998. No match
  2999. /is+t/i,utf
  3000. iSs\x{17f}t
  3001. 0: iSs\x{17f}t
  3002. \= Expect no match
  3003. ikt
  3004. No match
  3005. /is+?t/i,utf
  3006. \= Expect no match
  3007. ikt
  3008. No match
  3009. /is?t/i,utf
  3010. \= Expect no match
  3011. ikt
  3012. No match
  3013. /is{2}t/i,utf
  3014. \= Expect no match
  3015. iskt
  3016. No match
  3017. /^\p{Xuc}/utf
  3018. $abc
  3019. 0: $
  3020. @abc
  3021. 0: @
  3022. `abc
  3023. 0: `
  3024. \x{1234}abc
  3025. 0: \x{1234}
  3026. \= Expect no match
  3027. abc
  3028. No match
  3029. /^\p{Xuc}+/utf
  3030. $@`\x{a0}\x{1234}\x{e000}**
  3031. 0: $@`\x{a0}\x{1234}\x{e000}
  3032. \= Expect no match
  3033. \x{9f}
  3034. No match
  3035. /^\p{Xuc}+?/utf
  3036. $@`\x{a0}\x{1234}\x{e000}**
  3037. 0: $@`\x{a0}\x{1234}\x{e000}
  3038. 1: $@`\x{a0}\x{1234}
  3039. 2: $@`\x{a0}
  3040. 3: $@`
  3041. 4: $@
  3042. 5: $
  3043. \= Expect no match
  3044. \x{9f}
  3045. No match
  3046. /^\p{Xuc}+?\*/utf
  3047. $@`\x{a0}\x{1234}\x{e000}**
  3048. 0: $@`\x{a0}\x{1234}\x{e000}*
  3049. \= Expect no match
  3050. \x{9f}
  3051. No match
  3052. /^\p{Xuc}++/utf
  3053. $@`\x{a0}\x{1234}\x{e000}**
  3054. 0: $@`\x{a0}\x{1234}\x{e000}
  3055. \= Expect no match
  3056. \x{9f}
  3057. No match
  3058. /^\p{Xuc}{3,5}/utf
  3059. $@`\x{a0}\x{1234}\x{e000}**
  3060. 0: $@`\x{a0}\x{1234}
  3061. \= Expect no match
  3062. \x{9f}
  3063. No match
  3064. /^\p{Xuc}{3,5}?/utf
  3065. $@`\x{a0}\x{1234}\x{e000}**
  3066. 0: $@`\x{a0}\x{1234}
  3067. 1: $@`\x{a0}
  3068. 2: $@`
  3069. \= Expect no match
  3070. \x{9f}
  3071. No match
  3072. /^[\p{Xuc}]/utf
  3073. $@`\x{a0}\x{1234}\x{e000}**
  3074. 0: $
  3075. \= Expect no match
  3076. \x{9f}
  3077. No match
  3078. /^[\p{Xuc}]+/utf
  3079. $@`\x{a0}\x{1234}\x{e000}**
  3080. 0: $@`\x{a0}\x{1234}\x{e000}
  3081. \= Expect no match
  3082. \x{9f}
  3083. No match
  3084. /^\P{Xuc}/utf
  3085. abc
  3086. 0: a
  3087. \= Expect no match
  3088. $abc
  3089. No match
  3090. @abc
  3091. No match
  3092. `abc
  3093. No match
  3094. \x{1234}abc
  3095. No match
  3096. /^[\P{Xuc}]/utf
  3097. abc
  3098. 0: a
  3099. \= Expect no match
  3100. $abc
  3101. No match
  3102. @abc
  3103. No match
  3104. `abc
  3105. No match
  3106. \x{1234}abc
  3107. No match
  3108. /^A\s+Z/utf,ucp
  3109. A\x{2005}Z
  3110. 0: A\x{2005}Z
  3111. A\x{85}\x{180e}\x{2005}Z
  3112. 0: A\x{85}\x{180e}\x{2005}Z
  3113. /^A[\s]+Z/utf,ucp
  3114. A\x{2005}Z
  3115. 0: A\x{2005}Z
  3116. A\x{85}\x{180e}\x{2005}Z
  3117. 0: A\x{85}\x{180e}\x{2005}Z
  3118. /(?<=\x{100})\x{200}(?=\x{300})/utf,allusedtext
  3119. \x{100}\x{200}\x{300}
  3120. 0: \x{100}\x{200}\x{300}
  3121. <<<<<<< >>>>>>>
  3122. # -----------------------------------------------------------------------------
  3123. # Tests for bidi control and bidi class properties
  3124. /\p{ bidi_control }/utf
  3125. -->\x{202c}<--
  3126. 0: \x{202c}
  3127. /\p{bidicontrol}+/utf
  3128. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3129. 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
  3130. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3131. 0: \x{2066}\x{2067}\x{2068}\x{2069}
  3132. /\p{bidicontrol}+?/utf
  3133. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3134. 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
  3135. 1: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}
  3136. 2: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}
  3137. 3: \x{61c}\x{200e}\x{200f}\x{202a}
  3138. 4: \x{61c}\x{200e}\x{200f}
  3139. 5: \x{61c}\x{200e}
  3140. 6: \x{61c}
  3141. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3142. 0: \x{2066}\x{2067}\x{2068}\x{2069}
  3143. 1: \x{2066}\x{2067}\x{2068}
  3144. 2: \x{2066}\x{2067}
  3145. 3: \x{2066}
  3146. /\p{bidicontrol}++/utf
  3147. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3148. 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
  3149. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3150. 0: \x{2066}\x{2067}\x{2068}\x{2069}
  3151. /[\p{bidi_control}]/utf
  3152. -->\x{202c}<--
  3153. 0: \x{202c}
  3154. /[\p{bidicontrol}]+/utf
  3155. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3156. 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
  3157. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3158. 0: \x{2066}\x{2067}\x{2068}\x{2069}
  3159. /[\p{bidicontrol}]+?/utf
  3160. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3161. 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
  3162. 1: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}
  3163. 2: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}
  3164. 3: \x{61c}\x{200e}\x{200f}\x{202a}
  3165. 4: \x{61c}\x{200e}\x{200f}
  3166. 5: \x{61c}\x{200e}
  3167. 6: \x{61c}
  3168. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3169. 0: \x{2066}\x{2067}\x{2068}\x{2069}
  3170. 1: \x{2066}\x{2067}\x{2068}
  3171. 2: \x{2066}\x{2067}
  3172. 3: \x{2066}
  3173. /[\p{bidicontrol}]++/utf
  3174. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3175. 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
  3176. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3177. 0: \x{2066}\x{2067}\x{2068}\x{2069}
  3178. /[\p{bidicontrol}<>]+/utf
  3179. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3180. 0: >\x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<
  3181. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3182. 0: >\x{2066}\x{2067}\x{2068}\x{2069}<
  3183. /\P{bidicontrol}+/g,utf
  3184. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3185. 0: -->
  3186. 0: <--
  3187. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3188. 0: -->
  3189. 0: <--
  3190. /\p{^bidicontrol}+/g,utf
  3191. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3192. 0: -->
  3193. 0: <--
  3194. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3195. 0: -->
  3196. 0: <--
  3197. /\p{bidi class = al}/utf
  3198. -->\x{061D}<--
  3199. 0: \x{61d}
  3200. /\p{bidi class = al}+/utf
  3201. -->\x{061D}\x{061e}\x{061f}<--
  3202. 0: \x{61d}\x{61e}\x{61f}
  3203. /\p{bidi_class : AL}+?/utf
  3204. -->\x{061D}\x{061e}\x{061f}<--
  3205. 0: \x{61d}\x{61e}\x{61f}
  3206. 1: \x{61d}\x{61e}
  3207. 2: \x{61d}
  3208. /\p{Bidi_Class : AL}++/utf
  3209. -->\x{061D}\x{061e}\x{061f}<--
  3210. 0: \x{61d}\x{61e}\x{61f}
  3211. /\p{bidi class = aN}+/utf
  3212. -->\x{061D}\x{0602}\x{0604}\x{061f}<--
  3213. 0: \x{602}\x{604}
  3214. /\p{bidi class = B}+/utf
  3215. -->\x{0a}\x{0d}\x{01c}\x{01e}\x{085}\x{2029}<--
  3216. 0: \x{0a}\x{0d}\x{1c}\x{1e}\x{85}\x{2029}
  3217. /\p{bidi class:BN}+/utf
  3218. -->\x{0}\x{08}\x{200c}\x{fffe}\x{dfffe}\x{10ffff}<--
  3219. 0: \x{00}\x{08}\x{200c}\x{fffe}\x{dfffe}\x{10ffff}
  3220. /\p{bidiclass:cs}+/utf
  3221. -->,.\x{060c}\x{ff1a}<--
  3222. 0: ,.\x{60c}\x{ff1a}
  3223. /\p{bidiclass:En}+/utf
  3224. -->09\x{b2}\x{2074}\x{1fbf9}<--
  3225. 0: 09\x{b2}\x{2074}\x{1fbf9}
  3226. /\p{bidiclass:es}+/utf
  3227. ==>+-\x{207a}\x{ff0d}<==
  3228. 0: +-\x{207a}\x{ff0d}
  3229. /\p{bidiclass:et}+/utf
  3230. -->#\{24}%\x{a2}\x{A838}\x{1e2ff}<--
  3231. 0: #
  3232. /\p{bidiclass:FSI}+/utf
  3233. -->\x{2068}<--
  3234. 0: \x{2068}
  3235. /\p{bidi class:L}+/utf
  3236. -->ABC<--
  3237. 0: ABC
  3238. /\P{bidi class:L}+/utf
  3239. -->ABC<--
  3240. 0: -->
  3241. /\p{bidi class:LRE}+\p{bidiclass=lri}*\p{bidiclass:lro}/utf
  3242. -->\x{202a}\x{2066}\x{202d}<--
  3243. 0: \x{202a}\x{2066}\x{202d}
  3244. /\p{bidi class:NSM}+/utf
  3245. -->\x{9bc}\x{a71}\x{e31}<--
  3246. 0: \x{9bc}\x{a71}\x{e31}
  3247. /\p{bidi class:ON}+/utf
  3248. -->\x{21}'()*;@\x{384}\x{2039}<=-
  3249. 0: >!'()*;@\x{384}\x{2039}<=
  3250. /\p{bidiclass:pdf}\p{bidiclass:pdi}/utf
  3251. -->\x{202c}\x{2069}<--
  3252. 0: \x{202c}\x{2069}
  3253. /\p{bidi class:R}+/utf
  3254. -->\x{590}\x{5c6}\x{200f}\x{10805}<--
  3255. 0: \x{590}\x{5c6}\x{200f}\x{10805}
  3256. /\p{bidi class:RLE}+\p{bidi class:RLI}*\p{bidi class:RLO}+/utf
  3257. -->\x{202b}\x{2067}\x{202e}<--
  3258. 0: \x{202b}\x{2067}\x{202e}
  3259. /\p{bidi class:S}+\p{bidiclass:WS}+/utf
  3260. -->\x{9}\x{b}\x{1f} \x{c} \x{2000} \x{3000}<--
  3261. 0: \x{09}\x{0b}\x{1f} \x{0c} \x{2000} \x{3000}
  3262. # -----------------------------------------------------------------------------
  3263. /\p{katakana}/utf
  3264. \x{30a1}
  3265. 0: \x{30a1}
  3266. \x{3001}
  3267. 0: \x{3001}
  3268. /\p{scx:katakana}/utf
  3269. \x{30a1}
  3270. 0: \x{30a1}
  3271. \x{3001}
  3272. 0: \x{3001}
  3273. /\p{script extensions:katakana}/utf
  3274. \x{30a1}
  3275. 0: \x{30a1}
  3276. \x{3001}
  3277. 0: \x{3001}
  3278. /\p{sc:katakana}/utf
  3279. \x{30a1}
  3280. 0: \x{30a1}
  3281. \= Expect no match
  3282. \x{3001}
  3283. No match
  3284. /\p{script:katakana}/utf
  3285. \x{30a1}
  3286. 0: \x{30a1}
  3287. \= Expect no match
  3288. \x{3001}
  3289. No match
  3290. /\p{sc:katakana}{3,}/utf
  3291. \x{30a1}\x{30fa}\x{32d0}\x{1b122}\x{ff66}\x{3001}ABC
  3292. 0: \x{30a1}\x{30fa}\x{32d0}\x{1b122}\x{ff66}
  3293. /\p{sc:katakana}{3,}?/utf
  3294. \x{30a1}\x{30fa}\x{32d0}\x{1b122}\x{ff66}\x{3001}ABC
  3295. 0: \x{30a1}\x{30fa}\x{32d0}\x{1b122}\x{ff66}
  3296. 1: \x{30a1}\x{30fa}\x{32d0}\x{1b122}
  3297. 2: \x{30a1}\x{30fa}\x{32d0}
  3298. # Tests for PCRE2_EXTRA_CASELESS_RESTRICT. Compare each test with and without
  3299. # the restriction.
  3300. /AskZ/i,utf,caseless_restrict
  3301. AskZ
  3302. 0: AskZ
  3303. aSKz
  3304. 0: aSKz
  3305. \= Expect no match
  3306. A\x{17f}kZ
  3307. No match
  3308. As\x{212a}Z
  3309. No match
  3310. /AskZ/i,utf
  3311. AskZ
  3312. 0: AskZ
  3313. aSKz
  3314. 0: aSKz
  3315. A\x{17f}kZ
  3316. 0: A\x{17f}kZ
  3317. As\x{212a}Z
  3318. 0: As\x{212a}Z
  3319. /A\x{17f}\x{212a}Z/ir,utf
  3320. \= Expect no match
  3321. AskZ
  3322. No match
  3323. /A\x{17f}\x{212a}Z/i,utf
  3324. AskZ
  3325. 0: AskZ
  3326. /[AskZ]+/i,utf,caseless_restrict
  3327. AskZ
  3328. 0: AskZ
  3329. aSKz
  3330. 0: aSKz
  3331. A\x{17f}kZ
  3332. 0: A
  3333. As\x{212a}Z
  3334. 0: As
  3335. /[AskZ]+/i,utf
  3336. AskZ
  3337. 0: AskZ
  3338. aSKz
  3339. 0: aSKz
  3340. A\x{17f}kZ
  3341. 0: A\x{17f}kZ
  3342. As\x{212a}Z
  3343. 0: As\x{212a}Z
  3344. /[\x{17f}\x{212a}]+/ir,utf
  3345. \= Expect no match
  3346. AskZ
  3347. No match
  3348. /[\x{17f}\x{212a}]+/i,utf
  3349. AskZ
  3350. 0: sk
  3351. /[^s]+/ir,utf
  3352. A\x{17f}Z
  3353. 0: A\x{17f}Z
  3354. /[^s]+/i,utf
  3355. A\x{17f}Z
  3356. 0: A
  3357. /[^k]+/ir,utf
  3358. A\x{212a}Z
  3359. 0: A\x{212a}Z
  3360. /[^k]+/i,utf
  3361. A\x{212a}Z
  3362. 0: A
  3363. /[^sk]+/ir,utf
  3364. A\x{17f}\x{212a}Z
  3365. 0: A\x{17f}\x{212a}Z
  3366. /[^sk]+/i,utf
  3367. A\x{17f}\x{212a}Z
  3368. 0: A
  3369. /[^\x{17f}]+/ir,utf
  3370. AsSZ
  3371. 0: AsSZ
  3372. /[^\x{17f}]+/i,utf
  3373. AsSZ
  3374. 0: A
  3375. /[Ss]+/irB,utf
  3376. ------------------------------------------------------------------
  3377. Bra
  3378. /i S++
  3379. Ket
  3380. End
  3381. ------------------------------------------------------------------
  3382. Sss\x{17f}ss
  3383. 0: Sss
  3384. /[Ss]+/iB,utf
  3385. ------------------------------------------------------------------
  3386. Bra
  3387. [Ss\x{17f}\x{17f}]++
  3388. Ket
  3389. End
  3390. ------------------------------------------------------------------
  3391. Sss\x{17f}ss
  3392. 0: Sss\x{17f}ss
  3393. /[S\x{17f}]/irB,utf
  3394. ------------------------------------------------------------------
  3395. Bra
  3396. [Ss\x{17f}]
  3397. Ket
  3398. End
  3399. ------------------------------------------------------------------
  3400. /[S\x{17f}]/iB,utf
  3401. ------------------------------------------------------------------
  3402. Bra
  3403. [Ss\x{17f}\x{17f}]
  3404. Ket
  3405. End
  3406. ------------------------------------------------------------------
  3407. /[\x{17f}s]/irB,utf
  3408. ------------------------------------------------------------------
  3409. Bra
  3410. [Ss\x{17f}]
  3411. Ket
  3412. End
  3413. ------------------------------------------------------------------
  3414. /[\x{17f}s]/iB,utf
  3415. ------------------------------------------------------------------
  3416. Bra
  3417. [Ss\x{17f}\x{17f}]
  3418. Ket
  3419. End
  3420. ------------------------------------------------------------------
  3421. /[\x{4b}\x{6b}]/irB,utf
  3422. ------------------------------------------------------------------
  3423. Bra
  3424. /i K
  3425. Ket
  3426. End
  3427. ------------------------------------------------------------------
  3428. /[\x{4b}\x{6b}]/iB,utf
  3429. ------------------------------------------------------------------
  3430. Bra
  3431. [Kk\x{212a}\x{212a}]
  3432. Ket
  3433. End
  3434. ------------------------------------------------------------------
  3435. /s(?r)s(?-r)s(?r:s)s/i,utf
  3436. \x{17f}S\x{17f}S\x{17f}
  3437. 0: \x{17f}S\x{17f}S\x{17f}
  3438. \= Expect no match
  3439. \x{17f}\x{17f}\x{17f}S\x{17f}
  3440. No match
  3441. \x{17f}S\x{17f}\x{17f}\x{17f}
  3442. No match
  3443. /k(?^i)k/ir,utf
  3444. K\x{212a}
  3445. 0: K\x{212a}
  3446. \= Expect no match
  3447. \x{212a}\x{212a}
  3448. No match
  3449. # End caseless restrict tests
  3450. # TESTS for PCRE2_EXTRA_ASCII_xxx - again, tests with and without.
  3451. # DIGITS
  3452. /\d+/i,utf
  3453. 123\x{660}456
  3454. 0: 123
  3455. /\d+/i,utf,ucp
  3456. 123\x{660}456
  3457. 0: 123\x{660}456
  3458. /\d+/i,utf,ucp,ascii_bsd
  3459. 123\x{660}456
  3460. 0: 123
  3461. /[\d]+/i,utf
  3462. 123\x{660}456
  3463. 0: 123
  3464. /[\d]+/i,utf,ucp
  3465. 123\x{660}456
  3466. 0: 123\x{660}456
  3467. /[\d]+/i,utf,ucp,ascii_bsd
  3468. 123\x{660}456
  3469. 0: 123
  3470. /\d(?aD)\d(?-aD)\d/utf,ucp
  3471. \x{660}9\x{660}
  3472. 0: \x{660}9\x{660}
  3473. \= Expect no match
  3474. \x{660}\x{660}\x{660}
  3475. No match
  3476. /\d(?-aD)\d(?aD)\d/utf,ucp,ascii_bsd
  3477. 999
  3478. 0: 999
  3479. 9\x{660}9
  3480. 0: 9\x{660}9
  3481. /\d(?a)\d(?-a)\d/utf,ucp
  3482. \x{660}9\x{660}
  3483. 0: \x{660}9\x{660}
  3484. \= Expect no match
  3485. \x{660}\x{660}\x{660}
  3486. No match
  3487. /\d(?-aD)\d(?aD)\d/utf,ucp,ascii_bsd
  3488. 999
  3489. 0: 999
  3490. 9\x{660}9
  3491. 0: 9\x{660}9
  3492. # SPACES
  3493. />\s+</i,utf
  3494. > <
  3495. 0: > <
  3496. \= Expect no match
  3497. >\x{a0} <
  3498. No match
  3499. />\s+</i,utf,ucp
  3500. > <
  3501. 0: > <
  3502. >\x{a0} <
  3503. 0: >\x{a0} <
  3504. />\s+</i,utf,ucp,ascii_bss
  3505. > <
  3506. 0: > <
  3507. \= Expect no match
  3508. >\x{a0} <
  3509. No match
  3510. />[\s]+</i,utf
  3511. > <
  3512. 0: > <
  3513. \= Expect no match
  3514. >\x{a0} <
  3515. No match
  3516. />[\s]+</i,utf,ucp
  3517. > <
  3518. 0: > <
  3519. >\x{a0} <
  3520. 0: >\x{a0} <
  3521. />[\s]+</i,utf,ucp,ascii_bss
  3522. > <
  3523. 0: > <
  3524. \= Expect no match
  3525. >\x{a0} <
  3526. No match
  3527. />\s(?aS)\s(?-aS)\s</utf,ucp
  3528. >\x{a0} \x{a0}<
  3529. 0: >\x{a0} \x{a0}<
  3530. \= Expect no match
  3531. >\x{a0}\x{a0}\x{a0}<
  3532. No match
  3533. />\s(?a)\s(?-a)\s</utf,ucp
  3534. >\x{a0} \x{a0}<
  3535. 0: >\x{a0} \x{a0}<
  3536. \= Expect no match
  3537. >\x{a0}\x{a0}\x{a0}<
  3538. No match
  3539. # WORDS
  3540. /\w+/i,utf
  3541. 123\x{660}abc
  3542. 0: 123
  3543. /\w+/i,utf,ucp
  3544. 123\x{660}abc
  3545. 0: 123\x{660}abc
  3546. /\w+/i,utf,ucp,ascii_bsw
  3547. 123\x{660}abc
  3548. 0: 123
  3549. /[\w]+/i,utf
  3550. 123\x{660}abc
  3551. 0: 123
  3552. /[\w]+/i,utf,ucp
  3553. 123\x{660}abc
  3554. 0: 123\x{660}abc
  3555. /[\w]+/i,utf,ucp,ascii_bsw
  3556. 123\x{660}abc
  3557. 0: 123
  3558. /\w(?aW)\w(?-aW)\w/utf,ucp
  3559. \x{660}A\x{c0}
  3560. 0: \x{660}A\x{c0}
  3561. \= Expect no match
  3562. \x{660}\x{c0}\x{c0}
  3563. No match
  3564. /\w(?a)\w(?-a)\w/utf,ucp
  3565. \x{660}A\x{c0}
  3566. 0: \x{660}A\x{c0}
  3567. \= Expect no match
  3568. \x{660}\x{c0}\x{c0}
  3569. No match
  3570. # POSIX
  3571. /^[[:digit:]]+$/utf,ucp
  3572. 123456
  3573. 0: 123456
  3574. 123\x{660}456
  3575. 0: 123\x{660}456
  3576. /^[[:digit:]]+$/utf,ucp,ascii_digit
  3577. 123456
  3578. 0: 123456
  3579. \= Expect no match
  3580. 123\x{660}456
  3581. No match
  3582. /[[:digit:]]+/g,utf,ucp,ascii_digit
  3583. 123\x{660}456
  3584. 0: 123
  3585. 0: 456
  3586. /(?-aT)[[:digit:]](?aT)[[:digit:]]/utf,ucp,ascii_digit
  3587. 11
  3588. 0: 11
  3589. \x{ff11}1
  3590. 0: \x{ff11}1
  3591. \= Expect no match
  3592. 1\x{ff11}
  3593. No match
  3594. /(?-aT:[[:digit:]])[[:digit:]]/utf,ucp,ascii_digit
  3595. 11
  3596. 0: 11
  3597. \x{ff11}1
  3598. 0: \x{ff11}1
  3599. \= Expect no match
  3600. 1\x{ff11}
  3601. No match
  3602. /(?-aT:[[:digit:]])[[:digit:]]/utf,never_ucp,ascii_digit
  3603. 11
  3604. 0: 11
  3605. \= Expect no match
  3606. \x{ff11}1
  3607. No match
  3608. 1\x{ff11}
  3609. No match
  3610. /[[:digit:]]+/utf,ucp,ascii_posix
  3611. 123\x{660}456
  3612. 0: 123
  3613. /(?-aP)[[:digit:]](?aP)[[:digit:]]/utf,ucp,ascii_posix
  3614. 11
  3615. 0: 11
  3616. \x{ff11}1
  3617. 0: \x{ff11}1
  3618. \= Expect no match
  3619. 1\x{ff11}
  3620. No match
  3621. /(?-aP:[[:digit:]])[[:digit:]]/utf,ucp,ascii_posix
  3622. 11
  3623. 0: 11
  3624. \x{ff11}1
  3625. 0: \x{ff11}1
  3626. \= Expect no match
  3627. 1\x{ff11}
  3628. No match
  3629. /(?-a:[[:digit:]])[[:digit:]]/a,utf,ucp
  3630. 11
  3631. 0: 11
  3632. \x{ff11}1
  3633. 0: \x{ff11}1
  3634. \= Expect no match
  3635. 1\x{ff11}
  3636. No match
  3637. />[[:space:]]+</utf,ucp
  3638. >\x{a0} \x{a0}<
  3639. 0: >\x{a0} \x{a0}<
  3640. >\x{a0}\x{a0}\x{a0}<
  3641. 0: >\x{a0}\x{a0}\x{a0}<
  3642. />[[:space:]]+</utf,ucp,ascii_posix
  3643. \= Expect no match
  3644. >\x{a0} \x{a0}<
  3645. No match
  3646. /(?aP)[[:alnum:]]+/i,ucp,utf
  3647. abcáxyz
  3648. 0: abc
  3649. abc\x{660}xyz
  3650. 0: abc
  3651. /(?aP)[[:alnum:]\d]+/i,ucp,utf
  3652. abc\x{660}xyz
  3653. 0: abc\x{660}xyz
  3654. /(*UCP)(*UTF)[[:alnum:]](?aP:[[:alnum:]])[[:alnum:]]/
  3655. \x{660}A\x{660}
  3656. 0: \x{660}A\x{660}
  3657. \= Expect no match
  3658. \x{660}\x{660}\x{660}
  3659. No match
  3660. # VARIOUS
  3661. /[\d\s\w]+/a,ucp,utf
  3662. 9 A\x{660}À
  3663. 0: 9 A
  3664. 9 AÀ\x{660}
  3665. 0: 9 A
  3666. # End PCRE2_EXTRA_ASCII_xxx tests
  3667. /\w+/utf,ucp
  3668. --cafe\x{300}_au\x{203f}lait!
  3669. 0: cafe\x{300}_au\x{203f}lait
  3670. /[\w]+/utf,ucp
  3671. --cafe\x{300}_au\x{203f}lait!
  3672. 0: cafe\x{300}_au\x{203f}lait
  3673. /\b.+?\b/utf,ucp
  3674. --cafe\x{300}_au\x{203f}lait!
  3675. 0: cafe\x{300}_au\x{203f}lait
  3676. /caf\B.+?\B/utf,ucp
  3677. --cafe\x{300}_au\x{203f}lait!
  3678. 0: cafe\x{300}_au\x{203f}lait!
  3679. 1: cafe\x{300}_au\x{203f}lai
  3680. 2: cafe\x{300}_au\x{203f}la
  3681. 3: cafe\x{300}_au\x{203f}l
  3682. 4: cafe\x{300}_au\x{203f}
  3683. 5: cafe\x{300}_au
  3684. 6: cafe\x{300}_a
  3685. 7: cafe\x{300}_
  3686. 8: cafe\x{300}
  3687. 9: cafe
  3688. # End of testinput7