home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pyos2bin.zip / Lib / test / output / test_re < prev    next >
Text File  |  1997-07-17  |  17KB  |  416 lines

  1. test_re
  2. ('abc', 'abc', 0, 'found', 'abc')
  3. ('abc', 'xbc', 1)
  4. ('abc', 'axc', 1)
  5. ('abc', 'abx', 1)
  6. ('abc', 'xabcy', 0, 'found', 'abc')
  7. ('abc', 'ababc', 0, 'found', 'abc')
  8. ('ab*c', 'abc', 0, 'found', 'abc')
  9. ('ab*bc', 'abc', 0, 'found', 'abc')
  10. ('ab*bc', 'abbc', 0, 'found', 'abbc')
  11. ('ab*bc', 'abbbbc', 0, 'found', 'abbbbc')
  12. ('ab+bc', 'abbc', 0, 'found', 'abbc')
  13. ('ab+bc', 'abc', 1)
  14. ('ab+bc', 'abq', 1)
  15. ('ab+bc', 'abbbbc', 0, 'found', 'abbbbc')
  16. ('ab?bc', 'abbc', 0, 'found', 'abbc')
  17. ('ab?bc', 'abc', 0, 'found', 'abc')
  18. ('ab?bc', 'abbbbc', 1)
  19. ('ab?c', 'abc', 0, 'found', 'abc')
  20. ('^abc$', 'abc', 0, 'found', 'abc')
  21. ('^abc$', 'abcc', 1)
  22. ('^abc', 'abcc', 0, 'found', 'abc')
  23. ('^abc$', 'aabc', 1)
  24. ('abc$', 'aabc', 0, 'found', 'abc')
  25. ('^', 'abc', 0, 'found+"-"', '-')
  26. ('$', 'abc', 0, 'found+"-"', '-')
  27. ('a.c', 'abc', 0, 'found', 'abc')
  28. ('a.c', 'axc', 0, 'found', 'axc')
  29. ('a.*c', 'axyzc', 0, 'found', 'axyzc')
  30. ('a.*c', 'axyzd', 1)
  31. ('a[bc]d', 'abc', 1)
  32. ('a[bc]d', 'abd', 0, 'found', 'abd')
  33. ('a[b-d]e', 'abd', 1)
  34. ('a[b-d]e', 'ace', 0, 'found', 'ace')
  35. ('a[b-d]', 'aac', 0, 'found', 'ac')
  36. ('a[-b]', 'a-', 0, 'found', 'a-')
  37. ('a[\\-b]', 'a-', 0, 'found', 'a-')
  38. ('a[b-]', 'a-', 2)
  39. ('a[]b', '-', 2)
  40. ('a[', '-', 2)
  41. ('a\\', '-', 2)
  42. ('abc)', '-', 2)
  43. ('(abc', '-', 2)
  44. ('a]', 'a]', 0, 'found', 'a]')
  45. ('a[]]b', 'a]b', 0, 'found', 'a]b')
  46. ('a[\\]]b', 'a]b', 0, 'found', 'a]b')
  47. ('a[^bc]d', 'aed', 0, 'found', 'aed')
  48. ('a[^bc]d', 'abd', 1)
  49. ('a[^-b]c', 'adc', 0, 'found', 'adc')
  50. ('a[^-b]c', 'a-c', 1)
  51. ('a[^]b]c', 'a]c', 1)
  52. ('a[^]b]c', 'adc', 0, 'found', 'adc')
  53. ('\\ba\\b', 'a-', 0, '"-"', '-')
  54. ('\\ba\\b', '-a', 0, '"-"', '-')
  55. ('\\ba\\b', '-a-', 0, '"-"', '-')
  56. ('\\by\\b', 'xy', 1)
  57. ('\\by\\b', 'yz', 1)
  58. ('\\by\\b', 'xyz', 1)
  59. ('ab|cd', 'abc', 0, 'found', 'ab')
  60. ('ab|cd', 'abcd', 0, 'found', 'ab')
  61. ('()ef', 'def', 0, 'found+"-"+g1', 'ef-')
  62. ('$b', 'b', 1)
  63. ('a\\(b', 'a(b', 0, 'found+"-"+g1', 'a(b-Error')
  64. ('a\\(*b', 'ab', 0, 'found', 'ab')
  65. ('a\\(*b', 'a((b', 0, 'found', 'a((b')
  66. ('a\\\\b', 'a\\b', 0, 'found', 'a\\b')
  67. ('((a))', 'abc', 0, 'found+"-"+g1+"-"+g2', 'a-a-a')
  68. ('(a)b(c)', 'abc', 0, 'found+"-"+g1+"-"+g2', 'abc-a-c')
  69. ('a+b+c', 'aabbabc', 0, 'found', 'abc')
  70. ('(a+|b)*', 'ab', 0, 'found+"-"+g1', 'ab-b')
  71. ('(a+|b)+', 'ab', 0, 'found+"-"+g1', 'ab-b')
  72. ('(a+|b)?', 'ab', 0, 'found+"-"+g1', 'a-a')
  73. (')(', '-', 2)
  74. ('[^ab]*', 'cde', 0, 'found', 'cde')
  75. ('abc', '', 1)
  76. ('a*', '', 0, 'found', '')
  77. ('a|b|c|d|e', 'e', 0, 'found', 'e')
  78. ('(a|b|c|d|e)f', 'ef', 0, 'found+"-"+g1', 'ef-e')
  79. ('abcd*efg', 'abcdefg', 0, 'found', 'abcdefg')
  80. ('ab*', 'xabyabbbz', 0, 'found', 'ab')
  81. ('ab*', 'xayabbbz', 0, 'found', 'a')
  82. ('(ab|cd)e', 'abcde', 0, 'found+"-"+g1', 'cde-cd')
  83. ('[abhgefdc]ij', 'hij', 0, 'found', 'hij')
  84. ('^(ab|cd)e', 'abcde', 1, 'xg1y', 'xy')
  85. ('(abc|)ef', 'abcdef', 0, 'found+"-"+g1', 'ef-')
  86. ('(a|b)c*d', 'abcd', 0, 'found+"-"+g1', 'bcd-b')
  87. ('(ab|ab*)bc', 'abc', 0, 'found+"-"+g1', 'abc-a')
  88. ('a([bc]*)c*', 'abc', 0, 'found+"-"+g1', 'abc-bc')
  89. ('a([bc]*)(c*d)', 'abcd', 0, 'found+"-"+g1+"-"+g2', 'abcd-bc-d')
  90. ('a([bc]+)(c*d)', 'abcd', 0, 'found+"-"+g1+"-"+g2', 'abcd-bc-d')
  91. ('a([bc]*)(c+d)', 'abcd', 0, 'found+"-"+g1+"-"+g2', 'abcd-b-cd')
  92. ('a[bcd]*dcdcde', 'adcdcde', 0, 'found', 'adcdcde')
  93. ('a[bcd]+dcdcde', 'adcdcde', 1)
  94. ('(ab|a)b*c', 'abc', 0, 'found+"-"+g1', 'abc-ab')
  95. ('((a)(b)c)(d)', 'abcd', 0, 'g1+"-"+g2+"-"+g3+"-"+g4', 'abc-a-b-d')
  96. ('[a-zA-Z_][a-zA-Z0-9_]*', 'alpha', 0, 'found', 'alpha')
  97. ('^a(bc+|b[eh])g|.h$', 'abh', 0, 'found+"-"+g1', 'bh-None')
  98. ('(bc+d$|ef*g.|h?i(j|k))', 'effgz', 0, 'found+"-"+g1+"-"+g2', 'effgz-effgz-None')
  99. ('(bc+d$|ef*g.|h?i(j|k))', 'ij', 0, 'found+"-"+g1+"-"+g2', 'ij-ij-j')
  100. ('(bc+d$|ef*g.|h?i(j|k))', 'effg', 1)
  101. ('(bc+d$|ef*g.|h?i(j|k))', 'bcdd', 1)
  102. ('(bc+d$|ef*g.|h?i(j|k))', 'reffgz', 0, 'found+"-"+g1+"-"+g2', 'effgz-effgz-None')
  103. ('(((((((((a)))))))))', 'a', 0, 'found', 'a')
  104. ('multiple words of text', 'uh-uh', 1)
  105. ('multiple words', 'multiple words, yeah', 0, 'found', 'multiple words')
  106. ('(.*)c(.*)', 'abcde', 0, 'found+"-"+g1+"-"+g2', 'abcde-ab-de')
  107. ('\\((.*), (.*)\\)', '(a, b)', 0, 'g2+"-"+g1', 'b-a')
  108. ('[k]', 'ab', 1)
  109. ('a[-]?c', 'ac', 0, 'found', 'ac')
  110. ('(abc)\\1', 'abcabc', 0, 'g1', 'abc')
  111. ('([a-c]*)\\1', 'abcabc', 0, 'g1', 'abc')
  112. ('^(.+)?B', 'AB', 0, 'g1', 'A')
  113. ('(a+).\\1$', 'aaaaa', 0, 'found+"-"+g1', 'aaaaa-aa')
  114. ('^(a+).\\1$', 'aaaa', 1)
  115. ('(abc)\\1', 'abcabc', 0, 'found+"-"+g1', 'abcabc-abc')
  116. ('([a-c]+)\\1', 'abcabc', 0, 'found+"-"+g1', 'abcabc-abc')
  117. ('(a)\\1', 'aa', 0, 'found+"-"+g1', 'aa-a')
  118. ('(a+)\\1', 'aa', 0, 'found+"-"+g1', 'aa-a')
  119. ('(a+)+\\1', 'aa', 0, 'found+"-"+g1', 'aa-a')
  120. ('(a).+\\1', 'aba', 0, 'found+"-"+g1', 'aba-a')
  121. ('(a)ba*\\1', 'aba', 0, 'found+"-"+g1', 'aba-a')
  122. ('(aa|a)a\\1$', 'aaa', 0, 'found+"-"+g1', 'aaa-a')
  123. ('(a|aa)a\\1$', 'aaa', 0, 'found+"-"+g1', 'aaa-a')
  124. ('(a+)a\\1$', 'aaa', 0, 'found+"-"+g1', 'aaa-a')
  125. ('([abc]*)\\1', 'abcabc', 0, 'found+"-"+g1', 'abcabc-abc')
  126. ('(a)(b)c|ab', 'ab', 0, 'found+"-"+g1+"-"+g2', 'ab-None-None')
  127. ('(a)+x', 'aaax', 0, 'found+"-"+g1', 'aaax-a')
  128. ('([ac])+x', 'aacx', 0, 'found+"-"+g1', 'aacx-c')
  129. ('([^/]*/)*sub1/', 'd:msgs/tdir/sub1/trial/away.cpp', 0, 'found+"-"+g1', 'd:msgs/tdir/sub1/-tdir/')
  130. ('([^.]*)\\.([^:]*):[T ]+(.*)', 'track1.title:TBlah blah blah', 0, 'found+"-"+g1+"-"+g2+"-"+g3', 'track1.title:TBlah blah blah-track1-title-Blah blah blah')
  131. ('([^N]*N)+', 'abNNxyzN', 0, 'found+"-"+g1', 'abNNxyzN-xyzN')
  132. ('([^N]*N)+', 'abNNxyz', 0, 'found+"-"+g1', 'abNN-N')
  133. ('([abc]*)x', 'abcx', 0, 'found+"-"+g1', 'abcx-abc')
  134. ('([abc]*)x', 'abc', 1)
  135. ('([xyz]*)x', 'abcx', 0, 'found+"-"+g1', 'x-')
  136. ('(a)+b|aac', 'aac', 0, 'found+"-"+g1', 'aac-None')
  137. ('(?P<i d>aaa)a', 'aaaa', 2)
  138. ('(?P<id>aaa)a', 'aaaa', 0, 'found+"-"+id', 'aaaa-aaa')
  139. ('(?P<id>aa)(?P=id)', 'aaaa', 0, 'found+"-"+id', 'aaaa-aa')
  140. ('(?P<id>aa)(?P=xd)', 'aaaa', 2)
  141. ('\\1', 'a', 2)
  142. ('\\09', '\0009', 0, 'found', '\0009')
  143. ('\\141', 'a', 0, 'found', 'a')
  144. ('(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\119', 'abcdefghijklk9', 0, 'found+"-"+g11', 'abcdefghijklk9-k')
  145. ('abc', 'abc', 0, 'found', 'abc')
  146. ('abc', 'xbc', 1)
  147. ('abc', 'axc', 1)
  148. ('abc', 'abx', 1)
  149. ('abc', 'xabcy', 0, 'found', 'abc')
  150. ('abc', 'ababc', 0, 'found', 'abc')
  151. ('ab*c', 'abc', 0, 'found', 'abc')
  152. ('ab*bc', 'abc', 0, 'found', 'abc')
  153. ('ab*bc', 'abbc', 0, 'found', 'abbc')
  154. ('ab*bc', 'abbbbc', 0, 'found', 'abbbbc')
  155. ('ab{0,}bc', 'abbbbc', 0, 'found', 'abbbbc')
  156. ('ab+bc', 'abbc', 0, 'found', 'abbc')
  157. ('ab+bc', 'abc', 1)
  158. ('ab+bc', 'abq', 1)
  159. ('ab{1,}bc', 'abq', 1)
  160. ('ab+bc', 'abbbbc', 0, 'found', 'abbbbc')
  161. ('ab{1,}bc', 'abbbbc', 0, 'found', 'abbbbc')
  162. ('ab{1,3}bc', 'abbbbc', 0, 'found', 'abbbbc')
  163. ('ab{3,4}bc', 'abbbbc', 0, 'found', 'abbbbc')
  164. ('ab{4,5}bc', 'abbbbc', 1)
  165. ('ab?bc', 'abbc', 0, 'found', 'abbc')
  166. ('ab?bc', 'abc', 0, 'found', 'abc')
  167. ('ab{0,1}bc', 'abc', 0, 'found', 'abc')
  168. ('ab?bc', 'abbbbc', 1)
  169. ('ab?c', 'abc', 0, 'found', 'abc')
  170. ('ab{0,1}c', 'abc', 0, 'found', 'abc')
  171. ('^abc$', 'abc', 0, 'found', 'abc')
  172. ('^abc$', 'abcc', 1)
  173. ('^abc', 'abcc', 0, 'found', 'abc')
  174. ('^abc$', 'aabc', 1)
  175. ('abc$', 'aabc', 0, 'found', 'abc')
  176. ('^', 'abc', 0, 'found', '')
  177. ('$', 'abc', 0, 'found', '')
  178. ('a.c', 'abc', 0, 'found', 'abc')
  179. ('a.c', 'axc', 0, 'found', 'axc')
  180. ('a.*c', 'axyzc', 0, 'found', 'axyzc')
  181. ('a.*c', 'axyzd', 1)
  182. ('a[bc]d', 'abc', 1)
  183. ('a[bc]d', 'abd', 0, 'found', 'abd')
  184. ('a[b-d]e', 'abd', 1)
  185. ('a[b-d]e', 'ace', 0, 'found', 'ace')
  186. ('a[b-d]', 'aac', 0, 'found', 'ac')
  187. ('a[-b]', 'a-', 0, 'found', 'a-')
  188. ('a[b-]', 'a-', 0, 'found', 'a-')
  189. ('a[b-a]', '-', 2)
  190. ('a[]b', '-', 2)
  191. ('a[', '-', 2)
  192. ('a]', 'a]', 0, 'found', 'a]')
  193. ('a[]]b', 'a]b', 0, 'found', 'a]b')
  194. ('a[^bc]d', 'aed', 0, 'found', 'aed')
  195. ('a[^bc]d', 'abd', 1)
  196. ('a[^-b]c', 'adc', 0, 'found', 'adc')
  197. ('a[^-b]c', 'a-c', 1)
  198. ('a[^]b]c', 'a]c', 1)
  199. ('a[^]b]c', 'adc', 0, 'found', 'adc')
  200. ('ab|cd', 'abc', 0, 'found', 'ab')
  201. ('ab|cd', 'abcd', 0, 'found', 'ab')
  202. ('()ef', 'def', 0, 'found+"-"+g1', 'ef-')
  203. ('*a', '-', 2)
  204. ('(*)b', '-', 2)
  205. ('$b', 'b', 1)
  206. ('a\\', '-', 2)
  207. ('a\\(b', 'a(b', 0, 'found+"-"+g1', 'a(b-Error')
  208. ('a\\(*b', 'ab', 0, 'found', 'ab')
  209. ('a\\(*b', 'a((b', 0, 'found', 'a((b')
  210. ('a\\\\b', 'a\\b', 0, 'found', 'a\\b')
  211. ('abc)', '-', 2)
  212. ('(abc', '-', 2)
  213. ('((a))', 'abc', 0, 'found+"-"+g1+"-"+g2', 'a-a-a')
  214. ('(a)b(c)', 'abc', 0, 'found+"-"+g1+"-"+g2', 'abc-a-c')
  215. ('a+b+c', 'aabbabc', 0, 'found', 'abc')
  216. ('a{1,}b{1,}c', 'aabbabc', 0, 'found', 'abc')
  217. ('a**', '-', 2)
  218. ('a.+?c', 'abcabc', 0, 'found', 'abc')
  219. ('(a+|b)*', 'ab', 0, 'found+"-"+g1', 'ab-b')
  220. ('(a+|b){0,}', 'ab', 0, 'found+"-"+g1', 'ab-b')
  221. ('(a+|b)+', 'ab', 0, 'found+"-"+g1', 'ab-b')
  222. ('(a+|b){1,}', 'ab', 0, 'found+"-"+g1', 'ab-b')
  223. ('(a+|b)?', 'ab', 0, 'found+"-"+g1', 'a-a')
  224. ('(a+|b){0,1}', 'ab', 0, 'found+"-"+g1', 'a-a')
  225. (')(', '-', 2)
  226. ('[^ab]*', 'cde', 0, 'found', 'cde')
  227. ('abc', '', 1)
  228. ('a*', '', 0, 'found', '')
  229. ('([abc])*d', 'abbbcd', 0, 'found+"-"+g1', 'abbbcd-c')
  230. ('([abc])*bcd', 'abcd', 0, 'found+"-"+g1', 'abcd-a')
  231. ('a|b|c|d|e', 'e', 0, 'found', 'e')
  232. ('(a|b|c|d|e)f', 'ef', 0, 'found+"-"+g1', 'ef-e')
  233. ('abcd*efg', 'abcdefg', 0, 'found', 'abcdefg')
  234. ('ab*', 'xabyabbbz', 0, 'found', 'ab')
  235. ('ab*', 'xayabbbz', 0, 'found', 'a')
  236. ('(ab|cd)e', 'abcde', 0, 'found+"-"+g1', 'cde-cd')
  237. ('[abhgefdc]ij', 'hij', 0, 'found', 'hij')
  238. ('^(ab|cd)e', 'abcde', 1)
  239. ('(abc|)ef', 'abcdef', 0, 'found+"-"+g1', 'ef-')
  240. ('(a|b)c*d', 'abcd', 0, 'found+"-"+g1', 'bcd-b')
  241. ('(ab|ab*)bc', 'abc', 0, 'found+"-"+g1', 'abc-a')
  242. ('a([bc]*)c*', 'abc', 0, 'found+"-"+g1', 'abc-bc')
  243. ('a([bc]*)(c*d)', 'abcd', 0, 'found+"-"+g1+"-"+g2', 'abcd-bc-d')
  244. ('a([bc]+)(c*d)', 'abcd', 0, 'found+"-"+g1+"-"+g2', 'abcd-bc-d')
  245. ('a([bc]*)(c+d)', 'abcd', 0, 'found+"-"+g1+"-"+g2', 'abcd-b-cd')
  246. ('a[bcd]*dcdcde', 'adcdcde', 0, 'found', 'adcdcde')
  247. ('a[bcd]+dcdcde', 'adcdcde', 1)
  248. ('(ab|a)b*c', 'abc', 0, 'found+"-"+g1', 'abc-ab')
  249. ('((a)(b)c)(d)', 'abcd', 0, 'g1+"-"+g2+"-"+g3+"-"+g4', 'abc-a-b-d')
  250. ('[a-zA-Z_][a-zA-Z0-9_]*', 'alpha', 0, 'found', 'alpha')
  251. ('^a(bc+|b[eh])g|.h$', 'abh', 0, 'found+"-"+g1', 'bh-None')
  252. ('(bc+d$|ef*g.|h?i(j|k))', 'effgz', 0, 'found+"-"+g1+"-"+g2', 'effgz-effgz-None')
  253. ('(bc+d$|ef*g.|h?i(j|k))', 'ij', 0, 'found+"-"+g1+"-"+g2', 'ij-ij-j')
  254. ('(bc+d$|ef*g.|h?i(j|k))', 'effg', 1)
  255. ('(bc+d$|ef*g.|h?i(j|k))', 'bcdd', 1)
  256. ('(bc+d$|ef*g.|h?i(j|k))', 'reffgz', 0, 'found+"-"+g1+"-"+g2', 'effgz-effgz-None')
  257. ('((((((((((a))))))))))', 'a', 0, 'g10', 'a')
  258. ('((((((((((a))))))))))\\10', 'aa', 0, 'found', 'aa')
  259. ('((((((((((a))))))))))\\41', '', 2)
  260. ('(((((((((a)))))))))', 'a', 0, 'found', 'a')
  261. ('multiple words of text', 'uh-uh', 1)
  262. ('multiple words', 'multiple words, yeah', 0, 'found', 'multiple words')
  263. ('(.*)c(.*)', 'abcde', 0, 'found+"-"+g1+"-"+g2', 'abcde-ab-de')
  264. ('\\((.*), (.*)\\)', '(a, b)', 0, 'g2+"-"+g1', 'b-a')
  265. ('[k]', 'ab', 1)
  266. ('a[-]?c', 'ac', 0, 'found', 'ac')
  267. ('(abc)\\1', 'abcabc', 0, 'g1', 'abc')
  268. ('([a-c]*)\\1', 'abcabc', 0, 'g1', 'abc')
  269. ('(?i)abc', 'ABC', 0, 'found', 'ABC')
  270. ('(?i)abc', 'XBC', 1)
  271. ('(?i)abc', 'AXC', 1)
  272. ('(?i)abc', 'ABX', 1)
  273. ('(?i)abc', 'XABCY', 0, 'found', 'ABC')
  274. ('(?i)abc', 'ABABC', 0, 'found', 'ABC')
  275. ('(?i)ab*c', 'ABC', 0, 'found', 'ABC')
  276. ('(?i)ab*bc', 'ABC', 0, 'found', 'ABC')
  277. ('(?i)ab*bc', 'ABBC', 0, 'found', 'ABBC')
  278. ('(?i)ab*?bc', 'ABBBBC', 0, 'found', 'ABBBBC')
  279. ('(?i)ab{0,}?bc', 'ABBBBC', 0, 'found', 'ABBBBC')
  280. ('(?i)ab+?bc', 'ABBC', 0, 'found', 'ABBC')
  281. ('(?i)ab+bc', 'ABC', 1)
  282. ('(?i)ab+bc', 'ABQ', 1)
  283. ('(?i)ab{1,}bc', 'ABQ', 1)
  284. ('(?i)ab+bc', 'ABBBBC', 0, 'found', 'ABBBBC')
  285. ('(?i)ab{1,}?bc', 'ABBBBC', 0, 'found', 'ABBBBC')
  286. ('(?i)ab{1,3}?bc', 'ABBBBC', 0, 'found', 'ABBBBC')
  287. ('(?i)ab{3,4}?bc', 'ABBBBC', 0, 'found', 'ABBBBC')
  288. ('(?i)ab{4,5}?bc', 'ABBBBC', 1)
  289. ('(?i)ab??bc', 'ABBC', 0, 'found', 'ABBC')
  290. ('(?i)ab??bc', 'ABC', 0, 'found', 'ABC')
  291. ('(?i)ab{0,1}?bc', 'ABC', 0, 'found', 'ABC')
  292. ('(?i)ab??bc', 'ABBBBC', 1)
  293. ('(?i)ab??c', 'ABC', 0, 'found', 'ABC')
  294. ('(?i)ab{0,1}?c', 'ABC', 0, 'found', 'ABC')
  295. ('(?i)^abc$', 'ABC', 0, 'found', 'ABC')
  296. ('(?i)^abc$', 'ABCC', 1)
  297. ('(?i)^abc', 'ABCC', 0, 'found', 'ABC')
  298. ('(?i)^abc$', 'AABC', 1)
  299. ('(?i)abc$', 'AABC', 0, 'found', 'ABC')
  300. ('(?i)^', 'ABC', 0, 'found', '')
  301. ('(?i)$', 'ABC', 0, 'found', '')
  302. ('(?i)a.c', 'ABC', 0, 'found', 'ABC')
  303. ('(?i)a.c', 'AXC', 0, 'found', 'AXC')
  304. ('(?i)a.*?c', 'AXYZC', 0, 'found', 'AXYZC')
  305. ('(?i)a.*c', 'AXYZD', 1)
  306. ('(?i)a[bc]d', 'ABC', 1)
  307. ('(?i)a[bc]d', 'ABD', 0, 'found', 'ABD')
  308. ('(?i)a[b-d]e', 'ABD', 1)
  309. ('(?i)a[b-d]e', 'ACE', 0, 'found', 'ACE')
  310. ('(?i)a[b-d]', 'AAC', 0, 'found', 'AC')
  311. ('(?i)a[-b]', 'A-', 0, 'found', 'A-')
  312. ('(?i)a[b-]', 'A-', 0, 'found', 'A-')
  313. ('(?i)a[b-a]', '-', 2)
  314. ('(?i)a[]b', '-', 2)
  315. ('(?i)a[', '-', 2)
  316. ('(?i)a]', 'A]', 0, 'found', 'A]')
  317. ('(?i)a[]]b', 'A]B', 0, 'found', 'A]B')
  318. ('(?i)a[^bc]d', 'AED', 0, 'found', 'AED')
  319. ('(?i)a[^bc]d', 'ABD', 1)
  320. ('(?i)a[^-b]c', 'ADC', 0, 'found', 'ADC')
  321. ('(?i)a[^-b]c', 'A-C', 1)
  322. ('(?i)a[^]b]c', 'A]C', 1)
  323. ('(?i)a[^]b]c', 'ADC', 0, 'found', 'ADC')
  324. ('(?i)ab|cd', 'ABC', 0, 'found', 'AB')
  325. ('(?i)ab|cd', 'ABCD', 0, 'found', 'AB')
  326. ('(?i)()ef', 'DEF', 0, 'found+"-"+g1', 'EF-')
  327. ('(?i)*a', '-', 2)
  328. ('(?i)(*)b', '-', 2)
  329. ('(?i)$b', 'B', 1)
  330. ('(?i)a\\', '-', 2)
  331. ('(?i)a\\(b', 'A(B', 0, 'found+"-"+g1', 'A(B-Error')
  332. ('(?i)a\\(*b', 'AB', 0, 'found', 'AB')
  333. ('(?i)a\\(*b', 'A((B', 0, 'found', 'A((B')
  334. ('(?i)a\\\\b', 'A\\B', 0, 'found', 'A\\B')
  335. ('(?i)abc)', '-', 2)
  336. ('(?i)(abc', '-', 2)
  337. ('(?i)((a))', 'ABC', 0, 'found+"-"+g1+"-"+g2', 'A-A-A')
  338. ('(?i)(a)b(c)', 'ABC', 0, 'found+"-"+g1+"-"+g2', 'ABC-A-C')
  339. ('(?i)a+b+c', 'AABBABC', 0, 'found', 'ABC')
  340. ('(?i)a{1,}b{1,}c', 'AABBABC', 0, 'found', 'ABC')
  341. ('(?i)a**', '-', 2)
  342. ('(?i)a.+?c', 'ABCABC', 0, 'found', 'ABC')
  343. ('(?i)a.*?c', 'ABCABC', 0, 'found', 'ABC')
  344. ('(?i)a.{0,5}?c', 'ABCABC', 0, 'found', 'ABC')
  345. ('(?i)(a+|b)*', 'AB', 0, 'found+"-"+g1', 'AB-B')
  346. ('(?i)(a+|b){0,}', 'AB', 0, 'found+"-"+g1', 'AB-B')
  347. ('(?i)(a+|b)+', 'AB', 0, 'found+"-"+g1', 'AB-B')
  348. ('(?i)(a+|b){1,}', 'AB', 0, 'found+"-"+g1', 'AB-B')
  349. ('(?i)(a+|b)?', 'AB', 0, 'found+"-"+g1', 'A-A')
  350. ('(?i)(a+|b){0,1}', 'AB', 0, 'found+"-"+g1', 'A-A')
  351. ('(?i)(a+|b){0,1}?', 'AB', 0, 'found+"-"+g1', '-None')
  352. ('(?i))(', '-', 2)
  353. ('(?i)[^ab]*', 'CDE', 0, 'found', 'CDE')
  354. ('(?i)abc', '', 1)
  355. ('(?i)a*', '', 0, 'found', '')
  356. ('(?i)([abc])*d', 'ABBBCD', 0, 'found+"-"+g1', 'ABBBCD-C')
  357. ('(?i)([abc])*bcd', 'ABCD', 0, 'found+"-"+g1', 'ABCD-A')
  358. ('(?i)a|b|c|d|e', 'E', 0, 'found', 'E')
  359. ('(?i)(a|b|c|d|e)f', 'EF', 0, 'found+"-"+g1', 'EF-E')
  360. ('(?i)abcd*efg', 'ABCDEFG', 0, 'found', 'ABCDEFG')
  361. ('(?i)ab*', 'XABYABBBZ', 0, 'found', 'AB')
  362. ('(?i)ab*', 'XAYABBBZ', 0, 'found', 'A')
  363. ('(?i)(ab|cd)e', 'ABCDE', 0, 'found+"-"+g1', 'CDE-CD')
  364. ('(?i)[abhgefdc]ij', 'HIJ', 0, 'found', 'HIJ')
  365. ('(?i)^(ab|cd)e', 'ABCDE', 1)
  366. ('(?i)(abc|)ef', 'ABCDEF', 0, 'found+"-"+g1', 'EF-')
  367. ('(?i)(a|b)c*d', 'ABCD', 0, 'found+"-"+g1', 'BCD-B')
  368. ('(?i)(ab|ab*)bc', 'ABC', 0, 'found+"-"+g1', 'ABC-A')
  369. ('(?i)a([bc]*)c*', 'ABC', 0, 'found+"-"+g1', 'ABC-BC')
  370. ('(?i)a([bc]*)(c*d)', 'ABCD', 0, 'found+"-"+g1+"-"+g2', 'ABCD-BC-D')
  371. ('(?i)a([bc]+)(c*d)', 'ABCD', 0, 'found+"-"+g1+"-"+g2', 'ABCD-BC-D')
  372. ('(?i)a([bc]*)(c+d)', 'ABCD', 0, 'found+"-"+g1+"-"+g2', 'ABCD-B-CD')
  373. ('(?i)a[bcd]*dcdcde', 'ADCDCDE', 0, 'found', 'ADCDCDE')
  374. ('(?i)a[bcd]+dcdcde', 'ADCDCDE', 1)
  375. ('(?i)(ab|a)b*c', 'ABC', 0, 'found+"-"+g1', 'ABC-AB')
  376. ('(?i)((a)(b)c)(d)', 'ABCD', 0, 'g1+"-"+g2+"-"+g3+"-"+g4', 'ABC-A-B-D')
  377. ('(?i)[a-zA-Z_][a-zA-Z0-9_]*', 'ALPHA', 0, 'found', 'ALPHA')
  378. ('(?i)^a(bc+|b[eh])g|.h$', 'ABH', 0, 'found+"-"+g1', 'BH-None')
  379. ('(?i)(bc+d$|ef*g.|h?i(j|k))', 'EFFGZ', 0, 'found+"-"+g1+"-"+g2', 'EFFGZ-EFFGZ-None')
  380. ('(?i)(bc+d$|ef*g.|h?i(j|k))', 'IJ', 0, 'found+"-"+g1+"-"+g2', 'IJ-IJ-J')
  381. ('(?i)(bc+d$|ef*g.|h?i(j|k))', 'EFFG', 1)
  382. ('(?i)(bc+d$|ef*g.|h?i(j|k))', 'BCDD', 1)
  383. ('(?i)(bc+d$|ef*g.|h?i(j|k))', 'REFFGZ', 0, 'found+"-"+g1+"-"+g2', 'EFFGZ-EFFGZ-None')
  384. ('(?i)((((((((((a))))))))))', 'A', 0, 'g10', 'A')
  385. ('(?i)((((((((((a))))))))))\\10', 'AA', 0, 'found', 'AA')
  386. ('(?i)((((((((((a))))))))))\\41', '', 2)
  387. ('(?i)(((((((((a)))))))))', 'A', 0, 'found', 'A')
  388. ('(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))', 'A', 0, 'g1', 'A')
  389. ('(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))', 'C', 0, 'g1', 'C')
  390. ('(?i)multiple words of text', 'UH-UH', 1)
  391. ('(?i)multiple words', 'MULTIPLE WORDS, YEAH', 0, 'found', 'MULTIPLE WORDS')
  392. ('(?i)(.*)c(.*)', 'ABCDE', 0, 'found+"-"+g1+"-"+g2', 'ABCDE-AB-DE')
  393. ('(?i)\\((.*), (.*)\\)', '(A, B)', 0, 'g2+"-"+g1', 'B-A')
  394. ('(?i)[k]', 'AB', 1)
  395. ('(?i)a[-]?c', 'AC', 0, 'found', 'AC')
  396. ('(?i)(abc)\\1', 'ABCABC', 0, 'g1', 'ABC')
  397. ('(?i)([a-c]*)\\1', 'ABCABC', 0, 'g1', 'ABC')
  398. ('a(?:b|c|d)(.)', 'ace', 0, 'g1', 'e')
  399. ('a(?:b|c|d)*(.)', 'ace', 0, 'g1', 'e')
  400. ('a(?:b|c|d)+?(.)', 'ace', 0, 'g1', 'e')
  401. ('a(?:b|(c|e){1,2}?|d)+?(.)', 'ace', 0, 'g1 + g2', 'ce')
  402. ('^(.+)?B', 'AB', 0, 'g1', 'A')
  403. ('w(?# comment', 'w', 2)
  404. ('w(?# comment 1)xy(?# comment 2)z', 'wxyz', 0, 'found', 'wxyz')
  405. ('w(?i)', 'W', 2)
  406. ('(?x)w# comment 1\012        x y\012\011# comment 2\012\011z', 'wxyz', 0, 'found', 'wxyz')
  407. ('^abc', 'jkl\012abc\012xyz', 1)
  408. ('(?m)^abc', 'jkl\012abc\012xyz', 0, 'found', 'abc')
  409. ('(?m)abc$', 'jkl\012xyzabc\012123', 0, 'found', 'abc')
  410. ('a.b', 'a\012b', 1)
  411. ('(?s)a.b', 'a\012b', 0, 'found', 'a\012b')
  412. ('\\w+', '--ab_cd0123--', 0, 'found', 'ab_cd0123')
  413. ('\\D+', '1234abc5678', 0, 'found', 'abc')
  414. ('[\\da-fA-F]+', '123abc', 0, 'found', '123abc')
  415. ('[\\d-x]', '-', 2)
  416.