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.

668 lines
26 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. Failed: error 134 at offset 8: character code point value in \x{} or \o{} is too large
  492. /\o{20000}/
  493. # Check maximum character size for the 32-bit library. These will all give
  494. # errors in the 16-bit library.
  495. /\x{110000}/
  496. Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
  497. /\x{7fffffff}/
  498. Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
  499. /\x{80000000}/
  500. Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
  501. /\x{ffffffff}/
  502. Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
  503. /\x{100000000}/
  504. Failed: error 134 at offset 12: character code point value in \x{} or \o{} is too large
  505. /\o{17777777777}/
  506. Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
  507. /\o{20000000000}/
  508. Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
  509. /\o{37777777777}/
  510. Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
  511. /\o{40000000000}/
  512. Failed: error 134 at offset 14: character code point value in \x{} or \o{} is too large
  513. /\x{7fffffff}\x{7fffffff}/I
  514. Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
  515. /\x{80000000}\x{80000000}/I
  516. Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
  517. /\x{ffffffff}\x{ffffffff}/I
  518. Failed: error 134 at offset 11: character code point value in \x{} or \o{} is too large
  519. # Non-UTF characters
  520. /.{2,3}/
  521. \x{400000}\x{400001}\x{400002}\x{400003}
  522. ** Character \x{400000} is greater than 0xffff and UTF-16 mode is not enabled.
  523. ** Truncation will probably give the wrong result.
  524. ** Character \x{400001} is greater than 0xffff and UTF-16 mode is not enabled.
  525. ** Truncation will probably give the wrong result.
  526. ** Character \x{400002} is greater than 0xffff and UTF-16 mode is not enabled.
  527. ** Truncation will probably give the wrong result.
  528. ** Character \x{400003} is greater than 0xffff and UTF-16 mode is not enabled.
  529. ** Truncation will probably give the wrong result.
  530. 0: \x00\x01\x02
  531. /\x{400000}\x{800000}/IBi
  532. Failed: error 134 at offset 9: character code point value in \x{} or \o{} is too large
  533. # Check character ranges
  534. /[\H]/IB
  535. ------------------------------------------------------------------
  536. Bra
  537. [\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{ffff}]
  538. Ket
  539. End
  540. ------------------------------------------------------------------
  541. Capture group count = 0
  542. Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x0a \x0b
  543. \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a
  544. \x1b \x1c \x1d \x1e \x1f ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9
  545. : ; < = > ? @ 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 [ \ ] ^
  546. _ ` 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
  547. \x81 \x82 \x83 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f
  548. \x90 \x91 \x92 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e
  549. \x9f \xa1 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae
  550. \xaf \xb0 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd
  551. \xbe \xbf \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc
  552. \xcd \xce \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb
  553. \xdc \xdd \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea
  554. \xeb \xec \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9
  555. \xfa \xfb \xfc \xfd \xfe \xff
  556. Subject length lower bound = 1
  557. /[\V]/IB
  558. ------------------------------------------------------------------
  559. Bra
  560. [\x00-\x09\x0e-\x84\x86-\xff\x{100}-\x{2027}\x{202a}-\x{ffff}]
  561. Ket
  562. End
  563. ------------------------------------------------------------------
  564. Capture group count = 0
  565. Starting code units: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0e
  566. \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 \x1a \x1b \x1c \x1d
  567. \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = >
  568. ? @ 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
  569. 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
  570. \x83 \x84 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92
  571. \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1
  572. \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0
  573. \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf
  574. \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce
  575. \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd
  576. \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec
  577. \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
  578. \xfc \xfd \xfe \xff
  579. Subject length lower bound = 1
  580. /(*THEN:\[A]{65501})/expand
  581. # We can use pcre2test's utf8_input modifier to create wide pattern characters,
  582. # even though this test is run when UTF is not supported.
  583. /ab������z/utf8_input
  584. ** Failed: character value greater than 0xffff cannot be converted to 16-bit in non-UTF mode
  585. ab������z
  586. ab\x{7fffffff}z
  587. /ab�������z/utf8_input
  588. ** Failed: invalid UTF-8 string cannot be converted to 16-bit string
  589. ab�������z
  590. ab\x{ffffffff}z
  591. /ab�Az/utf8_input
  592. ** Failed: invalid UTF-8 string cannot be converted to 16-bit string
  593. ab�Az
  594. ab\x{80000041}z
  595. /(?i:A{1,}\6666666666)/
  596. A\x{1b6}6666666
  597. 0: A\x{1b6}6666666
  598. # End of testinput11