@port-labs/jq-node-bindings 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/binding.gyp +3 -3
  2. package/configure +8 -6
  3. package/deps/jq/.travis.yml +184 -35
  4. package/deps/jq/AUTHORS +31 -30
  5. package/deps/jq/COPYING +2 -2
  6. package/deps/jq/KEYS +8 -0
  7. package/deps/jq/Makefile.am +85 -70
  8. package/deps/jq/NEWS +5 -4
  9. package/deps/jq/README.md +18 -9
  10. package/deps/jq/appveyor.yml +53 -0
  11. package/deps/jq/compile-ios.sh +5 -5
  12. package/deps/jq/config/m4/check-math-func.m4 +7 -2
  13. package/deps/jq/configure.ac +130 -68
  14. package/deps/jq/docs/Rakefile +14 -135
  15. package/deps/jq/docs/Rakefile.manual +49 -0
  16. package/deps/jq/docs/Rakefile.website +76 -0
  17. package/deps/jq/docs/content/2.download/default.yml +115 -39
  18. package/deps/jq/docs/content/3.manual/manual.yml +641 -231
  19. package/deps/jq/docs/content/3.manual/v1.3/manual.yml +130 -130
  20. package/deps/jq/docs/content/3.manual/v1.4/manual.yml +160 -160
  21. package/deps/jq/docs/content/3.manual/v1.5/manual.yml +2878 -0
  22. package/deps/jq/docs/content/3.manual/v1.6/manual.yml +3287 -0
  23. package/deps/jq/docs/content/index/index.yml +28 -6
  24. package/deps/jq/docs/public/.htaccess +2 -2
  25. package/deps/jq/docs/public/css/base.scss +141 -59
  26. package/deps/jq/docs/public/js/manual-search.js +52 -0
  27. package/deps/jq/docs/site.yml +1 -10
  28. package/deps/jq/docs/templates/default.liquid +10 -10
  29. package/deps/jq/docs/templates/index.liquid +45 -32
  30. package/deps/jq/docs/templates/manual.liquid +67 -90
  31. package/deps/jq/docs/templates/shared/_footer.liquid +10 -5
  32. package/deps/jq/docs/templates/shared/_head.liquid +17 -12
  33. package/deps/jq/docs/templates/shared/_navbar.liquid +27 -0
  34. package/deps/jq/jq.1.prebuilt +523 -139
  35. package/deps/jq/modules/oniguruma/AUTHORS +1 -0
  36. package/deps/jq/modules/oniguruma/CMakeLists.txt +86 -0
  37. package/deps/jq/modules/oniguruma/COPYING +28 -0
  38. package/deps/jq/modules/oniguruma/ChangeLog +0 -0
  39. package/deps/jq/modules/oniguruma/HISTORY +2138 -0
  40. package/deps/jq/modules/oniguruma/Makefile.am +33 -0
  41. package/deps/jq/modules/oniguruma/NEWS +0 -0
  42. package/deps/jq/modules/oniguruma/README +189 -0
  43. package/deps/jq/modules/oniguruma/README.ja +195 -0
  44. package/deps/jq/modules/oniguruma/README.md +203 -0
  45. package/deps/jq/modules/oniguruma/cmake/dist.cmake +321 -0
  46. package/deps/jq/modules/oniguruma/compile +348 -0
  47. package/deps/jq/modules/oniguruma/config.guess +1754 -0
  48. package/deps/jq/modules/oniguruma/config.sub +1890 -0
  49. package/deps/jq/modules/oniguruma/configure.ac +87 -0
  50. package/deps/jq/modules/oniguruma/contributed/libfuzzer-onig.cpp +31 -0
  51. package/deps/jq/modules/oniguruma/depcomp +791 -0
  52. package/deps/jq/modules/oniguruma/dist.info +10 -0
  53. package/deps/jq/modules/oniguruma/doc/API +660 -0
  54. package/deps/jq/modules/oniguruma/doc/API.ja +667 -0
  55. package/deps/jq/modules/oniguruma/doc/FAQ +12 -0
  56. package/deps/jq/modules/oniguruma/doc/FAQ.ja +22 -0
  57. package/deps/jq/modules/oniguruma/doc/RE +436 -0
  58. package/deps/jq/modules/oniguruma/doc/RE.ja +448 -0
  59. package/deps/jq/modules/oniguruma/doc/UNICODE_PROPERTIES +698 -0
  60. package/deps/jq/modules/oniguruma/index.html +181 -0
  61. package/deps/jq/modules/oniguruma/index_ja.html +184 -0
  62. package/deps/jq/modules/oniguruma/install-sh +541 -0
  63. package/deps/jq/modules/oniguruma/m4/.whatever +0 -0
  64. package/deps/jq/modules/oniguruma/make_win32.bat +3 -0
  65. package/deps/jq/modules/oniguruma/make_win64.bat +3 -0
  66. package/deps/jq/modules/oniguruma/missing +215 -0
  67. package/deps/jq/modules/oniguruma/onig-config.in +78 -0
  68. package/deps/jq/modules/oniguruma/oniguruma.pc.cmake.in +13 -0
  69. package/deps/jq/modules/oniguruma/oniguruma.pc.in +14 -0
  70. package/deps/jq/modules/oniguruma/sample/CMakeLists.txt +28 -0
  71. package/deps/jq/modules/oniguruma/sample/Makefile.am +34 -0
  72. package/deps/jq/modules/oniguruma/sample/bug_fix.c +131 -0
  73. package/deps/jq/modules/oniguruma/sample/crnl.c +127 -0
  74. package/deps/jq/modules/oniguruma/sample/encode.c +308 -0
  75. package/deps/jq/modules/oniguruma/sample/listcap.c +110 -0
  76. package/deps/jq/modules/oniguruma/sample/names.c +75 -0
  77. package/deps/jq/modules/oniguruma/sample/posix.c +96 -0
  78. package/deps/jq/modules/oniguruma/sample/scan.c +88 -0
  79. package/deps/jq/modules/oniguruma/sample/simple.c +59 -0
  80. package/deps/jq/modules/oniguruma/sample/sql.c +76 -0
  81. package/deps/jq/modules/oniguruma/sample/syntax.c +76 -0
  82. package/deps/jq/modules/oniguruma/sample/user_property.c +87 -0
  83. package/deps/jq/modules/oniguruma/src/Makefile.am +58 -0
  84. package/deps/jq/modules/oniguruma/src/Makefile.windows +183 -0
  85. package/deps/jq/modules/oniguruma/src/ascii.c +61 -0
  86. package/deps/jq/modules/oniguruma/src/big5.c +190 -0
  87. package/deps/jq/modules/oniguruma/src/config.h.cmake.in +71 -0
  88. package/deps/jq/modules/oniguruma/src/config.h.win32 +84 -0
  89. package/deps/jq/modules/oniguruma/src/config.h.win64 +84 -0
  90. package/deps/jq/modules/oniguruma/src/cp1251.c +203 -0
  91. package/deps/jq/modules/oniguruma/src/euc_jp.c +310 -0
  92. package/deps/jq/modules/oniguruma/src/euc_jp_prop.c +158 -0
  93. package/deps/jq/modules/oniguruma/src/euc_jp_prop.gperf +27 -0
  94. package/deps/jq/modules/oniguruma/src/euc_kr.c +188 -0
  95. package/deps/jq/modules/oniguruma/src/euc_tw.c +171 -0
  96. package/deps/jq/modules/oniguruma/src/gb18030.c +538 -0
  97. package/deps/jq/modules/oniguruma/src/gperf_fold_key_conv.py +67 -0
  98. package/deps/jq/modules/oniguruma/src/gperf_unfold_key_conv.py +55 -0
  99. package/deps/jq/modules/oniguruma/src/iso8859_1.c +275 -0
  100. package/deps/jq/modules/oniguruma/src/iso8859_10.c +242 -0
  101. package/deps/jq/modules/oniguruma/src/iso8859_11.c +99 -0
  102. package/deps/jq/modules/oniguruma/src/iso8859_13.c +231 -0
  103. package/deps/jq/modules/oniguruma/src/iso8859_14.c +244 -0
  104. package/deps/jq/modules/oniguruma/src/iso8859_15.c +238 -0
  105. package/deps/jq/modules/oniguruma/src/iso8859_16.c +240 -0
  106. package/deps/jq/modules/oniguruma/src/iso8859_2.c +238 -0
  107. package/deps/jq/modules/oniguruma/src/iso8859_3.c +238 -0
  108. package/deps/jq/modules/oniguruma/src/iso8859_4.c +240 -0
  109. package/deps/jq/modules/oniguruma/src/iso8859_5.c +229 -0
  110. package/deps/jq/modules/oniguruma/src/iso8859_6.c +99 -0
  111. package/deps/jq/modules/oniguruma/src/iso8859_7.c +225 -0
  112. package/deps/jq/modules/oniguruma/src/iso8859_8.c +99 -0
  113. package/deps/jq/modules/oniguruma/src/iso8859_9.c +231 -0
  114. package/deps/jq/modules/oniguruma/src/koi8.c +253 -0
  115. package/deps/jq/modules/oniguruma/src/koi8_r.c +215 -0
  116. package/deps/jq/modules/oniguruma/src/make_unicode_fold.sh +22 -0
  117. package/deps/jq/modules/oniguruma/src/make_unicode_fold_data.py +306 -0
  118. package/deps/jq/modules/oniguruma/src/make_unicode_property.sh +18 -0
  119. package/deps/jq/modules/oniguruma/src/make_unicode_property_data.py +545 -0
  120. package/deps/jq/modules/oniguruma/src/mktable.c +1184 -0
  121. package/deps/jq/modules/oniguruma/src/onig_init.c +45 -0
  122. package/deps/jq/modules/oniguruma/src/oniggnu.h +85 -0
  123. package/deps/jq/modules/oniguruma/src/onigposix.h +169 -0
  124. package/deps/jq/modules/oniguruma/src/oniguruma.h +841 -0
  125. package/deps/jq/modules/oniguruma/src/regcomp.c +6300 -0
  126. package/deps/jq/modules/oniguruma/src/regenc.c +917 -0
  127. package/deps/jq/modules/oniguruma/src/regenc.h +243 -0
  128. package/deps/jq/modules/oniguruma/src/regerror.c +393 -0
  129. package/deps/jq/modules/oniguruma/src/regexec.c +3856 -0
  130. package/deps/jq/modules/oniguruma/src/regext.c +202 -0
  131. package/deps/jq/modules/oniguruma/src/reggnu.c +147 -0
  132. package/deps/jq/modules/oniguruma/src/regint.h +779 -0
  133. package/deps/jq/modules/oniguruma/src/regparse.c +5403 -0
  134. package/deps/jq/modules/oniguruma/src/regparse.h +351 -0
  135. package/deps/jq/modules/oniguruma/src/regposerr.c +105 -0
  136. package/deps/jq/modules/oniguruma/src/regposix.c +306 -0
  137. package/deps/jq/modules/oniguruma/src/regsyntax.c +315 -0
  138. package/deps/jq/modules/oniguruma/src/regtrav.c +76 -0
  139. package/deps/jq/modules/oniguruma/src/regversion.c +57 -0
  140. package/deps/jq/modules/oniguruma/src/sjis.c +341 -0
  141. package/deps/jq/modules/oniguruma/src/sjis_prop.c +158 -0
  142. package/deps/jq/modules/oniguruma/src/sjis_prop.gperf +27 -0
  143. package/deps/jq/modules/oniguruma/src/st.c +589 -0
  144. package/deps/jq/modules/oniguruma/src/st.h +68 -0
  145. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold1_key.c +2250 -0
  146. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold2_key.c +203 -0
  147. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold3_key.c +113 -0
  148. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold_data.c +1225 -0
  149. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data.c +24742 -0
  150. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data_posix.c +4846 -0
  151. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_unfold_key.c +2571 -0
  152. package/deps/jq/modules/oniguruma/src/unicode.c +664 -0
  153. package/deps/jq/modules/oniguruma/src/unicode_fold1_key.c +2548 -0
  154. package/deps/jq/modules/oniguruma/src/unicode_fold2_key.c +203 -0
  155. package/deps/jq/modules/oniguruma/src/unicode_fold3_key.c +113 -0
  156. package/deps/jq/modules/oniguruma/src/unicode_fold_data.c +1366 -0
  157. package/deps/jq/modules/oniguruma/src/unicode_property_data.c +25306 -0
  158. package/deps/jq/modules/oniguruma/src/unicode_property_data_posix.c +4940 -0
  159. package/deps/jq/modules/oniguruma/src/unicode_unfold_key.c +2854 -0
  160. package/deps/jq/modules/oniguruma/src/utf16_be.c +235 -0
  161. package/deps/jq/modules/oniguruma/src/utf16_le.c +245 -0
  162. package/deps/jq/modules/oniguruma/src/utf32_be.c +194 -0
  163. package/deps/jq/modules/oniguruma/src/utf32_le.c +194 -0
  164. package/deps/jq/modules/oniguruma/src/utf8.c +335 -0
  165. package/deps/jq/modules/oniguruma/test/Makefile.am +28 -0
  166. package/deps/jq/modules/oniguruma/test/testc.c +874 -0
  167. package/deps/jq/modules/oniguruma/test/testu.c +916 -0
  168. package/deps/jq/modules/oniguruma/test-driver +153 -0
  169. package/deps/jq/modules/oniguruma/windows/testc.c +869 -0
  170. package/deps/jq/scripts/crosscompile +2 -1
  171. package/deps/jq/scripts/gen_utf8_tables.py +2 -3
  172. package/deps/jq/scripts/update-website +29 -0
  173. package/deps/jq/scripts/version +7 -2
  174. package/deps/jq/sig/jq-release.key +41 -0
  175. package/deps/jq/sig/v1.3/jq-linux-x86.asc +17 -0
  176. package/deps/jq/sig/v1.3/jq-linux-x86_64.asc +17 -0
  177. package/deps/jq/sig/v1.3/jq-osx-x86.asc +17 -0
  178. package/deps/jq/sig/v1.3/jq-osx-x86_64.asc +17 -0
  179. package/deps/jq/sig/v1.3/jq-win32.exe.asc +17 -0
  180. package/deps/jq/sig/v1.3/jq-win64.exe.asc +17 -0
  181. package/deps/jq/sig/v1.3/sha256sum.txt +6 -0
  182. package/deps/jq/sig/v1.4/jq-linux-x86.asc +17 -0
  183. package/deps/jq/sig/v1.4/jq-linux-x86_64.asc +17 -0
  184. package/deps/jq/sig/v1.4/jq-osx-x86.asc +17 -0
  185. package/deps/jq/sig/v1.4/jq-osx-x86_64.asc +17 -0
  186. package/deps/jq/sig/v1.4/jq-solaris11-32.asc +17 -0
  187. package/deps/jq/sig/v1.4/jq-solaris11-64.asc +17 -0
  188. package/deps/jq/sig/v1.4/jq-win32.exe.asc +17 -0
  189. package/deps/jq/sig/v1.4/jq-win64.exe.asc +17 -0
  190. package/deps/jq/sig/v1.4/sha256sum.txt +8 -0
  191. package/deps/jq/sig/v1.5/jq-linux32-no-oniguruma.asc +17 -0
  192. package/deps/jq/sig/v1.5/jq-linux32.asc +17 -0
  193. package/deps/jq/sig/v1.5/jq-linux64.asc +17 -0
  194. package/deps/jq/sig/v1.5/jq-osx-amd64.asc +17 -0
  195. package/deps/jq/sig/v1.5/jq-win32.exe.asc +17 -0
  196. package/deps/jq/sig/v1.5/jq-win64.exe.asc +17 -0
  197. package/deps/jq/sig/v1.5/sha256sum.txt +5 -0
  198. package/deps/jq/sig/v1.5rc1/jq-linux-x86_64-static.asc +17 -0
  199. package/deps/jq/sig/v1.5rc1/jq-win32.exe.asc +17 -0
  200. package/deps/jq/sig/v1.5rc1/jq-win64.exe.asc +17 -0
  201. package/deps/jq/sig/v1.5rc1/sha256sum.txt +3 -0
  202. package/deps/jq/sig/v1.5rc2/jq-linux-x86.asc +17 -0
  203. package/deps/jq/sig/v1.5rc2/jq-linux-x86_64.asc +17 -0
  204. package/deps/jq/sig/v1.5rc2/jq-osx-x86_64.asc +17 -0
  205. package/deps/jq/sig/v1.5rc2/jq-win32.exe.asc +17 -0
  206. package/deps/jq/sig/v1.5rc2/jq-win64.exe.asc +17 -0
  207. package/deps/jq/sig/v1.5rc2/sha256sum.txt +5 -0
  208. package/deps/jq/sig/v1.6/jq-linux32.asc +16 -0
  209. package/deps/jq/sig/v1.6/jq-linux64.asc +16 -0
  210. package/deps/jq/sig/v1.6/jq-osx-amd64.asc +16 -0
  211. package/deps/jq/sig/v1.6/jq-win32.exe.asc +16 -0
  212. package/deps/jq/sig/v1.6/jq-win64.exe.asc +16 -0
  213. package/deps/jq/sig/v1.6/sha256sum.txt +5 -0
  214. package/deps/jq/{builtin.c → src/builtin.c} +449 -344
  215. package/deps/jq/{builtin.h → src/builtin.h} +0 -0
  216. package/deps/jq/src/builtin.jq +311 -0
  217. package/deps/jq/{bytecode.c → src/bytecode.c} +0 -0
  218. package/deps/jq/{bytecode.h → src/bytecode.h} +0 -0
  219. package/deps/jq/{compile.c → src/compile.c} +213 -37
  220. package/deps/jq/{compile.h → src/compile.h} +7 -2
  221. package/deps/jq/{exec_stack.h → src/exec_stack.h} +0 -0
  222. package/deps/jq/{execute.c → src/execute.c} +127 -24
  223. package/deps/jq/{inject_errors.c → src/inject_errors.c} +0 -0
  224. package/deps/jq/{jq.h → src/jq.h} +13 -2
  225. package/deps/jq/{jq_parser.h → src/jq_parser.h} +0 -0
  226. package/deps/jq/{jq_test.c → src/jq_test.c} +1 -1
  227. package/deps/jq/{jv.c → src/jv.c} +24 -5
  228. package/deps/jq/{jv.h → src/jv.h} +46 -11
  229. package/deps/jq/{jv_alloc.c → src/jv_alloc.c} +0 -0
  230. package/deps/jq/{jv_alloc.h → src/jv_alloc.h} +0 -0
  231. package/deps/jq/{jv_aux.c → src/jv_aux.c} +38 -14
  232. package/deps/jq/{jv_dtoa.c → src/jv_dtoa.c} +4 -5
  233. package/deps/jq/{jv_dtoa.h → src/jv_dtoa.h} +0 -0
  234. package/deps/jq/src/jv_file.c +81 -0
  235. package/deps/jq/{jv_parse.c → src/jv_parse.c} +8 -2
  236. package/deps/jq/{jv_print.c → src/jv_print.c} +80 -27
  237. package/deps/jq/{jv_unicode.c → src/jv_unicode.c} +28 -4
  238. package/deps/jq/{jv_unicode.h → src/jv_unicode.h} +1 -0
  239. package/deps/jq/{jv_utf8_tables.h → src/jv_utf8_tables.h} +0 -0
  240. package/deps/jq/{lexer.c → src/lexer.c} +317 -292
  241. package/deps/jq/{lexer.h → src/lexer.h} +16 -12
  242. package/deps/jq/{lexer.l → src/lexer.l} +5 -4
  243. package/deps/jq/src/libm.h +291 -0
  244. package/deps/jq/{linker.c → src/linker.c} +5 -3
  245. package/deps/jq/{linker.h → src/linker.h} +0 -0
  246. package/deps/jq/{locfile.c → src/locfile.c} +1 -1
  247. package/deps/jq/{locfile.h → src/locfile.h} +0 -0
  248. package/deps/jq/{main.c → src/main.c} +202 -100
  249. package/deps/jq/{opcode_list.h → src/opcode_list.h} +4 -0
  250. package/deps/jq/{parser.c → src/parser.c} +1149 -1069
  251. package/deps/jq/{parser.h → src/parser.h} +28 -24
  252. package/deps/jq/{parser.y → src/parser.y} +108 -52
  253. package/deps/jq/{util.c → src/util.c} +12 -9
  254. package/deps/jq/{util.h → src/util.h} +0 -0
  255. package/deps/jq/tests/base64.test +35 -0
  256. package/deps/jq/tests/base64test +5 -0
  257. package/deps/jq/tests/jq-f-test.sh +4 -0
  258. package/deps/jq/tests/jq.test +305 -21
  259. package/deps/jq/tests/jqtest +1 -1
  260. package/deps/jq/tests/mantest +1 -1
  261. package/deps/jq/tests/onig.test +13 -0
  262. package/deps/jq/tests/onigtest +1 -1
  263. package/deps/jq/tests/optional.test +20 -0
  264. package/deps/jq/tests/optionaltest +5 -0
  265. package/deps/jq/tests/setup +7 -1
  266. package/deps/jq/tests/shtest +133 -29
  267. package/deps/jq/tests/utf8-truncate.jq +3 -0
  268. package/deps/jq/tests/utf8test +10 -0
  269. package/lib/index.js +7 -1
  270. package/package.json +3 -3
  271. package/test/santiy.test.js +24 -0
  272. package/deps/jq/docs/default_manpage.md +0 -22
  273. package/deps/jq/docs/public/bootstrap/css/bootstrap-responsive.css +0 -1058
  274. package/deps/jq/docs/public/bootstrap/css/bootstrap-responsive.min.css +0 -9
  275. package/deps/jq/docs/public/bootstrap/css/bootstrap.css +0 -5224
  276. package/deps/jq/docs/public/bootstrap/css/bootstrap.min.css +0 -9
  277. package/deps/jq/docs/public/bootstrap/img/glyphicons-halflings-white.png +0 -0
  278. package/deps/jq/docs/public/bootstrap/img/glyphicons-halflings.png +0 -0
  279. package/deps/jq/docs/public/bootstrap/js/bootstrap.js +0 -2027
  280. package/deps/jq/docs/public/bootstrap/js/bootstrap.min.js +0 -6
  281. package/deps/jq/docs/templates/shared/_header.liquid +0 -26
  282. package/deps/jq/jq.1.default +0 -39
  283. package/deps/jq/jv_file.c +0 -49
  284. package/deps/jq/libm.h +0 -160
  285. package/deps/jq/setup.sh +0 -33
  286. package/reports/jest-port-api.xml +0 -35
@@ -0,0 +1,874 @@
1
+ /*
2
+ * This program was generated by testconv.rb.
3
+ */
4
+ #include "config.h"
5
+ #ifdef ONIG_ESCAPE_UCHAR_COLLISION
6
+ #undef ONIG_ESCAPE_UCHAR_COLLISION
7
+ #endif
8
+ #include <stdio.h>
9
+
10
+ #ifdef POSIX_TEST
11
+ #include "onigposix.h"
12
+ #else
13
+ #include "oniguruma.h"
14
+ #endif
15
+
16
+ #ifdef HAVE_STRING_H
17
+ # include <string.h>
18
+ #else
19
+ # include <strings.h>
20
+ #endif
21
+
22
+ #define SLEN(s) strlen(s)
23
+
24
+ static int nsucc = 0;
25
+ static int nfail = 0;
26
+ static int nerror = 0;
27
+
28
+ static FILE* err_file;
29
+
30
+ #ifndef POSIX_TEST
31
+ static OnigRegion* region;
32
+ #endif
33
+
34
+ static void xx(char* pattern, char* str, int from, int to, int mem, int not)
35
+ {
36
+ int r;
37
+
38
+ #ifdef POSIX_TEST
39
+ regex_t reg;
40
+ char buf[200];
41
+ regmatch_t pmatch[25];
42
+
43
+ r = regcomp(&reg, pattern, REG_EXTENDED | REG_NEWLINE);
44
+ if (r) {
45
+ regerror(r, &reg, buf, sizeof(buf));
46
+ fprintf(err_file, "ERROR: %s\n", buf);
47
+ nerror++;
48
+ return ;
49
+ }
50
+
51
+ r = regexec(&reg, str, reg.re_nsub + 1, pmatch, 0);
52
+ if (r != 0 && r != REG_NOMATCH) {
53
+ regerror(r, &reg, buf, sizeof(buf));
54
+ fprintf(err_file, "ERROR: %s\n", buf);
55
+ nerror++;
56
+ return ;
57
+ }
58
+
59
+ if (r == REG_NOMATCH) {
60
+ if (not) {
61
+ fprintf(stdout, "OK(N): /%s/ '%s'\n", pattern, str);
62
+ nsucc++;
63
+ }
64
+ else {
65
+ fprintf(stdout, "FAIL: /%s/ '%s'\n", pattern, str);
66
+ nfail++;
67
+ }
68
+ }
69
+ else {
70
+ if (not) {
71
+ fprintf(stdout, "FAIL(N): /%s/ '%s'\n", pattern, str);
72
+ nfail++;
73
+ }
74
+ else {
75
+ if (pmatch[mem].rm_so == from && pmatch[mem].rm_eo == to) {
76
+ fprintf(stdout, "OK: /%s/ '%s'\n", pattern, str);
77
+ nsucc++;
78
+ }
79
+ else {
80
+ fprintf(stdout, "FAIL: /%s/ '%s' %d-%d : %d-%d\n", pattern, str,
81
+ from, to, pmatch[mem].rm_so, pmatch[mem].rm_eo);
82
+ nfail++;
83
+ }
84
+ }
85
+ }
86
+ regfree(&reg);
87
+
88
+ #else
89
+ regex_t* reg;
90
+ OnigErrorInfo einfo;
91
+
92
+ r = onig_new(&reg, (UChar* )pattern, (UChar* )(pattern + SLEN(pattern)),
93
+ ONIG_OPTION_DEFAULT, ONIG_ENCODING_EUC_JP, ONIG_SYNTAX_DEFAULT, &einfo);
94
+ if (r) {
95
+ char s[ONIG_MAX_ERROR_MESSAGE_LEN];
96
+ onig_error_code_to_str((UChar* )s, r, &einfo);
97
+ fprintf(err_file, "ERROR: %s\n", s);
98
+ nerror++;
99
+ return ;
100
+ }
101
+
102
+ r = onig_search(reg, (UChar* )str, (UChar* )(str + SLEN(str)),
103
+ (UChar* )str, (UChar* )(str + SLEN(str)),
104
+ region, ONIG_OPTION_NONE);
105
+ if (r < ONIG_MISMATCH) {
106
+ char s[ONIG_MAX_ERROR_MESSAGE_LEN];
107
+ onig_error_code_to_str((UChar* )s, r);
108
+ fprintf(err_file, "ERROR: %s\n", s);
109
+ nerror++;
110
+ return ;
111
+ }
112
+
113
+ if (r == ONIG_MISMATCH) {
114
+ if (not) {
115
+ fprintf(stdout, "OK(N): /%s/ '%s'\n", pattern, str);
116
+ nsucc++;
117
+ }
118
+ else {
119
+ fprintf(stdout, "FAIL: /%s/ '%s'\n", pattern, str);
120
+ nfail++;
121
+ }
122
+ }
123
+ else {
124
+ if (not) {
125
+ fprintf(stdout, "FAIL(N): /%s/ '%s'\n", pattern, str);
126
+ nfail++;
127
+ }
128
+ else {
129
+ if (region->beg[mem] == from && region->end[mem] == to) {
130
+ fprintf(stdout, "OK: /%s/ '%s'\n", pattern, str);
131
+ nsucc++;
132
+ }
133
+ else {
134
+ fprintf(stdout, "FAIL: /%s/ '%s' %d-%d : %d-%d\n", pattern, str,
135
+ from, to, region->beg[mem], region->end[mem]);
136
+ nfail++;
137
+ }
138
+ }
139
+ }
140
+ onig_free(reg);
141
+ #endif
142
+ }
143
+
144
+ static void x2(char* pattern, char* str, int from, int to)
145
+ {
146
+ xx(pattern, str, from, to, 0, 0);
147
+ }
148
+
149
+ static void x3(char* pattern, char* str, int from, int to, int mem)
150
+ {
151
+ xx(pattern, str, from, to, mem, 0);
152
+ }
153
+
154
+ static void n(char* pattern, char* str)
155
+ {
156
+ xx(pattern, str, 0, 0, 0, 1);
157
+ }
158
+
159
+ extern int main(int argc, char* argv[])
160
+ {
161
+ #ifndef POSIX_TEST
162
+ static OnigEncoding use_encs[] = { ONIG_ENCODING_EUC_JP };
163
+
164
+ onig_initialize(use_encs, sizeof(use_encs)/sizeof(use_encs[0]));
165
+ #endif
166
+
167
+ err_file = stdout;
168
+
169
+ #ifdef POSIX_TEST
170
+ reg_set_encoding(REG_POSIX_ENCODING_EUC_JP);
171
+ #else
172
+ region = onig_region_new();
173
+ #endif
174
+
175
+ x2("", "", 0, 0);
176
+ x2("^", "", 0, 0);
177
+ x2("$", "", 0, 0);
178
+ x2("\\G", "", 0, 0);
179
+ x2("\\A", "", 0, 0);
180
+ x2("\\Z", "", 0, 0);
181
+ x2("\\z", "", 0, 0);
182
+ x2("^$", "", 0, 0);
183
+ x2("\\ca", "\001", 0, 1);
184
+ x2("\\C-b", "\002", 0, 1);
185
+ x2("\\c\\\\", "\034", 0, 1);
186
+ x2("q[\\c\\\\]", "q\034", 0, 2);
187
+ x2("", "a", 0, 0);
188
+ x2("a", "a", 0, 1);
189
+ x2("\\x61", "a", 0, 1);
190
+ x2("aa", "aa", 0, 2);
191
+ x2("aaa", "aaa", 0, 3);
192
+ x2("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 0, 35);
193
+ x2("ab", "ab", 0, 2);
194
+ x2("b", "ab", 1, 2);
195
+ x2("bc", "abc", 1, 3);
196
+ x2("(?i:#RET#)", "#INS##RET#", 5, 10);
197
+ x2("\\17", "\017", 0, 1);
198
+ x2("\\x1f", "\x1f", 0, 1);
199
+ x2("a(?#....\\\\JJJJ)b", "ab", 0, 2);
200
+ x2("(?x) G (o O(?-x)oO) g L", "GoOoOgLe", 0, 7);
201
+ x2(".", "a", 0, 1);
202
+ n(".", "");
203
+ x2("..", "ab", 0, 2);
204
+ x2("\\w", "e", 0, 1);
205
+ n("\\W", "e");
206
+ x2("\\s", " ", 0, 1);
207
+ x2("\\S", "b", 0, 1);
208
+ x2("\\d", "4", 0, 1);
209
+ n("\\D", "4");
210
+ x2("\\b", "z ", 0, 0);
211
+ x2("\\b", " z", 1, 1);
212
+ x2("\\B", "zz ", 1, 1);
213
+ x2("\\B", "z ", 2, 2);
214
+ x2("\\B", " z", 0, 0);
215
+ x2("[ab]", "b", 0, 1);
216
+ n("[ab]", "c");
217
+ x2("[a-z]", "t", 0, 1);
218
+ n("[^a]", "a");
219
+ x2("[^a]", "\n", 0, 1);
220
+ x2("[]]", "]", 0, 1);
221
+ n("[^]]", "]");
222
+ x2("[\\^]+", "0^^1", 1, 3);
223
+ x2("[b-]", "b", 0, 1);
224
+ x2("[b-]", "-", 0, 1);
225
+ x2("[\\w]", "z", 0, 1);
226
+ n("[\\w]", " ");
227
+ x2("[\\W]", "b$", 1, 2);
228
+ x2("[\\d]", "5", 0, 1);
229
+ n("[\\d]", "e");
230
+ x2("[\\D]", "t", 0, 1);
231
+ n("[\\D]", "3");
232
+ x2("[\\s]", " ", 0, 1);
233
+ n("[\\s]", "a");
234
+ x2("[\\S]", "b", 0, 1);
235
+ n("[\\S]", " ");
236
+ x2("[\\w\\d]", "2", 0, 1);
237
+ n("[\\w\\d]", " ");
238
+ x2("[[:upper:]]", "B", 0, 1);
239
+ x2("[*[:xdigit:]+]", "+", 0, 1);
240
+ x2("[*[:xdigit:]+]", "GHIKK-9+*", 6, 7);
241
+ x2("[*[:xdigit:]+]", "-@^+", 3, 4);
242
+ n("[[:upper]]", "A");
243
+ x2("[[:upper]]", ":", 0, 1);
244
+ x2("[\\044-\\047]", "\046", 0, 1);
245
+ x2("[\\x5a-\\x5c]", "\x5b", 0, 1);
246
+ x2("[\\x6A-\\x6D]", "\x6c", 0, 1);
247
+ n("[\\x6A-\\x6D]", "\x6E");
248
+ n("^[0-9A-F]+ 0+ UNDEF ", "75F 00000000 SECT14A notype () External | _rb_apply");
249
+ x2("[\\[]", "[", 0, 1);
250
+ x2("[\\]]", "]", 0, 1);
251
+ x2("[&]", "&", 0, 1);
252
+ x2("[[ab]]", "b", 0, 1);
253
+ x2("[[ab]c]", "c", 0, 1);
254
+ n("[[^a]]", "a");
255
+ n("[^[a]]", "a");
256
+ x2("[[ab]&&bc]", "b", 0, 1);
257
+ n("[[ab]&&bc]", "a");
258
+ n("[[ab]&&bc]", "c");
259
+ x2("[a-z&&b-y&&c-x]", "w", 0, 1);
260
+ n("[^a-z&&b-y&&c-x]", "w");
261
+ x2("[[^a&&a]&&a-z]", "b", 0, 1);
262
+ n("[[^a&&a]&&a-z]", "a");
263
+ x2("[[^a-z&&bcdef]&&[^c-g]]", "h", 0, 1);
264
+ n("[[^a-z&&bcdef]&&[^c-g]]", "c");
265
+ x2("[^[^abc]&&[^cde]]", "c", 0, 1);
266
+ x2("[^[^abc]&&[^cde]]", "e", 0, 1);
267
+ n("[^[^abc]&&[^cde]]", "f");
268
+ x2("[a-&&-a]", "-", 0, 1);
269
+ n("[a\\-&&\\-a]", "&");
270
+ n("\\wabc", " abc");
271
+ x2("a\\Wbc", "a bc", 0, 4);
272
+ x2("a.b.c", "aabbc", 0, 5);
273
+ x2(".\\wb\\W..c", "abb bcc", 0, 7);
274
+ x2("\\s\\wzzz", " zzzz", 0, 5);
275
+ x2("aa.b", "aabb", 0, 4);
276
+ n(".a", "ab");
277
+ x2(".a", "aa", 0, 2);
278
+ x2("^a", "a", 0, 1);
279
+ x2("^a$", "a", 0, 1);
280
+ x2("^\\w$", "a", 0, 1);
281
+ n("^\\w$", " ");
282
+ x2("^\\wab$", "zab", 0, 3);
283
+ x2("^\\wabcdef$", "zabcdef", 0, 7);
284
+ x2("^\\w...def$", "zabcdef", 0, 7);
285
+ x2("\\w\\w\\s\\Waaa\\d", "aa aaa4", 0, 8);
286
+ x2("\\A\\Z", "", 0, 0);
287
+ x2("\\Axyz", "xyz", 0, 3);
288
+ x2("xyz\\Z", "xyz", 0, 3);
289
+ x2("xyz\\z", "xyz", 0, 3);
290
+ x2("a\\Z", "a", 0, 1);
291
+ x2("\\Gaz", "az", 0, 2);
292
+ n("\\Gz", "bza");
293
+ n("az\\G", "az");
294
+ n("az\\A", "az");
295
+ n("a\\Az", "az");
296
+ x2("\\^\\$", "^$", 0, 2);
297
+ x2("^x?y", "xy", 0, 2);
298
+ x2("^(x?y)", "xy", 0, 2);
299
+ x2("\\w", "_", 0, 1);
300
+ n("\\W", "_");
301
+ x2("(?=z)z", "z", 0, 1);
302
+ n("(?=z).", "a");
303
+ x2("(?!z)a", "a", 0, 1);
304
+ n("(?!z)a", "z");
305
+ x2("(?i:a)", "a", 0, 1);
306
+ x2("(?i:a)", "A", 0, 1);
307
+ x2("(?i:A)", "a", 0, 1);
308
+ n("(?i:A)", "b");
309
+ x2("(?i:[A-Z])", "a", 0, 1);
310
+ x2("(?i:[f-m])", "H", 0, 1);
311
+ x2("(?i:[f-m])", "h", 0, 1);
312
+ n("(?i:[f-m])", "e");
313
+ x2("(?i:[A-c])", "D", 0, 1);
314
+ n("(?i:[^a-z])", "A");
315
+ n("(?i:[^a-z])", "a");
316
+ x2("(?i:[!-k])", "Z", 0, 1);
317
+ x2("(?i:[!-k])", "7", 0, 1);
318
+ x2("(?i:[T-}])", "b", 0, 1);
319
+ x2("(?i:[T-}])", "{", 0, 1);
320
+ x2("(?i:\\?a)", "?A", 0, 2);
321
+ x2("(?i:\\*A)", "*a", 0, 2);
322
+ n(".", "\n");
323
+ x2("(?m:.)", "\n", 0, 1);
324
+ x2("(?m:a.)", "a\n", 0, 2);
325
+ x2("(?m:.b)", "a\nb", 1, 3);
326
+ x2(".*abc", "dddabdd\nddabc", 8, 13);
327
+ x2("(?m:.*abc)", "dddabddabc", 0, 10);
328
+ n("(?i)(?-i)a", "A");
329
+ n("(?i)(?-i:a)", "A");
330
+ x2("a?", "", 0, 0);
331
+ x2("a?", "b", 0, 0);
332
+ x2("a?", "a", 0, 1);
333
+ x2("a*", "", 0, 0);
334
+ x2("a*", "a", 0, 1);
335
+ x2("a*", "aaa", 0, 3);
336
+ x2("a*", "baaaa", 0, 0);
337
+ n("a+", "");
338
+ x2("a+", "a", 0, 1);
339
+ x2("a+", "aaaa", 0, 4);
340
+ x2("a+", "aabbb", 0, 2);
341
+ x2("a+", "baaaa", 1, 5);
342
+ x2(".?", "", 0, 0);
343
+ x2(".?", "f", 0, 1);
344
+ x2(".?", "\n", 0, 0);
345
+ x2(".*", "", 0, 0);
346
+ x2(".*", "abcde", 0, 5);
347
+ x2(".+", "z", 0, 1);
348
+ x2(".+", "zdswer\n", 0, 6);
349
+ x2("(.*)a\\1f", "babfbac", 0, 4);
350
+ x2("(.*)a\\1f", "bacbabf", 3, 7);
351
+ x2("((.*)a\\2f)", "bacbabf", 3, 7);
352
+ x2("(.*)a\\1f", "baczzzzzz\nbazz\nzzzzbabf", 19, 23);
353
+ x2("a|b", "a", 0, 1);
354
+ x2("a|b", "b", 0, 1);
355
+ x2("|a", "a", 0, 0);
356
+ x2("(|a)", "a", 0, 0);
357
+ x2("ab|bc", "ab", 0, 2);
358
+ x2("ab|bc", "bc", 0, 2);
359
+ x2("z(?:ab|bc)", "zbc", 0, 3);
360
+ x2("a(?:ab|bc)c", "aabc", 0, 4);
361
+ x2("ab|(?:ac|az)", "az", 0, 2);
362
+ x2("a|b|c", "dc", 1, 2);
363
+ x2("a|b|cd|efg|h|ijk|lmn|o|pq|rstuvwx|yz", "pqr", 0, 2);
364
+ n("a|b|cd|efg|h|ijk|lmn|o|pq|rstuvwx|yz", "mn");
365
+ x2("a|^z", "ba", 1, 2);
366
+ x2("a|^z", "za", 0, 1);
367
+ x2("a|\\Gz", "bza", 2, 3);
368
+ x2("a|\\Gz", "za", 0, 1);
369
+ x2("a|\\Az", "bza", 2, 3);
370
+ x2("a|\\Az", "za", 0, 1);
371
+ x2("a|b\\Z", "ba", 1, 2);
372
+ x2("a|b\\Z", "b", 0, 1);
373
+ x2("a|b\\z", "ba", 1, 2);
374
+ x2("a|b\\z", "b", 0, 1);
375
+ x2("\\w|\\s", " ", 0, 1);
376
+ n("\\w|\\w", " ");
377
+ x2("\\w|%", "%", 0, 1);
378
+ x2("\\w|[&$]", "&", 0, 1);
379
+ x2("[b-d]|[^e-z]", "a", 0, 1);
380
+ x2("(?:a|[c-f])|bz", "dz", 0, 1);
381
+ x2("(?:a|[c-f])|bz", "bz", 0, 2);
382
+ x2("abc|(?=zz)..f", "zzf", 0, 3);
383
+ x2("abc|(?!zz)..f", "abf", 0, 3);
384
+ x2("(?=za)..a|(?=zz)..a", "zza", 0, 3);
385
+ n("(?>a|abd)c", "abdc");
386
+ x2("(?>abd|a)c", "abdc", 0, 4);
387
+ x2("a?|b", "a", 0, 1);
388
+ x2("a?|b", "b", 0, 0);
389
+ x2("a?|b", "", 0, 0);
390
+ x2("a*|b", "aa", 0, 2);
391
+ x2("a*|b*", "ba", 0, 0);
392
+ x2("a*|b*", "ab", 0, 1);
393
+ x2("a+|b*", "", 0, 0);
394
+ x2("a+|b*", "bbb", 0, 3);
395
+ x2("a+|b*", "abbb", 0, 1);
396
+ n("a+|b+", "");
397
+ x2("(a|b)?", "b", 0, 1);
398
+ x2("(a|b)*", "ba", 0, 2);
399
+ x2("(a|b)+", "bab", 0, 3);
400
+ x2("(ab|ca)+", "caabbc", 0, 4);
401
+ x2("(ab|ca)+", "aabca", 1, 5);
402
+ x2("(ab|ca)+", "abzca", 0, 2);
403
+ x2("(a|bab)+", "ababa", 0, 5);
404
+ x2("(a|bab)+", "ba", 1, 2);
405
+ x2("(a|bab)+", "baaaba", 1, 4);
406
+ x2("(?:a|b)(?:a|b)", "ab", 0, 2);
407
+ x2("(?:a*|b*)(?:a*|b*)", "aaabbb", 0, 3);
408
+ x2("(?:a*|b*)(?:a+|b+)", "aaabbb", 0, 6);
409
+ x2("(?:a+|b+){2}", "aaabbb", 0, 6);
410
+ x2("h{0,}", "hhhh", 0, 4);
411
+ x2("(?:a+|b+){1,2}", "aaabbb", 0, 6);
412
+ n("ax{2}*a", "0axxxa1");
413
+ n("a.{0,2}a", "0aXXXa0");
414
+ n("a.{0,2}?a", "0aXXXa0");
415
+ n("a.{0,2}?a", "0aXXXXa0");
416
+ x2("^a{2,}?a$", "aaa", 0, 3);
417
+ x2("^[a-z]{2,}?$", "aaa", 0, 3);
418
+ x2("(?:a+|\\Ab*)cc", "cc", 0, 2);
419
+ n("(?:a+|\\Ab*)cc", "abcc");
420
+ x2("(?:^a+|b+)*c", "aabbbabc", 6, 8);
421
+ x2("(?:^a+|b+)*c", "aabbbbc", 0, 7);
422
+ x2("a|(?i)c", "C", 0, 1);
423
+ x2("(?i)c|a", "C", 0, 1);
424
+ x2("(?i)c|a", "A", 0, 1);
425
+ x2("(?i:c)|a", "C", 0, 1);
426
+ n("(?i:c)|a", "A");
427
+ x2("[abc]?", "abc", 0, 1);
428
+ x2("[abc]*", "abc", 0, 3);
429
+ x2("[^abc]*", "abc", 0, 0);
430
+ n("[^abc]+", "abc");
431
+ x2("a?\?", "aaa", 0, 0);
432
+ x2("ba?\?b", "bab", 0, 3);
433
+ x2("a*?", "aaa", 0, 0);
434
+ x2("ba*?", "baa", 0, 1);
435
+ x2("ba*?b", "baab", 0, 4);
436
+ x2("a+?", "aaa", 0, 1);
437
+ x2("ba+?", "baa", 0, 2);
438
+ x2("ba+?b", "baab", 0, 4);
439
+ x2("(?:a?)?\?", "a", 0, 0);
440
+ x2("(?:a?\?)?", "a", 0, 0);
441
+ x2("(?:a?)+?", "aaa", 0, 1);
442
+ x2("(?:a+)?\?", "aaa", 0, 0);
443
+ x2("(?:a+)?\?b", "aaab", 0, 4);
444
+ x2("(?:ab)?{2}", "", 0, 0);
445
+ x2("(?:ab)?{2}", "ababa", 0, 4);
446
+ x2("(?:ab)*{0}", "ababa", 0, 0);
447
+ x2("(?:ab){3,}", "abababab", 0, 8);
448
+ n("(?:ab){3,}", "abab");
449
+ x2("(?:ab){2,4}", "ababab", 0, 6);
450
+ x2("(?:ab){2,4}", "ababababab", 0, 8);
451
+ x2("(?:ab){2,4}?", "ababababab", 0, 4);
452
+ x2("(?:ab){,}", "ab{,}", 0, 5);
453
+ x2("(?:abc)+?{2}", "abcabcabc", 0, 6);
454
+ x2("(?:X*)(?i:xa)", "XXXa", 0, 4);
455
+ x2("(d+)([^abc]z)", "dddz", 0, 4);
456
+ x2("([^abc]*)([^abc]z)", "dddz", 0, 4);
457
+ x2("(\\w+)(\\wz)", "dddz", 0, 4);
458
+ x3("(a)", "a", 0, 1, 1);
459
+ x3("(ab)", "ab", 0, 2, 1);
460
+ x2("((ab))", "ab", 0, 2);
461
+ x3("((ab))", "ab", 0, 2, 1);
462
+ x3("((ab))", "ab", 0, 2, 2);
463
+ x3("((((((((((((((((((((ab))))))))))))))))))))", "ab", 0, 2, 20);
464
+ x3("(ab)(cd)", "abcd", 0, 2, 1);
465
+ x3("(ab)(cd)", "abcd", 2, 4, 2);
466
+ x3("()(a)bc(def)ghijk", "abcdefghijk", 3, 6, 3);
467
+ x3("(()(a)bc(def)ghijk)", "abcdefghijk", 3, 6, 4);
468
+ x2("(^a)", "a", 0, 1);
469
+ x3("(a)|(a)", "ba", 1, 2, 1);
470
+ x3("(^a)|(a)", "ba", 1, 2, 2);
471
+ x3("(a?)", "aaa", 0, 1, 1);
472
+ x3("(a*)", "aaa", 0, 3, 1);
473
+ x3("(a*)", "", 0, 0, 1);
474
+ x3("(a+)", "aaaaaaa", 0, 7, 1);
475
+ x3("(a+|b*)", "bbbaa", 0, 3, 1);
476
+ x3("(a+|b?)", "bbbaa", 0, 1, 1);
477
+ x3("(abc)?", "abc", 0, 3, 1);
478
+ x3("(abc)*", "abc", 0, 3, 1);
479
+ x3("(abc)+", "abc", 0, 3, 1);
480
+ x3("(xyz|abc)+", "abc", 0, 3, 1);
481
+ x3("([xyz][abc]|abc)+", "abc", 0, 3, 1);
482
+ x3("((?i:abc))", "AbC", 0, 3, 1);
483
+ x2("(abc)(?i:\\1)", "abcABC", 0, 6);
484
+ x3("((?m:a.c))", "a\nc", 0, 3, 1);
485
+ x3("((?=az)a)", "azb", 0, 1, 1);
486
+ x3("abc|(.abd)", "zabd", 0, 4, 1);
487
+ x2("(?:abc)|(ABC)", "abc", 0, 3);
488
+ x3("(?i:(abc))|(zzz)", "ABC", 0, 3, 1);
489
+ x3("a*(.)", "aaaaz", 4, 5, 1);
490
+ x3("a*?(.)", "aaaaz", 0, 1, 1);
491
+ x3("a*?(c)", "aaaac", 4, 5, 1);
492
+ x3("[bcd]a*(.)", "caaaaz", 5, 6, 1);
493
+ x3("(\\Abb)cc", "bbcc", 0, 2, 1);
494
+ n("(\\Abb)cc", "zbbcc");
495
+ x3("(^bb)cc", "bbcc", 0, 2, 1);
496
+ n("(^bb)cc", "zbbcc");
497
+ x3("cc(bb$)", "ccbb", 2, 4, 1);
498
+ n("cc(bb$)", "ccbbb");
499
+ n("(\\1)", "");
500
+ n("\\1(a)", "aa");
501
+ n("(a(b)\\1)\\2+", "ababb");
502
+ n("(?:(?:\\1|z)(a))+$", "zaa");
503
+ x2("(?:(?:\\1|z)(a))+$", "zaaa", 0, 4);
504
+ x2("(a)(?=\\1)", "aa", 0, 1);
505
+ n("(a)$|\\1", "az");
506
+ x2("(a)\\1", "aa", 0, 2);
507
+ n("(a)\\1", "ab");
508
+ x2("(a?)\\1", "aa", 0, 2);
509
+ x2("(a?\?)\\1", "aa", 0, 0);
510
+ x2("(a*)\\1", "aaaaa", 0, 4);
511
+ x3("(a*)\\1", "aaaaa", 0, 2, 1);
512
+ x2("a(b*)\\1", "abbbb", 0, 5);
513
+ x2("a(b*)\\1", "ab", 0, 1);
514
+ x2("(a*)(b*)\\1\\2", "aaabbaaabb", 0, 10);
515
+ x2("(a*)(b*)\\2", "aaabbbb", 0, 7);
516
+ x2("(((((((a*)b))))))c\\7", "aaabcaaa", 0, 8);
517
+ x3("(((((((a*)b))))))c\\7", "aaabcaaa", 0, 3, 7);
518
+ x2("(a)(b)(c)\\2\\1\\3", "abcbac", 0, 6);
519
+ x2("([a-d])\\1", "cc", 0, 2);
520
+ x2("(\\w\\d\\s)\\1", "f5 f5 ", 0, 6);
521
+ n("(\\w\\d\\s)\\1", "f5 f5");
522
+ x2("(who|[a-c]{3})\\1", "whowho", 0, 6);
523
+ x2("...(who|[a-c]{3})\\1", "abcwhowho", 0, 9);
524
+ x2("(who|[a-c]{3})\\1", "cbccbc", 0, 6);
525
+ x2("(^a)\\1", "aa", 0, 2);
526
+ n("(^a)\\1", "baa");
527
+ n("(a$)\\1", "aa");
528
+ n("(ab\\Z)\\1", "ab");
529
+ x2("(a*\\Z)\\1", "a", 1, 1);
530
+ x2(".(a*\\Z)\\1", "ba", 1, 2);
531
+ x3("(.(abc)\\2)", "zabcabc", 0, 7, 1);
532
+ x3("(.(..\\d.)\\2)", "z12341234", 0, 9, 1);
533
+ x2("((?i:az))\\1", "AzAz", 0, 4);
534
+ n("((?i:az))\\1", "Azaz");
535
+ x2("(?<=a)b", "ab", 1, 2);
536
+ n("(?<=a)b", "bb");
537
+ x2("(?<=a|b)b", "bb", 1, 2);
538
+ x2("(?<=a|bc)b", "bcb", 2, 3);
539
+ x2("(?<=a|bc)b", "ab", 1, 2);
540
+ x2("(?<=a|bc||defghij|klmnopq|r)z", "rz", 1, 2);
541
+ x2("(a)\\g<1>", "aa", 0, 2);
542
+ x2("(?<!a)b", "cb", 1, 2);
543
+ n("(?<!a)b", "ab");
544
+ x2("(?<!a|bc)b", "bbb", 0, 1);
545
+ n("(?<!a|bc)z", "bcz");
546
+ x2("(?<name1>a)", "a", 0, 1);
547
+ x2("(?<name_2>ab)\\g<name_2>", "abab", 0, 4);
548
+ x2("(?<name_3>.zv.)\\k<name_3>", "azvbazvb", 0, 8);
549
+ x2("(?<=\\g<ab>)|-\\zEND (?<ab>XyZ)", "XyZ", 3, 3);
550
+ x2("(?<n>|a\\g<n>)+", "", 0, 0);
551
+ x2("(?<n>|\\(\\g<n>\\))+$", "()(())", 0, 6);
552
+ x3("\\g<n>(?<n>.){0}", "X", 0, 1, 1);
553
+ x2("\\g<n>(abc|df(?<n>.YZ){2,8}){0}", "XYZ", 0, 3);
554
+ x2("\\A(?<n>(a\\g<n>)|)\\z", "aaaa", 0, 4);
555
+ x2("(?<n>|\\g<m>\\g<n>)\\z|\\zEND (?<m>a|(b)\\g<m>)", "bbbbabba", 0, 8);
556
+ x2("(?<name1240>\\w+\\sx)a+\\k<name1240>", " fg xaaaaaaaafg x", 2, 18);
557
+ x3("(z)()()(?<_9>a)\\g<_9>", "zaa", 2, 3, 1);
558
+ x2("(.)(((?<_>a)))\\k<_>", "zaa", 0, 3);
559
+ x2("((?<name1>\\d)|(?<name2>\\w))(\\k<name1>|\\k<name2>)", "ff", 0, 2);
560
+ x2("(?:(?<x>)|(?<x>efg))\\k<x>", "", 0, 0);
561
+ x2("(?:(?<x>abc)|(?<x>efg))\\k<x>", "abcefgefg", 3, 9);
562
+ n("(?:(?<x>abc)|(?<x>efg))\\k<x>", "abcefg");
563
+ x2("(?:(?<n1>.)|(?<n1>..)|(?<n1>...)|(?<n1>....)|(?<n1>.....)|(?<n1>......)|(?<n1>.......)|(?<n1>........)|(?<n1>.........)|(?<n1>..........)|(?<n1>...........)|(?<n1>............)|(?<n1>.............)|(?<n1>..............))\\k<n1>$", "a-pyumpyum", 2, 10);
564
+ x3("(?:(?<n1>.)|(?<n1>..)|(?<n1>...)|(?<n1>....)|(?<n1>.....)|(?<n1>......)|(?<n1>.......)|(?<n1>........)|(?<n1>.........)|(?<n1>..........)|(?<n1>...........)|(?<n1>............)|(?<n1>.............)|(?<n1>..............))\\k<n1>$", "xxxxabcdefghijklmnabcdefghijklmn", 4, 18, 14);
565
+ x3("(?<name1>)(?<name2>)(?<name3>)(?<name4>)(?<name5>)(?<name6>)(?<name7>)(?<name8>)(?<name9>)(?<name10>)(?<name11>)(?<name12>)(?<name13>)(?<name14>)(?<name15>)(?<name16>aaa)(?<name17>)$", "aaa", 0, 3, 16);
566
+ x2("(?<foo>a|\\(\\g<foo>\\))", "a", 0, 1);
567
+ x2("(?<foo>a|\\(\\g<foo>\\))", "((((((a))))))", 0, 13);
568
+ x3("(?<foo>a|\\(\\g<foo>\\))", "((((((((a))))))))", 0, 17, 1);
569
+ x2("\\g<bar>|\\zEND(?<bar>.*abc$)", "abcxxxabc", 0, 9);
570
+ x2("\\g<1>|\\zEND(.a.)", "bac", 0, 3);
571
+ x3("\\g<_A>\\g<_A>|\\zEND(.a.)(?<_A>.b.)", "xbxyby", 3, 6, 1);
572
+ x2("\\A(?:\\g<pon>|\\g<pan>|\\zEND (?<pan>a|c\\g<pon>c)(?<pon>b|d\\g<pan>d))$", "cdcbcdc", 0, 7);
573
+ x2("\\A(?<n>|a\\g<m>)\\z|\\zEND (?<m>\\g<n>)", "aaaa", 0, 4);
574
+ x2("(?<n>(a|b\\g<n>c){3,5})", "baaaaca", 1, 5);
575
+ x2("(?<n>(a|b\\g<n>c){3,5})", "baaaacaaaaa", 0, 10);
576
+ x2("(?<pare>\\(([^\\(\\)]++|\\g<pare>)*+\\))", "((a))", 0, 5);
577
+ x2("()*\\1", "", 0, 0);
578
+ x2("(?:()|())*\\1\\2", "", 0, 0);
579
+ x3("(?:\\1a|())*", "a", 0, 0, 1);
580
+ x2("x((.)*)*x", "0x1x2x3", 1, 6);
581
+ x2("x((.)*)*x(?i:\\1)\\Z", "0x1x2x1X2", 1, 9);
582
+ x2("(?:()|()|()|()|()|())*\\2\\5", "", 0, 0);
583
+ x2("(?:()|()|()|(x)|()|())*\\2b\\5", "b", 0, 1);
584
+ x2("\\xED\\xF2", "\xed\xf2", 0, 2);
585
+ x2("", "��", 0, 0);
586
+ x2("��", "��", 0, 2);
587
+ n("��", "��");
588
+ x2("����", "����", 0, 4);
589
+ x2("������", "������", 0, 6);
590
+ x2("����������������������������������������������������������������������", "����������������������������������������������������������������������", 0, 70);
591
+ x2("��", "����", 2, 4);
592
+ x2("����", "������", 2, 6);
593
+ x2("\\xca\\xb8", "\xca\xb8", 0, 2);
594
+ x2(".", "��", 0, 2);
595
+ x2("..", "����", 0, 4);
596
+ x2("\\w", "��", 0, 2);
597
+ n("\\W", "��");
598
+ x2("[\\W]", "��$", 2, 3);
599
+ x2("\\S", "��", 0, 2);
600
+ x2("\\S", "��", 0, 2);
601
+ x2("\\b", "�� ", 0, 0);
602
+ x2("\\b", " ��", 1, 1);
603
+ x2("\\B", "���� ", 2, 2);
604
+ x2("\\B", "�� ", 3, 3);
605
+ x2("\\B", " ��", 0, 0);
606
+ x2("[����]", "��", 0, 2);
607
+ n("[�ʤ�]", "��");
608
+ x2("[��-��]", "��", 0, 2);
609
+ n("[^��]", "��");
610
+ x2("[\\w]", "��", 0, 2);
611
+ n("[\\d]", "��");
612
+ x2("[\\D]", "��", 0, 2);
613
+ n("[\\s]", "��");
614
+ x2("[\\S]", "��", 0, 2);
615
+ x2("[\\w\\d]", "��", 0, 2);
616
+ x2("[\\w\\d]", " ��", 3, 5);
617
+ n("\\w����", " ����");
618
+ x2("��\\W��", "�� ��", 0, 5);
619
+ x2("��.��.��", "����������", 0, 10);
620
+ x2(".\\w��\\W..��", "������ ������", 0, 13);
621
+ x2("\\s\\w������", " ��������", 0, 9);
622
+ x2("����.��", "��������", 0, 8);
623
+ n(".��", "����");
624
+ x2(".��", "����", 0, 4);
625
+ x2("^��", "��", 0, 2);
626
+ x2("^��$", "��", 0, 2);
627
+ x2("^\\w$", "��", 0, 2);
628
+ x2("^\\w����������$", "z����������", 0, 11);
629
+ x2("^\\w...������$", "z������������", 0, 13);
630
+ x2("\\w\\w\\s\\W������\\d", "a�� ������4", 0, 12);
631
+ x2("\\A������", "������", 0, 6);
632
+ x2("����\\Z", "����", 0, 6);
633
+ x2("������\\z", "������", 0, 6);
634
+ x2("������\\Z", "������\n", 0, 6);
635
+ x2("\\G�ݤ�", "�ݤ�", 0, 4);
636
+ n("\\G��", "������");
637
+ n("�Ȥ�\\G", "�Ȥ�");
638
+ n("�ޤ�\\A", "�ޤ�");
639
+ n("��\\A��", "�ޤ�");
640
+ x2("(?=��)��", "��", 0, 2);
641
+ n("(?=��).", "��");
642
+ x2("(?!��)��", "��", 0, 2);
643
+ n("(?!��)��", "��");
644
+ x2("(?i:��)", "��", 0, 2);
645
+ x2("(?i:�֤�)", "�֤�", 0, 4);
646
+ n("(?i:��)", "��");
647
+ x2("(?m:��.)", "��\n", 0, 3);
648
+ x2("(?m:.��)", "��\n��", 2, 5);
649
+ x2("��?", "", 0, 0);
650
+ x2("��?", "��", 0, 0);
651
+ x2("��?", "��", 0, 2);
652
+ x2("��*", "", 0, 0);
653
+ x2("��*", "��", 0, 2);
654
+ x2("��*", "�һһ�", 0, 6);
655
+ x2("��*", "����������", 0, 0);
656
+ n("��+", "");
657
+ x2("��+", "��", 0, 2);
658
+ x2("��+", "��������", 0, 8);
659
+ x2("��+", "����������", 0, 4);
660
+ x2("��+", "����������", 2, 10);
661
+ x2(".?", "��", 0, 2);
662
+ x2(".*", "�ѤԤפ�", 0, 8);
663
+ x2(".+", "��", 0, 2);
664
+ x2(".+", "��������\n", 0, 8);
665
+ x2("��|��", "��", 0, 2);
666
+ x2("��|��", "��", 0, 2);
667
+ x2("����|����", "����", 0, 4);
668
+ x2("����|����", "����", 0, 4);
669
+ x2("��(?:����|����)", "�򤫤�", 0, 6);
670
+ x2("��(?:����|����)��", "�򤭤���", 0, 8);
671
+ x2("����|(?:����|����)", "����", 0, 4);
672
+ x2("��|��|��", "����", 2, 4);
673
+ x2("��|��|����|������|��|������|������|��|����|�ĤƤȤʤ�|�̤�", "������", 0, 6);
674
+ n("��|��|����|������|��|������|������|��|����|�ĤƤȤʤ�|�̤�", "����");
675
+ x2("��|^��", "�֤�", 2, 4);
676
+ x2("��|^��", "��", 0, 2);
677
+ x2("��|\\G��", "���ֵ�", 4, 6);
678
+ x2("��|\\G��", "�ֵ�", 0, 2);
679
+ x2("��|\\A��", "b�ֵ�", 3, 5);
680
+ x2("��|\\A��", "��", 0, 2);
681
+ x2("��|��\\Z", "�ֵ�", 2, 4);
682
+ x2("��|��\\Z", "��", 0, 2);
683
+ x2("��|��\\Z", "��\n", 0, 2);
684
+ x2("��|��\\z", "�ֵ�", 2, 4);
685
+ x2("��|��\\z", "��", 0, 2);
686
+ x2("\\w|\\s", "��", 0, 2);
687
+ x2("\\w|%", "%��", 0, 1);
688
+ x2("\\w|[&$]", "��&", 0, 2);
689
+ x2("[��-��]", "��", 0, 2);
690
+ x2("[��-��]|[^��-��]", "��", 0, 2);
691
+ x2("[��-��]|[^��-��]", "��", 0, 2);
692
+ x2("[^��]", "\n", 0, 1);
693
+ x2("(?:��|[��-��])|����", "����", 0, 2);
694
+ x2("(?:��|[��-��])|����", "����", 0, 4);
695
+ x2("������|(?=����)..��", "������", 0, 6);
696
+ x2("������|(?!����)..��", "������", 0, 6);
697
+ x2("(?=��)..��|(?=���)..��", "���", 0, 6);
698
+ x2("(?<=��|����)��", "������", 4, 6);
699
+ n("(?>��|������)��", "��������");
700
+ x2("(?>������|��)��", "��������", 0, 8);
701
+ x2("��?|��", "��", 0, 2);
702
+ x2("��?|��", "��", 0, 0);
703
+ x2("��?|��", "", 0, 0);
704
+ x2("��*|��", "����", 0, 4);
705
+ x2("��*|��*", "����", 0, 0);
706
+ x2("��*|��*", "����", 0, 2);
707
+ x2("[a��]*|��*", "a��������", 0, 3);
708
+ x2("��+|��*", "", 0, 0);
709
+ x2("��+|��*", "������", 0, 6);
710
+ x2("��+|��*", "��������", 0, 2);
711
+ x2("��+|��*", "a��������", 0, 0);
712
+ n("��+|��+", "");
713
+ x2("(��|��)?", "��", 0, 2);
714
+ x2("(��|��)*", "����", 0, 4);
715
+ x2("(��|��)+", "������", 0, 6);
716
+ x2("(����|����)+", "������������", 0, 8);
717
+ x2("(����|����)+", "������������", 4, 12);
718
+ x2("(����|����)+", "����������", 2, 10);
719
+ x2("(����|����)+", "�����򤦤�", 0, 4);
720
+ x2("(����|����)+", "$$zzzz�����򤦤�", 6, 10);
721
+ x2("(��|������)+", "����������", 0, 10);
722
+ x2("(��|������)+", "����", 2, 4);
723
+ x2("(��|������)+", "������������", 2, 8);
724
+ x2("(?:��|��)(?:��|��)", "����", 0, 4);
725
+ x2("(?:��*|��*)(?:��*|��*)", "������������", 0, 6);
726
+ x2("(?:��*|��*)(?:��+|��+)", "������������", 0, 12);
727
+ x2("(?:��+|��+){2}", "������������", 0, 12);
728
+ x2("(?:��+|��+){1,2}", "������������", 0, 12);
729
+ x2("(?:��+|\\A��*)����", "����", 0, 4);
730
+ n("(?:��+|\\A��*)����", "��������");
731
+ x2("(?:^��+|��+)*��", "����������������", 12, 16);
732
+ x2("(?:^��+|��+)*��", "��������������", 0, 14);
733
+ x2("��{0,}", "��������", 0, 8);
734
+ x2("��|(?i)c", "C", 0, 1);
735
+ x2("(?i)c|��", "C", 0, 1);
736
+ x2("(?i:��)|a", "a", 0, 1);
737
+ n("(?i:��)|a", "A");
738
+ x2("[������]?", "������", 0, 2);
739
+ x2("[������]*", "������", 0, 6);
740
+ x2("[^������]*", "������", 0, 0);
741
+ n("[^������]+", "������");
742
+ x2("��?\?", "������", 0, 0);
743
+ x2("����?\?��", "������", 0, 6);
744
+ x2("��*?", "������", 0, 0);
745
+ x2("����*?", "������", 0, 2);
746
+ x2("����*?��", "��������", 0, 8);
747
+ x2("��+?", "������", 0, 2);
748
+ x2("����+?", "������", 0, 4);
749
+ x2("����+?��", "��������", 0, 8);
750
+ x2("(?:ŷ?)?\?", "ŷ", 0, 0);
751
+ x2("(?:ŷ?\?)?", "ŷ", 0, 0);
752
+ x2("(?:̴?)+?", "̴̴̴", 0, 2);
753
+ x2("(?:��+)?\?", "������", 0, 0);
754
+ x2("(?:��+)?\?��", "��������", 0, 8);
755
+ x2("(?:����)?{2}", "", 0, 0);
756
+ x2("(?:����)?{2}", "���ֵ��ֵ�", 0, 8);
757
+ x2("(?:����)*{0}", "���ֵ��ֵ�", 0, 0);
758
+ x2("(?:����){3,}", "���ֵ��ֵ��ֵ���", 0, 16);
759
+ n("(?:����){3,}", "���ֵ���");
760
+ x2("(?:����){2,4}", "���ֵ��ֵ���", 0, 12);
761
+ x2("(?:����){2,4}", "���ֵ��ֵ��ֵ��ֵ���", 0, 16);
762
+ x2("(?:����){2,4}?", "���ֵ��ֵ��ֵ��ֵ���", 0, 8);
763
+ x2("(?:����){,}", "����{,}", 0, 7);
764
+ x2("(?:������)+?{2}", "������������������", 0, 12);
765
+ x3("(��)", "��", 0, 2, 1);
766
+ x3("(�п�)", "�п�", 0, 4, 1);
767
+ x2("((����))", "����", 0, 4);
768
+ x3("((����))", "����", 0, 4, 1);
769
+ x3("((����))", "����", 0, 4, 2);
770
+ x3("((((((((((((((((((((�̻�))))))))))))))))))))", "�̻�", 0, 4, 20);
771
+ x3("(����)(����)", "��������", 0, 4, 1);
772
+ x3("(����)(����)", "��������", 4, 8, 2);
773
+ x3("()(��)����(������)��������", "��������������������", 6, 12, 3);
774
+ x3("(()(��)����(������)��������)", "��������������������", 6, 12, 4);
775
+ x3(".*(�ե�)�󡦥�(��()���奿)����", "�ե��󡦥ޥ󥷥奿����", 10, 18, 2);
776
+ x2("(^��)", "��", 0, 2);
777
+ x3("(��)|(��)", "����", 2, 4, 1);
778
+ x3("(^��)|(��)", "����", 2, 4, 2);
779
+ x3("(��?)", "������", 0, 2, 1);
780
+ x3("(��*)", "�ޤޤ�", 0, 6, 1);
781
+ x3("(��*)", "", 0, 0, 1);
782
+ x3("(��+)", "��������", 0, 14, 1);
783
+ x3("(��+|��*)", "�դդդؤ�", 0, 6, 1);
784
+ x3("(��+|��?)", "����������", 0, 2, 1);
785
+ x3("(������)?", "������", 0, 6, 1);
786
+ x3("(������)*", "������", 0, 6, 1);
787
+ x3("(������)+", "������", 0, 6, 1);
788
+ x3("(������|������)+", "������", 0, 6, 1);
789
+ x3("([�ʤˤ�][������]|������)+", "������", 0, 6, 1);
790
+ x3("((?i:������))", "������", 0, 6, 1);
791
+ x3("((?m:��.��))", "��\n��", 0, 5, 1);
792
+ x3("((?=����)��)", "����", 0, 2, 1);
793
+ x3("������|(.������)", "�󤢤���", 0, 8, 1);
794
+ x3("��*(.)", "����������", 8, 10, 1);
795
+ x3("��*?(.)", "����������", 0, 2, 1);
796
+ x3("��*?(��)", "����������", 8, 10, 1);
797
+ x3("[������]��*(.)", "������������", 10, 12, 1);
798
+ x3("(\\A����)����", "��������", 0, 4, 1);
799
+ n("(\\A����)����", "�󤤤�����");
800
+ x3("(^����)����", "��������", 0, 4, 1);
801
+ n("(^����)����", "�󤤤�����");
802
+ x3("����(���$)", "�������", 4, 8, 1);
803
+ n("����(���$)", "��������");
804
+ x2("(̵)\\1", "̵̵", 0, 4);
805
+ n("(̵)\\1", "̵��");
806
+ x2("(��?)\\1", "����", 0, 4);
807
+ x2("(��?\?)\\1", "����", 0, 0);
808
+ x2("(��*)\\1", "����������", 0, 8);
809
+ x3("(��*)\\1", "����������", 0, 4, 1);
810
+ x2("��(��*)\\1", "����������", 0, 10);
811
+ x2("��(��*)\\1", "����", 0, 2);
812
+ x2("(��*)(��*)\\1\\2", "��������������������", 0, 20);
813
+ x2("(��*)(��*)\\2", "��������������", 0, 14);
814
+ x3("(��*)(��*)\\2", "��������������", 6, 10, 2);
815
+ x2("(((((((��*)��))))))��\\7", "�ݤݤݤڤԤݤݤ�", 0, 16);
816
+ x3("(((((((��*)��))))))��\\7", "�ݤݤݤڤԤݤݤ�", 0, 6, 7);
817
+ x2("(��)(��)(��)\\2\\1\\3", "�ϤҤդҤϤ�", 0, 12);
818
+ x2("([��-��])\\1", "����", 0, 4);
819
+ x2("(\\w\\d\\s)\\1", "��5 ��5 ", 0, 8);
820
+ n("(\\w\\d\\s)\\1", "��5 ��5");
821
+ x2("(�|[��-��]{3})\\1", "��", 0, 8);
822
+ x2("...(�|[��-��]{3})\\1", "��a����", 0, 13);
823
+ x2("(�|[��-��]{3})\\1", "������������", 0, 12);
824
+ x2("(^��)\\1", "����", 0, 4);
825
+ n("(^��)\\1", "����");
826
+ n("(��$)\\1", "����");
827
+ n("(����\\Z)\\1", "����");
828
+ x2("(��*\\Z)\\1", "��", 2, 2);
829
+ x2(".(��*\\Z)\\1", "����", 2, 4);
830
+ x3("(.(�䤤��)\\2)", "z�䤤��䤤��", 0, 13, 1);
831
+ x3("(.(..\\d.)\\2)", "��12341234", 0, 10, 1);
832
+ x2("((?i:��v��))\\1", "��v����v��", 0, 10);
833
+ x2("(?<��>��|\\(\\g<��>\\))", "((((((��))))))", 0, 14);
834
+ x2("\\A(?:\\g<��_1>|\\g<��_2>|\\z��λ (?<��_1>��|��\\g<��_2>��)(?<��_2>��|�\\g<��_1>�))$", "�������߼�����", 0, 26);
835
+ x2("[[�Ҥ�]]", "��", 0, 2);
836
+ x2("[[������]��]", "��", 0, 2);
837
+ n("[[^��]]", "��");
838
+ n("[^[��]]", "��");
839
+ x2("[^[^��]]", "��", 0, 2);
840
+ x2("[[������]&&����]", "��", 0, 2);
841
+ n("[[������]&&����]", "��");
842
+ n("[[������]&&����]", "��");
843
+ x2("[��-��&&��-��&&��-��]", "��", 0, 2);
844
+ n("[^��-��&&��-��&&��-��]", "��");
845
+ x2("[[^��&&��]&&��-��]", "��", 0, 2);
846
+ n("[[^��&&��]&&��-��]", "��");
847
+ x2("[[^��-��&&��������]&&[^��-��]]", "��", 0, 2);
848
+ n("[[^��-��&&��������]&&[^��-��]]", "��");
849
+ x2("[^[^������]&&[^������]]", "��", 0, 2);
850
+ x2("[^[^������]&&[^������]]", "��", 0, 2);
851
+ n("[^[^������]&&[^������]]", "��");
852
+ x2("[��-&&-��]", "-", 0, 1);
853
+ x2("[^[^a-z������]&&[^bcdefg������]q-w]", "��", 0, 2);
854
+ x2("[^[^a-z������]&&[^bcdefg������]g-w]", "f", 0, 1);
855
+ x2("[^[^a-z������]&&[^bcdefg������]g-w]", "g", 0, 1);
856
+ n("[^[^a-z������]&&[^bcdefg������]g-w]", "2");
857
+ x2("a<b>�С������Υ����������<\\/b>", "a<b>�С������Υ����������</b>", 0, 32);
858
+ x2(".<b>�С������Υ����������<\\/b>", "a<b>�С������Υ����������</b>", 0, 32);
859
+ #ifndef POSIX_TEST
860
+ x2("\\p{Hiragana}", "��", 0, 2);
861
+ n("\\P{Hiragana}", "��");
862
+ #endif
863
+
864
+ fprintf(stdout,
865
+ "\nRESULT SUCC: %d, FAIL: %d, ERROR: %d (by Oniguruma %s)\n",
866
+ nsucc, nfail, nerror, onig_version());
867
+
868
+ #ifndef POSIX_TEST
869
+ onig_region_free(region, 1);
870
+ onig_end();
871
+ #endif
872
+
873
+ return ((nfail == 0 && nerror == 0) ? 0 : -1);
874
+ }