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.

674 lines
24 KiB

  1. # This set of tests is for the 16-bit and 32-bit libraries' basic (non-UTF)
  2. # features that are not compatible with the 8-bit library, or which give
  3. # different output in 16-bit or 32-bit mode. The output for the two widths is
  4. # different, so they have separate output files.
  5. #forbid_utf
  6. #newline_default LF ANY ANYCRLF
  7. /[^\x{c4}]/IB
  8. ------------------------------------------------------------------
  9. Bra
  10. [^\x{c4}]
  11. Ket
  12. End
  13. ------------------------------------------------------------------
  14. Capture group count = 0
  15. Subject length lower bound = 1
  16. /\x{100}/I
  17. Capture group count = 0
  18. First code unit = \x{100}
  19. Subject length lower bound = 1
  20. / (?: [\040\t] | \(
  21. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  22. \) )* # optional leading comment
  23. (?: (?:
  24. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  25. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  26. |
  27. " (?: # opening quote...
  28. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  29. | # or
  30. \\ [^\x80-\xff] # Escaped something (something != CR)
  31. )* " # closing quote
  32. ) # initial word
  33. (?: (?: [\040\t] | \(
  34. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  35. \) )* \. (?: [\040\t] | \(
  36. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  37. \) )* (?:
  38. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  39. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  40. |
  41. " (?: # opening quote...
  42. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  43. | # or
  44. \\ [^\x80-\xff] # Escaped something (something != CR)
  45. )* " # closing quote
  46. ) )* # further okay, if led by a period
  47. (?: [\040\t] | \(
  48. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  49. \) )* @ (?: [\040\t] | \(
  50. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  51. \) )* (?:
  52. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  53. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  54. | \[ # [
  55. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  56. \] # ]
  57. ) # initial subdomain
  58. (?: #
  59. (?: [\040\t] | \(
  60. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  61. \) )* \. # if led by a period...
  62. (?: [\040\t] | \(
  63. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  64. \) )* (?:
  65. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  66. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  67. | \[ # [
  68. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  69. \] # ]
  70. ) # ...further okay
  71. )*
  72. # address
  73. | # or
  74. (?:
  75. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  76. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  77. |
  78. " (?: # opening quote...
  79. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  80. | # or
  81. \\ [^\x80-\xff] # Escaped something (something != CR)
  82. )* " # closing quote
  83. ) # one word, optionally followed by....
  84. (?:
  85. [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
  86. \(
  87. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  88. \) | # comments, or...
  89. " (?: # opening quote...
  90. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  91. | # or
  92. \\ [^\x80-\xff] # Escaped something (something != CR)
  93. )* " # closing quote
  94. # quoted strings
  95. )*
  96. < (?: [\040\t] | \(
  97. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  98. \) )* # leading <
  99. (?: @ (?: [\040\t] | \(
  100. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  101. \) )* (?:
  102. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  103. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  104. | \[ # [
  105. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  106. \] # ]
  107. ) # initial subdomain
  108. (?: #
  109. (?: [\040\t] | \(
  110. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  111. \) )* \. # if led by a period...
  112. (?: [\040\t] | \(
  113. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  114. \) )* (?:
  115. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  116. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  117. | \[ # [
  118. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  119. \] # ]
  120. ) # ...further okay
  121. )*
  122. (?: (?: [\040\t] | \(
  123. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  124. \) )* , (?: [\040\t] | \(
  125. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  126. \) )* @ (?: [\040\t] | \(
  127. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  128. \) )* (?:
  129. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  130. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  131. | \[ # [
  132. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  133. \] # ]
  134. ) # initial subdomain
  135. (?: #
  136. (?: [\040\t] | \(
  137. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  138. \) )* \. # if led by a period...
  139. (?: [\040\t] | \(
  140. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  141. \) )* (?:
  142. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  143. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  144. | \[ # [
  145. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  146. \] # ]
  147. ) # ...further okay
  148. )*
  149. )* # further okay, if led by comma
  150. : # closing colon
  151. (?: [\040\t] | \(
  152. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  153. \) )* )? # optional route
  154. (?:
  155. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  156. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  157. |
  158. " (?: # opening quote...
  159. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  160. | # or
  161. \\ [^\x80-\xff] # Escaped something (something != CR)
  162. )* " # closing quote
  163. ) # initial word
  164. (?: (?: [\040\t] | \(
  165. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  166. \) )* \. (?: [\040\t] | \(
  167. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  168. \) )* (?:
  169. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  170. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  171. |
  172. " (?: # opening quote...
  173. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  174. | # or
  175. \\ [^\x80-\xff] # Escaped something (something != CR)
  176. )* " # closing quote
  177. ) )* # further okay, if led by a period
  178. (?: [\040\t] | \(
  179. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  180. \) )* @ (?: [\040\t] | \(
  181. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  182. \) )* (?:
  183. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  184. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  185. | \[ # [
  186. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  187. \] # ]
  188. ) # initial subdomain
  189. (?: #
  190. (?: [\040\t] | \(
  191. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  192. \) )* \. # if led by a period...
  193. (?: [\040\t] | \(
  194. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  195. \) )* (?:
  196. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  197. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  198. | \[ # [
  199. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  200. \] # ]
  201. ) # ...further okay
  202. )*
  203. # address spec
  204. (?: [\040\t] | \(
  205. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  206. \) )* > # trailing >
  207. # name and address
  208. ) (?: [\040\t] | \(
  209. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  210. \) )* # optional trailing comment
  211. /Ix
  212. Capture group count = 0
  213. Contains explicit CR or LF match
  214. Options: extended
  215. Starting code units: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
  216. 9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e
  217. f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \xff
  218. Subject length lower bound = 3
  219. /[\h]/B
  220. ------------------------------------------------------------------
  221. Bra
  222. [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]
  223. Ket
  224. End
  225. ------------------------------------------------------------------
  226. >\x09<
  227. 0: \x09
  228. /[\h]+/B
  229. ------------------------------------------------------------------
  230. Bra
  231. [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]++
  232. Ket
  233. End
  234. ------------------------------------------------------------------
  235. >\x09\x20\xa0<
  236. 0: \x09 \xa0
  237. /[\v]/B
  238. ------------------------------------------------------------------
  239. Bra
  240. [\x0a-\x0d\x85\x{2028}-\x{2029}]
  241. Ket
  242. End
  243. ------------------------------------------------------------------
  244. /[^\h]/B
  245. ------------------------------------------------------------------
  246. Bra
  247. [^\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}]
  248. Ket
  249. End
  250. ------------------------------------------------------------------
  251. /\h+/I
  252. Capture group count = 0
  253. Starting code units: \x09 \x20 \xa0 \xff
  254. Subject length lower bound = 1
  255. \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
  256. 0: \x{1680}\x{2000}\x{202f}\x{3000}
  257. \x{3001}\x{2fff}\x{200a}\xa0\x{2000}
  258. 0: \x{200a}\xa0\x{2000}
  259. /[\h\x{dc00}]+/IB
  260. ------------------------------------------------------------------
  261. Bra
  262. [\x09 \xa0\x{1680}\x{180e}\x{2000}-\x{200a}\x{202f}\x{205f}\x{3000}\x{dc00}]++
  263. Ket
  264. End
  265. ------------------------------------------------------------------
  266. Capture group count = 0
  267. Starting code units: \x09 \x20 \xa0 \xff
  268. Subject length lower bound = 1
  269. \x{1681}\x{200b}\x{1680}\x{2000}\x{202f}\x{3000}
  270. 0: \x{1680}\x{2000}\x{202f}\x{3000}
  271. \x{3001}\x{2fff}\x{200a}\xa0\x{2000}
  272. 0: \x{200a}\xa0\x{2000}
  273. /\H+/I
  274. Capture group count = 0
  275. Subject length lower bound = 1
  276. \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
  277. 0: \x{167f}\x{1681}\x{180d}\x{180f}
  278. \x{2000}\x{200a}\x{1fff}\x{200b}
  279. 0: \x{1fff}\x{200b}
  280. \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
  281. 0: \x{202e}\x{2030}\x{205e}\x{2060}
  282. \xa0\x{3000}\x9f\xa1\x{2fff}\x{3001}
  283. 0: \x9f\xa1\x{2fff}\x{3001}
  284. /[\H\x{d800}]+/
  285. \x{1680}\x{180e}\x{167f}\x{1681}\x{180d}\x{180f}
  286. 0: \x{167f}\x{1681}\x{180d}\x{180f}
  287. \x{2000}\x{200a}\x{1fff}\x{200b}
  288. 0: \x{1fff}\x{200b}
  289. \x{202f}\x{205f}\x{202e}\x{2030}\x{205e}\x{2060}
  290. 0: \x{202e}\x{2030}\x{205e}\x{2060}
  291. \xa0\x{3000}\x9f\xa1\x{2fff}\x{3001}
  292. 0: \x9f\xa1\x{2fff}\x{3001}
  293. /\v+/I
  294. Capture group count = 0
  295. Starting code units: \x0a \x0b \x0c \x0d \x85 \xff
  296. Subject length lower bound = 1
  297. \x{2027}\x{2030}\x{2028}\x{2029}
  298. 0: \x{2028}\x{2029}
  299. \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
  300. 0: \x85\x0a\x0b\x0c\x0d
  301. /[\v\x{dc00}]+/IB
  302. ------------------------------------------------------------------
  303. Bra
  304. [\x0a-\x0d\x85\x{2028}-\x{2029}\x{dc00}]++
  305. Ket
  306. End
  307. ------------------------------------------------------------------
  308. Capture group count = 0
  309. Starting code units: \x0a \x0b \x0c \x0d \x85 \xff
  310. Subject length lower bound = 1
  311. \x{2027}\x{2030}\x{2028}\x{2029}
  312. 0: \x{2028}\x{2029}
  313. \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
  314. 0: \x85\x0a\x0b\x0c\x0d
  315. /\V+/I
  316. Capture group count = 0
  317. Subject length lower bound = 1
  318. \x{2028}\x{2029}\x{2027}\x{2030}
  319. 0: \x{2027}\x{2030}
  320. \x85\x0a\x0b\x0c\x0d\x09\x0e\x84\x86
  321. 0: \x09\x0e\x84\x86
  322. /[\V\x{d800}]+/
  323. \x{2028}\x{2029}\x{2027}\x{2030}
  324. 0: \x{2027}\x{2030}
  325. \x85\x0a\x0b\x0c\x0d\x09\x0e\x84\x86
  326. 0: \x09\x0e\x84\x86
  327. /\R+/I,bsr=unicode
  328. Capture group count = 0
  329. \R matches any Unicode newline
  330. Starting code units: \x0a \x0b \x0c \x0d \x85 \xff
  331. Subject length lower bound = 1
  332. \x{2027}\x{2030}\x{2028}\x{2029}
  333. 0: \x{2028}\x{2029}
  334. \x09\x0e\x84\x86\x85\x0a\x0b\x0c\x0d
  335. 0: \x85\x0a\x0b\x0c\x0d
  336. /\x{d800}\x{d7ff}\x{dc00}\x{dc00}\x{dcff}\x{dd00}/I
  337. Capture group count = 0
  338. First code unit = \x{d800}
  339. Last code unit = \x{dd00}
  340. Subject length lower bound = 6
  341. \x{d800}\x{d7ff}\x{dc00}\x{dc00}\x{dcff}\x{dd00}
  342. 0: \x{d800}\x{d7ff}\x{dc00}\x{dc00}\x{dcff}\x{dd00}
  343. /[^\x{80}][^\x{ff}][^\x{100}][^\x{1000}][^\x{ffff}]/B
  344. ------------------------------------------------------------------
  345. Bra
  346. [^\x{80}]
  347. [^\x{ff}]
  348. [^\x{100}]
  349. [^\x{1000}]
  350. [^\x{ffff}]
  351. Ket
  352. End
  353. ------------------------------------------------------------------
  354. /[^\x{80}][^\x{ff}][^\x{100}][^\x{1000}][^\x{ffff}]/Bi
  355. ------------------------------------------------------------------
  356. Bra
  357. /i [^\x{80}]
  358. /i [^\x{ff}]
  359. /i [^\x{100}]
  360. /i [^\x{1000}]
  361. /i [^\x{ffff}]
  362. Ket
  363. End
  364. ------------------------------------------------------------------
  365. /[^\x{100}]*[^\x{1000}]+[^\x{ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{100}]{5,6}+/B
  366. ------------------------------------------------------------------
  367. Bra
  368. [^\x{100}]*
  369. [^\x{1000}]+
  370. [^\x{ffff}]??
  371. [^\x{8000}]{4}
  372. [^\x{8000}]*
  373. [^\x{7fff}]{2}
  374. [^\x{7fff}]{0,7}?
  375. [^\x{100}]{5}
  376. [^\x{100}]?+
  377. Ket
  378. End
  379. ------------------------------------------------------------------
  380. /[^\x{100}]*[^\x{1000}]+[^\x{ffff}]??[^\x{8000}]{4,}[^\x{7fff}]{2,9}?[^\x{100}]{5,6}+/Bi
  381. ------------------------------------------------------------------
  382. Bra
  383. /i [^\x{100}]*
  384. /i [^\x{1000}]+
  385. /i [^\x{ffff}]??
  386. /i [^\x{8000}]{4}
  387. /i [^\x{8000}]*
  388. /i [^\x{7fff}]{2}
  389. /i [^\x{7fff}]{0,7}?
  390. /i [^\x{100}]{5}
  391. /i [^\x{100}]?+
  392. Ket
  393. End
  394. ------------------------------------------------------------------
  395. /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF)XX/mark
  396. XX
  397. 0: XX
  398. MK: 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF
  399. /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE)XX/mark
  400. XX
  401. 0: XX
  402. MK: 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE
  403. /\u0100/B,alt_bsux,allow_empty_class,match_unset_backref
  404. ------------------------------------------------------------------
  405. Bra
  406. \x{100}
  407. Ket
  408. End
  409. ------------------------------------------------------------------
  410. /[\u0100-\u0200]/B,alt_bsux,allow_empty_class,match_unset_backref
  411. ------------------------------------------------------------------
  412. Bra
  413. [\x{100}-\x{200}]
  414. Ket
  415. End
  416. ------------------------------------------------------------------
  417. /\ud800/B,alt_bsux,allow_empty_class,match_unset_backref
  418. ------------------------------------------------------------------
  419. Bra
  420. \x{d800}
  421. Ket
  422. End
  423. ------------------------------------------------------------------
  424. /^\x{ffff}+/i
  425. \x{ffff}
  426. 0: \x{ffff}
  427. /^\x{ffff}?/i
  428. \x{ffff}
  429. 0: \x{ffff}
  430. /^\x{ffff}*/i
  431. \x{ffff}
  432. 0: \x{ffff}
  433. /^\x{ffff}{3}/i
  434. \x{ffff}\x{ffff}\x{ffff}
  435. 0: \x{ffff}\x{ffff}\x{ffff}
  436. /^\x{ffff}{0,3}/i
  437. \x{ffff}
  438. 0: \x{ffff}
  439. /[^\x00-a]{12,}[^b-\xff]*/B
  440. ------------------------------------------------------------------
  441. Bra
  442. [b-\xff] (neg){12,}
  443. [\x00-a] (neg)*+
  444. Ket
  445. End
  446. ------------------------------------------------------------------
  447. /[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/B
  448. ------------------------------------------------------------------
  449. Bra
  450. [\x00-\x08\x0e-\x1f!-\xff] (neg)*
  451. \s*
  452. [0-9A-Z_a-z]++
  453. \W+
  454. [\x00-/:-\xff] (neg)*?
  455. \d
  456. 0
  457. [\x00-/:-@[-^`{-\xff] (neg){4,6}?
  458. \w*
  459. A
  460. Ket
  461. End
  462. ------------------------------------------------------------------
  463. /a*[b-\x{200}]?a#a*[b-\x{200}]?b#[a-f]*[g-\x{200}]*#[g-\x{200}]*[a-c]*#[g-\x{200}]*[a-h]*/B
  464. ------------------------------------------------------------------
  465. Bra
  466. a*
  467. [b-\xff\x{100}-\x{200}]?+
  468. a#
  469. a*+
  470. [b-\xff\x{100}-\x{200}]?
  471. b#
  472. [a-f]*+
  473. [g-\xff\x{100}-\x{200}]*+
  474. #
  475. [g-\xff\x{100}-\x{200}]*+
  476. [a-c]*+
  477. #
  478. [g-\xff\x{100}-\x{200}]*
  479. [a-h]*+
  480. Ket
  481. End
  482. ------------------------------------------------------------------
  483. /^[\x{1234}\x{4321}]{2,4}?/
  484. \x{1234}\x{1234}\x{1234}
  485. 0: \x{1234}\x{1234}
  486. # Check maximum non-UTF character size for the 16-bit library.
  487. /\x{ffff}/
  488. A\x{ffff}B
  489. 0: \x{ffff}
  490. /\x{10000}/
  491. /\o{20000}/
  492. # Check maximum character size for the 32-bit library. These will all give
  493. # errors in the 16-bit library.
  494. /\x{110000}/
  495. /\x{7fffffff}/
  496. /\x{80000000}/
  497. /\x{ffffffff}/
  498. /\x{100000000}/
  499. Failed: error 134 at offset 12: character code point value in \x{} or \o{} is too large
  500. /\o{17777777777}/
  501. /\o{20000000000}/
  502. /\o{37777777777}/
  503. /\o{40000000000}/
  504. Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
  505. /\x{7fffffff}\x{7fffffff}/I
  506. Capture group count = 0
  507. First code unit = \x{7fffffff}
  508. Last code unit = \x{7fffffff}
  509. Subject length lower bound = 2
  510. /\x{80000000}\x{80000000}/I
  511. Capture group count = 0
  512. First code unit = \x{80000000}
  513. Last code unit = \x{80000000}
  514. Subject length lower bound = 2
  515. /\x{ffffffff}\x{ffffffff}/I
  516. Capture group count = 0
  517. First code unit = \x{ffffffff}
  518. Last code unit = \x{ffffffff}
  519. Subject length lower bound = 2
  520. # Non-UTF characters
  521. /.{2,3}/
  522. \x{400000}\x{400001}\x{400002}\x{400003}
  523. 0: \x{400000}\x{400001}\x{400002}
  524. /\x{400000}\x{800000}/IBi
  525. ------------------------------------------------------------------
  526. Bra
  527. /i \x{400000}\x{800000}
  528. Ket
  529. End
  530. ------------------------------------------------------------------
  531. Capture group count = 0
  532. Options: caseless
  533. First code unit = \x{400000}
  534. Last code unit = \x{800000}
  535. Subject length lower bound = 2
  536. # Check character ranges
  537. /[\H]/IB
  538. ------------------------------------------------------------------
  539. Bra
  540. [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff\x{100}-\x{167f}\x{1681}-\x{180d}\x{180f}-\x{1fff}\x{200b}-\x{202e}\x{2030}-\x{205e}\x{2060}-\x{2fff}\x{3001}-\x{ffffffff}]
  541. Ket
  542. End
  543. ------------------------------------------------------------------
  544. Capture group count = 0
  545. Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0a \x0b
  546. \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a
  547. \x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9
  548. : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^
  549. _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80
  550. \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f
  551. \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e
  552. \x9f \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae
  553. \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd
  554. \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc
  555. \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb
  556. \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea
  557. \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9
  558. \xfa \xfb \xfc \xfd \xfe \xff
  559. Subject length lower bound = 1
  560. /[\V]/IB
  561. ------------------------------------------------------------------
  562. Bra
  563. [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{ffffffff}]
  564. Ket
  565. End
  566. ------------------------------------------------------------------
  567. Capture group count = 0
  568. Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0e
  569. \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d
  570. \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >
  571. ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c
  572. d e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 \x81 \x82
  573. \x83 \x84 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92
  574. \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1
  575. \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0
  576. \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf
  577. \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce
  578. \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd
  579. \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec
  580. \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
  581. \xfc \xfd \xfe \xff
  582. Subject length lower bound = 1
  583. /(*THEN:\[A]{65501})/expand
  584. # We can use pcre2test's utf8_input modifier to create wide pattern characters,
  585. # even though this test is run when UTF is not supported.
  586. /ab������z/utf8_input
  587. ab������z
  588. 0: ab\x{7fffffff}z
  589. ab\x{7fffffff}z
  590. 0: ab\x{7fffffff}z
  591. /ab�������z/utf8_input
  592. ab�������z
  593. 0: ab\x{ffffffff}z
  594. ab\x{ffffffff}z
  595. 0: ab\x{ffffffff}z
  596. /ab�Az/utf8_input
  597. ab�Az
  598. 0: ab\x{80000041}z
  599. ab\x{80000041}z
  600. 0: ab\x{80000041}z
  601. /(?i:A{1,}\6666666666)/
  602. A\x{1b6}6666666
  603. 0: A\x{1b6}6666666
  604. # End of testinput11