testoutput14 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532
  1. /-- This set of tests is run only with the 8-bit library. They do not require
  2. UTF-8 or Unicode property support. The file starts with all the tests of
  3. the POSIX interface, because that is supported only with the 8-bit library.
  4. --/
  5. < forbid 8W
  6. /abc/P
  7. abc
  8. 0: abc
  9. *** Failers
  10. No match: POSIX code 17: match failed
  11. /^abc|def/P
  12. abcdef
  13. 0: abc
  14. abcdef\B
  15. 0: def
  16. /.*((abc)$|(def))/P
  17. defabc
  18. 0: defabc
  19. 1: abc
  20. 2: abc
  21. \Zdefabc
  22. 0: def
  23. 1: def
  24. 3: def
  25. /the quick brown fox/P
  26. the quick brown fox
  27. 0: the quick brown fox
  28. *** Failers
  29. No match: POSIX code 17: match failed
  30. The Quick Brown Fox
  31. No match: POSIX code 17: match failed
  32. /the quick brown fox/Pi
  33. the quick brown fox
  34. 0: the quick brown fox
  35. The Quick Brown Fox
  36. 0: The Quick Brown Fox
  37. /abc.def/P
  38. *** Failers
  39. No match: POSIX code 17: match failed
  40. abc\ndef
  41. No match: POSIX code 17: match failed
  42. /abc$/P
  43. abc
  44. 0: abc
  45. abc\n
  46. 0: abc
  47. /(abc)\2/P
  48. Failed: POSIX code 15: bad back reference at offset 7
  49. /(abc\1)/P
  50. abc
  51. No match: POSIX code 17: match failed
  52. /a*(b+)(z)(z)/P
  53. aaaabbbbzzzz
  54. 0: aaaabbbbzz
  55. 1: bbbb
  56. 2: z
  57. 3: z
  58. aaaabbbbzzzz\O0
  59. aaaabbbbzzzz\O1
  60. 0: aaaabbbbzz
  61. aaaabbbbzzzz\O2
  62. 0: aaaabbbbzz
  63. 1: bbbb
  64. aaaabbbbzzzz\O3
  65. 0: aaaabbbbzz
  66. 1: bbbb
  67. 2: z
  68. aaaabbbbzzzz\O4
  69. 0: aaaabbbbzz
  70. 1: bbbb
  71. 2: z
  72. 3: z
  73. aaaabbbbzzzz\O5
  74. 0: aaaabbbbzz
  75. 1: bbbb
  76. 2: z
  77. 3: z
  78. /ab.cd/P
  79. ab-cd
  80. 0: ab-cd
  81. ab=cd
  82. 0: ab=cd
  83. ** Failers
  84. No match: POSIX code 17: match failed
  85. ab\ncd
  86. No match: POSIX code 17: match failed
  87. /ab.cd/Ps
  88. ab-cd
  89. 0: ab-cd
  90. ab=cd
  91. 0: ab=cd
  92. ab\ncd
  93. 0: ab\x0acd
  94. /a(b)c/PN
  95. abc
  96. Matched with REG_NOSUB
  97. /a(?P<name>b)c/PN
  98. abc
  99. Matched with REG_NOSUB
  100. /a?|b?/P
  101. abc
  102. 0: a
  103. ** Failers
  104. 0:
  105. ddd\N
  106. No match: POSIX code 17: match failed
  107. /\w+A/P
  108. CDAAAAB
  109. 0: CDAAAA
  110. /\w+A/PU
  111. CDAAAAB
  112. 0: CDA
  113. /\Biss\B/I+P
  114. Mississippi
  115. 0: iss
  116. 0+ issippi
  117. /abc/\P
  118. Failed: POSIX code 9: bad escape sequence at offset 4
  119. /-- End of POSIX tests --/
  120. /a\Cb/
  121. aXb
  122. 0: aXb
  123. a\nb
  124. 0: a\x0ab
  125. ** Failers (too big char)
  126. No match
  127. A\x{123}B
  128. ** Character \x{123} is greater than 255 and UTF-8 mode is not enabled.
  129. ** Truncation will probably give the wrong result.
  130. No match
  131. A\o{443}B
  132. ** Character \x{123} is greater than 255 and UTF-8 mode is not enabled.
  133. ** Truncation will probably give the wrong result.
  134. No match
  135. /\x{100}/I
  136. Failed: character value in \x{} or \o{} is too large at offset 6
  137. /\o{400}/I
  138. Failed: character value in \x{} or \o{} is too large at offset 6
  139. / (?: [\040\t] | \(
  140. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  141. \) )* # optional leading comment
  142. (?: (?:
  143. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  144. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  145. |
  146. " (?: # opening quote...
  147. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  148. | # or
  149. \\ [^\x80-\xff] # Escaped something (something != CR)
  150. )* " # closing quote
  151. ) # initial word
  152. (?: (?: [\040\t] | \(
  153. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  154. \) )* \. (?: [\040\t] | \(
  155. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  156. \) )* (?:
  157. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  158. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  159. |
  160. " (?: # opening quote...
  161. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  162. | # or
  163. \\ [^\x80-\xff] # Escaped something (something != CR)
  164. )* " # closing quote
  165. ) )* # further okay, if led by a period
  166. (?: [\040\t] | \(
  167. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  168. \) )* @ (?: [\040\t] | \(
  169. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  170. \) )* (?:
  171. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  172. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  173. | \[ # [
  174. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  175. \] # ]
  176. ) # initial subdomain
  177. (?: #
  178. (?: [\040\t] | \(
  179. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  180. \) )* \. # if led by a period...
  181. (?: [\040\t] | \(
  182. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  183. \) )* (?:
  184. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  185. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  186. | \[ # [
  187. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  188. \] # ]
  189. ) # ...further okay
  190. )*
  191. # address
  192. | # or
  193. (?:
  194. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  195. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  196. |
  197. " (?: # opening quote...
  198. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  199. | # or
  200. \\ [^\x80-\xff] # Escaped something (something != CR)
  201. )* " # closing quote
  202. ) # one word, optionally followed by....
  203. (?:
  204. [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
  205. \(
  206. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  207. \) | # comments, or...
  208. " (?: # opening quote...
  209. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  210. | # or
  211. \\ [^\x80-\xff] # Escaped something (something != CR)
  212. )* " # closing quote
  213. # quoted strings
  214. )*
  215. < (?: [\040\t] | \(
  216. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  217. \) )* # leading <
  218. (?: @ (?: [\040\t] | \(
  219. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  220. \) )* (?:
  221. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  222. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  223. | \[ # [
  224. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  225. \] # ]
  226. ) # initial subdomain
  227. (?: #
  228. (?: [\040\t] | \(
  229. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  230. \) )* \. # if led by a period...
  231. (?: [\040\t] | \(
  232. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  233. \) )* (?:
  234. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  235. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  236. | \[ # [
  237. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  238. \] # ]
  239. ) # ...further okay
  240. )*
  241. (?: (?: [\040\t] | \(
  242. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  243. \) )* , (?: [\040\t] | \(
  244. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  245. \) )* @ (?: [\040\t] | \(
  246. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  247. \) )* (?:
  248. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  249. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  250. | \[ # [
  251. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  252. \] # ]
  253. ) # initial subdomain
  254. (?: #
  255. (?: [\040\t] | \(
  256. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  257. \) )* \. # if led by a period...
  258. (?: [\040\t] | \(
  259. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  260. \) )* (?:
  261. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  262. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  263. | \[ # [
  264. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  265. \] # ]
  266. ) # ...further okay
  267. )*
  268. )* # further okay, if led by comma
  269. : # closing colon
  270. (?: [\040\t] | \(
  271. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  272. \) )* )? # optional route
  273. (?:
  274. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  275. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  276. |
  277. " (?: # opening quote...
  278. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  279. | # or
  280. \\ [^\x80-\xff] # Escaped something (something != CR)
  281. )* " # closing quote
  282. ) # initial word
  283. (?: (?: [\040\t] | \(
  284. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  285. \) )* \. (?: [\040\t] | \(
  286. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  287. \) )* (?:
  288. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  289. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  290. |
  291. " (?: # opening quote...
  292. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  293. | # or
  294. \\ [^\x80-\xff] # Escaped something (something != CR)
  295. )* " # closing quote
  296. ) )* # further okay, if led by a period
  297. (?: [\040\t] | \(
  298. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  299. \) )* @ (?: [\040\t] | \(
  300. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  301. \) )* (?:
  302. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  303. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  304. | \[ # [
  305. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  306. \] # ]
  307. ) # initial subdomain
  308. (?: #
  309. (?: [\040\t] | \(
  310. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  311. \) )* \. # if led by a period...
  312. (?: [\040\t] | \(
  313. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  314. \) )* (?:
  315. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  316. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  317. | \[ # [
  318. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  319. \] # ]
  320. ) # ...further okay
  321. )*
  322. # address spec
  323. (?: [\040\t] | \(
  324. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  325. \) )* > # trailing >
  326. # name and address
  327. ) (?: [\040\t] | \(
  328. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  329. \) )* # optional trailing comment
  330. /xSI
  331. Capturing subpattern count = 0
  332. Contains explicit CR or LF match
  333. Options: extended
  334. No first char
  335. No need char
  336. Subject length lower bound = 3
  337. Starting chars: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
  338. 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
  339. f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
  340. /-- Although this saved pattern was compiled with link-size=2, it does no harm
  341. to run this test with other link sizes because it is going to generated a
  342. "compiled in wrong mode" error as soon as it is loaded, so the link size does
  343. not matter. --/
  344. <!testsaved16
  345. Compiled pattern loaded from testsaved16
  346. No study data
  347. Error -28 from pcre_fullinfo(0)
  348. Running in 8-bit mode but pattern was compiled in 16-bit mode
  349. <!testsaved32
  350. Compiled pattern loaded from testsaved32
  351. No study data
  352. Error -28 from pcre_fullinfo(0)
  353. Running in 8-bit mode but pattern was compiled in 32-bit mode
  354. /\h/SI
  355. Capturing subpattern count = 0
  356. No options
  357. No first char
  358. No need char
  359. Subject length lower bound = 1
  360. Starting chars: \x09 \x20 \xa0
  361. /\H/SI
  362. Capturing subpattern count = 0
  363. No options
  364. No first char
  365. No need char
  366. Subject length lower bound = 1
  367. No starting char list
  368. /\v/SI
  369. Capturing subpattern count = 0
  370. No options
  371. No first char
  372. No need char
  373. Subject length lower bound = 1
  374. Starting chars: \x0a \x0b \x0c \x0d \x85
  375. /\V/SI
  376. Capturing subpattern count = 0
  377. No options
  378. No first char
  379. No need char
  380. Subject length lower bound = 1
  381. No starting char list
  382. /\R/SI
  383. Capturing subpattern count = 0
  384. No options
  385. No first char
  386. No need char
  387. Subject length lower bound = 1
  388. Starting chars: \x0a \x0b \x0c \x0d \x85
  389. /[\h]/BZ
  390. ------------------------------------------------------------------
  391. Bra
  392. [\x09 \xa0]
  393. Ket
  394. End
  395. ------------------------------------------------------------------
  396. >\x09<
  397. 0: \x09
  398. /[\h]+/BZ
  399. ------------------------------------------------------------------
  400. Bra
  401. [\x09 \xa0]++
  402. Ket
  403. End
  404. ------------------------------------------------------------------
  405. >\x09\x20\xa0<
  406. 0: \x09 \xa0
  407. /[\v]/BZ
  408. ------------------------------------------------------------------
  409. Bra
  410. [\x0a-\x0d\x85]
  411. Ket
  412. End
  413. ------------------------------------------------------------------
  414. /[\H]/BZ
  415. ------------------------------------------------------------------
  416. Bra
  417. [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]
  418. Ket
  419. End
  420. ------------------------------------------------------------------
  421. /[^\h]/BZ
  422. ------------------------------------------------------------------
  423. Bra
  424. [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)
  425. Ket
  426. End
  427. ------------------------------------------------------------------
  428. /[\V]/BZ
  429. ------------------------------------------------------------------
  430. Bra
  431. [\x00-\x09\x0e-\x84\x86-\xff]
  432. Ket
  433. End
  434. ------------------------------------------------------------------
  435. /[\x0a\V]/BZ
  436. ------------------------------------------------------------------
  437. Bra
  438. [\x00-\x0a\x0e-\x84\x86-\xff]
  439. Ket
  440. End
  441. ------------------------------------------------------------------
  442. /\777/I
  443. Failed: octal value is greater than \377 in 8-bit non-UTF-8 mode at offset 3
  444. /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF)XX/K
  445. Failed: name is too long in (*MARK), (*PRUNE), (*SKIP), or (*THEN) at offset 259
  446. /(*:0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE)XX/K
  447. XX
  448. 0: XX
  449. MK: 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDE
  450. /\u0100/<JS>
  451. Failed: character value in \u.... sequence is too large at offset 5
  452. /[\u0100-\u0200]/<JS>
  453. Failed: character value in \u.... sequence is too large at offset 6
  454. /[^\x00-a]{12,}[^b-\xff]*/BZ
  455. ------------------------------------------------------------------
  456. Bra
  457. [b-\xff] (neg){12,}+
  458. [\x00-a] (neg)*+
  459. Ket
  460. End
  461. ------------------------------------------------------------------
  462. /[^\s]*\s* [^\W]+\W+ [^\d]*?\d0 [^\d\w]{4,6}?\w*A/BZ
  463. ------------------------------------------------------------------
  464. Bra
  465. [\x00-\x08\x0e-\x1f!-\xff] (neg)*+
  466. \s*
  467. [0-9A-Z_a-z]++
  468. \W+
  469. [\x00-/:-\xff] (neg)*+
  470. \d
  471. 0
  472. [\x00-/:-@[-^`{-\xff] (neg){4,6}+
  473. \w*
  474. A
  475. Ket
  476. End
  477. ------------------------------------------------------------------
  478. /(?'ABC'[bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar]([bar](*THEN:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))/
  479. /-- End of testinput14 --/