[jruby-joni] 24/194: rejigger tests
Hideki Yamane
henrich at moszumanska.debian.org
Thu Feb 1 12:04:10 UTC 2018
This is an automated email from the git hooks/post-receive script.
henrich pushed a commit to branch debian/sid
in repository jruby-joni.
commit 95e5ebd622cc194b5a51cc3852a9fc42669070db
Author: Marcin Mielzynski <lopx at gazeta.pl>
Date: Sat Dec 23 19:11:19 2017 +0100
rejigger tests
---
pom.xml | 11 +-
test/org/joni/test/Test.java | 19 +-
test/org/joni/test/TestA.java | 1076 ++++++++++-----------
test/org/joni/test/TestAU.java | 52 -
test/org/joni/test/TestC.java | 1470 ++++++++++++++--------------
test/org/joni/test/TestCornerCases.java | 16 +-
test/org/joni/test/TestCrnl.java | 18 +-
test/org/joni/test/TestInterrupt.java | 10 +-
test/org/joni/test/TestJoni.java | 84 --
test/org/joni/test/TestLookBehind.java | 54 --
test/org/joni/test/TestNSU8.java | 128 ++-
test/org/joni/test/TestPerl.java | 18 +-
test/org/joni/test/TestU.java | 1600 +++++++++++++++----------------
test/org/joni/test/TestU8.java | 20 +-
14 files changed, 2185 insertions(+), 2391 deletions(-)
diff --git a/pom.xml b/pom.xml
index fb42c50..403312a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,7 +71,7 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>3.8.1</version>
+ <version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
@@ -104,12 +104,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
- <version>2.4.3</version>
- <configuration>
- <includes>
- <include>**/TestJoni.java</include>
- </includes>
- </configuration>
+ <version>2.20.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
@@ -137,7 +132,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
- <version>2.8.1</version>
+ <version>2.9</version>
<configuration>
<show>private</show>
<nohelp>true</nohelp>
diff --git a/test/org/joni/test/Test.java b/test/org/joni/test/Test.java
index b343f20..3f66337 100644
--- a/test/org/joni/test/Test.java
+++ b/test/org/joni/test/Test.java
@@ -19,15 +19,17 @@
*/
package org.joni.test;
+import static org.junit.Assert.assertEquals;
+
import java.io.UnsupportedEncodingException;
+import org.jcodings.Encoding;
import org.joni.Config;
import org.joni.Matcher;
import org.joni.Option;
import org.joni.Regex;
import org.joni.Region;
import org.joni.Syntax;
-import org.jcodings.Encoding;
import org.joni.exception.JOniException;
public abstract class Test {
@@ -127,7 +129,6 @@ public abstract class Test {
}
}
}
-
return r;
}
@@ -292,17 +293,9 @@ public abstract class Test {
}
}
- public void printResults() {
+ @org.junit.Test
+ public void test() throws Exception {
Config.log.println("RESULT SUCC: " + nsucc + ", FAIL: " + nfail + ", ERROR: " + nerror + " Test: " + getClass().getSimpleName() + ", Encoding: " + encoding());
+ assertEquals(0, nfail + nerror);
}
-
- public abstract void test() throws InterruptedException;
-
- public final void run() {
- try {
- test();
- } catch (InterruptedException ie) { }
- printResults();
- }
-
}
diff --git a/test/org/joni/test/TestA.java b/test/org/joni/test/TestA.java
index de5e3b5..383062a 100644
--- a/test/org/joni/test/TestA.java
+++ b/test/org/joni/test/TestA.java
@@ -1,536 +1,540 @@
-/*
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is furnished to do
- * so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-package org.joni.test;
-
-import org.joni.Option;
-import org.joni.Syntax;
-import org.jcodings.Encoding;
-import org.jcodings.specific.ASCIIEncoding;
-
-public class TestA extends Test {
-
- public int option() {
- return Option.DEFAULT;
- }
-
- public Encoding encoding() {
- return ASCIIEncoding.INSTANCE;
- }
-
- public String testEncoding() {
- return "iso-8859-2";
- }
-
- public Syntax syntax() {
- return Syntax.DEFAULT;
- }
-
- public void test() throws InterruptedException {
- x2s("", "", 0, 0);
- x2s("^", "", 0, 0);
- x2s("$", "", 0, 0);
- x2s("\\G", "", 0, 0);
- x2s("\\A", "", 0, 0);
- x2s("\\Z", "", 0, 0);
- x2s("\\z", "", 0, 0);
- x2s("^$", "", 0, 0);
- x2s("\\ca", "\001", 0, 1);
- x2s("\\C-b", "\002", 0, 1);
- x2s("\\c\\\\", "\034", 0, 1);
- x2s("q[\\c\\\\]", "q\034", 0, 2);
- x2s("", "a", 0, 0);
- x2s("a", "a", 0, 1);
- x2s("\\x61", "a", 0, 1);
- x2s("aa", "aa", 0, 2);
- x2s("aaa", "aaa", 0, 3);
- x2s("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 0, 35);
- x2s("ab", "ab", 0, 2);
- x2s("b", "ab", 1, 2);
- x2s("bc", "abc", 1, 3);
- x2s("(?i:#RET#)", "#INS##RET#", 5, 10);
- x2s("\\17", "\017", 0, 1);
- x2s("\\x1f", "\u001f", 0, 1);
- x2s("\\xED\\xF2", "\u00ed\u0148", 0, 2);
- x2s("a(?#....\\\\JJJJ)b", "ab", 0, 2);
- x2s("(?x) G (o O(?-x)oO) g L", "GoOoOgLe", 0, 7);
- x2s(".", "a", 0, 1);
- ns(".", "");
- x2s("..", "ab", 0, 2);
- x2s("\\w", "e", 0, 1);
- ns("\\W", "e");
- x2s("\\s", " ", 0, 1);
- x2s("\\S", "b", 0, 1);
- x2s("\\d", "4", 0, 1);
- ns("\\D", "4");
- x2s("\\b", "z ", 0, 0);
- x2s("\\b", " z", 1, 1);
- x2s("\\B", "zz ", 1, 1);
- x2s("\\B", "z ", 2, 2);
- x2s("\\B", " z", 0, 0);
- x2s("[ab]", "b", 0, 1);
- ns("[ab]", "c");
- x2s("[a-z]", "t", 0, 1);
- ns("[^a]", "a");
- x2s("[^a]", "\n", 0, 1);
- x2s("[]]", "]", 0, 1);
- ns("[^]]", "]");
- x2s("[\\^]+", "0^^1", 1, 3);
- x2s("[b-]", "b", 0, 1);
- x2s("[b-]", "-", 0, 1);
- x2s("[\\w]", "z", 0, 1);
- ns("[\\w]", " ");
- x2s("[\\W]", "b$", 1, 2);
- x2s("[\\d]", "5", 0, 1);
- ns("[\\d]", "e");
- x2s("[\\D]", "t", 0, 1);
- ns("[\\D]", "3");
- x2s("[\\s]", " ", 0, 1);
- ns("[\\s]", "a");
- x2s("[\\S]", "b", 0, 1);
- ns("[\\S]", " ");
- x2s("[\\w\\d]", "2", 0, 1);
- ns("[\\w\\d]", " ");
- x2s("[[:upper:]]", "B", 0, 1);
- x2s("[*[:xdigit:]+]", "+", 0, 1);
- x2s("[*[:xdigit:]+]", "GHIKK-9+*", 6, 7);
- x2s("[*[:xdigit:]+]", "-@^+", 3, 4);
- ns("[[:upper]]", "A");
- x2s("[[:upper]]", ":", 0, 1);
- x2s("[\\044-\\047]", "\046", 0, 1);
- x2s("[\\x5a-\\x5c]", "\u005b", 0, 1);
- x2s("[\\x6A-\\x6D]", "\u006c", 0, 1);
- ns("[\\x6A-\\x6D]", "\u006e");
- ns("^[0-9A-F]+ 0+ UNDEF ", "75F 00000000 SECT14A notype () External | _rb_apply");
- x2s("[\\[]", "[", 0, 1);
- x2s("[\\]]", "]", 0, 1);
- x2s("[&]", "&", 0, 1);
- x2s("[[ab]]", "b", 0, 1);
- x2s("[[ab]c]", "c", 0, 1);
- ns("[[^a]]", "a");
- ns("[^[a]]", "a");
- x2s("[[ab]&&bc]", "b", 0, 1);
- ns("[[ab]&&bc]", "a");
- ns("[[ab]&&bc]", "c");
- x2s("[a-z&&b-y&&c-x]", "w", 0, 1);
- ns("[^a-z&&b-y&&c-x]", "w");
- x2s("[[^a&&a]&&a-z]", "b", 0, 1);
- ns("[[^a&&a]&&a-z]", "a");
- x2s("[[^a-z&&bcdef]&&[^c-g]]", "h", 0, 1);
- ns("[[^a-z&&bcdef]&&[^c-g]]", "c");
- x2s("[^[^abc]&&[^cde]]", "c", 0, 1);
- x2s("[^[^abc]&&[^cde]]", "e", 0, 1);
- ns("[^[^abc]&&[^cde]]", "f");
- x2s("[a-&&-a]", "-", 0, 1);
- ns("[a\\-&&\\-a]", "&");
- ns("\\wabc", " abc");
- x2s("a\\Wbc", "a bc", 0, 4);
- x2s("a.b.c", "aabbc", 0, 5);
- x2s(".\\wb\\W..c", "abb bcc", 0, 7);
- x2s("\\s\\wzzz", " zzzz", 0, 5);
- x2s("aa.b", "aabb", 0, 4);
- ns(".a", "ab");
- x2s(".a", "aa", 0, 2);
- x2s("^a", "a", 0, 1);
- x2s("^a$", "a", 0, 1);
- x2s("^\\w$", "a", 0, 1);
- ns("^\\w$", " ");
- x2s("^\\wab$", "zab", 0, 3);
- x2s("^\\wabcdef$", "zabcdef", 0, 7);
- x2s("^\\w...def$", "zabcdef", 0, 7);
- x2s("\\w\\w\\s\\Waaa\\d", "aa aaa4", 0, 8);
- x2s("\\A\\Z", "", 0, 0);
- x2s("\\Axyz", "xyz", 0, 3);
- x2s("xyz\\Z", "xyz", 0, 3);
- x2s("xyz\\z", "xyz", 0, 3);
- x2s("a\\Z", "a", 0, 1);
- x2s("\\Gaz", "az", 0, 2);
- ns("\\Gz", "bza");
- ns("az\\G", "az");
- ns("az\\A", "az");
- ns("a\\Az", "az");
- x2s("\\^\\$", "^$", 0, 2);
- x2s("^x?y", "xy", 0, 2);
- x2s("^(x?y)", "xy", 0, 2);
- x2s("\\w", "_", 0, 1);
- ns("\\W", "_");
- x2s("(?=z)z", "z", 0, 1);
- ns("(?=z).", "a");
- x2s("(?!z)a", "a", 0, 1);
- ns("(?!z)a", "z");
- x2s("(?i:a)", "a", 0, 1);
- x2s("(?i:a)", "A", 0, 1);
- x2s("(?i:A)", "a", 0, 1);
- ns("(?i:A)", "b");
- x2s("(?i:[A-Z])", "a", 0, 1);
- x2s("(?i:[f-m])", "H", 0, 1);
- x2s("(?i:[f-m])", "h", 0, 1);
- ns("(?i:[f-m])", "e");
- x2s("(?i:[A-c])", "D", 0, 1);
- x2s("(?i:[!-k])", "Z", 0, 1);
- x2s("(?i:[!-k])", "7", 0, 1);
- x2s("(?i:[T-}])", "b", 0, 1);
- x2s("(?i:[T-}])", "{", 0, 1);
- x2s("(?i:\\?a)", "?A", 0, 2);
- x2s("(?i:\\*A)", "*a", 0, 2);
- ns(".", "\n");
- x2s("(?m:.)", "\n", 0, 1);
- x2s("(?m:a.)", "a\n", 0, 2);
- x2s("(?m:.b)", "a\nb", 1, 3);
- x2s(".*abc", "dddabdd\nddabc", 8, 13);
- x2s("(?m:.*abc)", "dddabddabc", 0, 10);
- ns("(?i)(?-i)a", "A");
- ns("(?i)(?-i:a)", "A");
- x2s("a?", "", 0, 0);
- x2s("a?", "b", 0, 0);
- x2s("a?", "a", 0, 1);
- x2s("a*", "", 0, 0);
- x2s("a*", "a", 0, 1);
- x2s("a*", "aaa", 0, 3);
- x2s("a*", "baaaa", 0, 0);
- ns("a+", "");
- x2s("a+", "a", 0, 1);
- x2s("a+", "aaaa", 0, 4);
- x2s("a+", "aabbb", 0, 2);
- x2s("a+", "baaaa", 1, 5);
- x2s(".?", "", 0, 0);
- x2s(".?", "f", 0, 1);
- x2s(".?", "\n", 0, 0);
- x2s(".*", "", 0, 0);
- x2s(".*", "abcde", 0, 5);
- x2s(".+", "z", 0, 1);
- x2s(".+", "zdswer\n", 0, 6);
- x2s("(.*)a\\1f", "babfbac", 0, 4);
- x2s("(.*)a\\1f", "bacbabf", 3, 7);
- x2s("((.*)a\\2f)", "bacbabf", 3, 7);
- x2s("(.*)a\\1f", "baczzzzzz\nbazz\nzzzzbabf", 19, 23);
- x2s("a|b", "a", 0, 1);
- x2s("a|b", "b", 0, 1);
- x2s("|a", "a", 0, 0);
- x2s("(|a)", "a", 0, 0);
- x2s("ab|bc", "ab", 0, 2);
- x2s("ab|bc", "bc", 0, 2);
- x2s("z(?:ab|bc)", "zbc", 0, 3);
- x2s("a(?:ab|bc)c", "aabc", 0, 4);
- x2s("ab|(?:ac|az)", "az", 0, 2);
- x2s("a|b|c", "dc", 1, 2);
- x2s("a|b|cd|efg|h|ijk|lmn|o|pq|rstuvwx|yz", "pqr", 0, 2);
- ns("a|b|cd|efg|h|ijk|lmn|o|pq|rstuvwx|yz", "mn");
- x2s("a|^z", "ba", 1, 2);
- x2s("a|^z", "za", 0, 1);
- x2s("a|\\Gz", "bza", 2, 3);
- x2s("a|\\Gz", "za", 0, 1);
- x2s("a|\\Az", "bza", 2, 3);
- x2s("a|\\Az", "za", 0, 1);
- x2s("a|b\\Z", "ba", 1, 2);
- x2s("a|b\\Z", "b", 0, 1);
- x2s("a|b\\z", "ba", 1, 2);
- x2s("a|b\\z", "b", 0, 1);
- x2s("\\w|\\s", " ", 0, 1);
- ns("\\w|\\w", " ");
- x2s("\\w|%", "%", 0, 1);
- x2s("\\w|[&$]", "&", 0, 1);
- x2s("[b-d]|[^e-z]", "a", 0, 1);
- x2s("(?:a|[c-f])|bz", "dz", 0, 1);
- x2s("(?:a|[c-f])|bz", "bz", 0, 2);
- x2s("abc|(?=zz)..f", "zzf", 0, 3);
- x2s("abc|(?!zz)..f", "abf", 0, 3);
- x2s("(?=za)..a|(?=zz)..a", "zza", 0, 3);
- ns("(?>a|abd)c", "abdc");
- x2s("(?>abd|a)c", "abdc", 0, 4);
- x2s("a?|b", "a", 0, 1);
- x2s("a?|b", "b", 0, 0);
- x2s("a?|b", "", 0, 0);
- x2s("a*|b", "aa", 0, 2);
- x2s("a*|b*", "ba", 0, 0);
- x2s("a*|b*", "ab", 0, 1);
- x2s("a+|b*", "", 0, 0);
- x2s("a+|b*", "bbb", 0, 3);
- x2s("a+|b*", "abbb", 0, 1);
- ns("a+|b+", "");
- x2s("(a|b)?", "b", 0, 1);
- x2s("(a|b)*", "ba", 0, 2);
- x2s("(a|b)+", "bab", 0, 3);
- x2s("(ab|ca)+", "caabbc", 0, 4);
- x2s("(ab|ca)+", "aabca", 1, 5);
- x2s("(ab|ca)+", "abzca", 0, 2);
- x2s("(a|bab)+", "ababa", 0, 5);
- x2s("(a|bab)+", "ba", 1, 2);
- x2s("(a|bab)+", "baaaba", 1, 4);
- x2s("(?:a|b)(?:a|b)", "ab", 0, 2);
- x2s("(?:a*|b*)(?:a*|b*)", "aaabbb", 0, 3);
- x2s("(?:a*|b*)(?:a+|b+)", "aaabbb", 0, 6);
- x2s("(?:a+|b+){2}", "aaabbb", 0, 6);
- x2s("h{0,}", "hhhh", 0, 4);
- x2s("(?:a+|b+){1,2}", "aaabbb", 0, 6);
- ns("ax{2}*a", "0axxxa1");
- ns("a.{0,2}a", "0aXXXa0");
- ns("a.{0,2}?a", "0aXXXa0");
- ns("a.{0,2}?a", "0aXXXXa0");
- x2s("^a{2,}?a$", "aaa", 0, 3);
- x2s("^[a-z]{2,}?$", "aaa", 0, 3);
- x2s("(?:a+|\\Ab*)cc", "cc", 0, 2);
- ns("(?:a+|\\Ab*)cc", "abcc");
- x2s("(?:^a+|b+)*c", "aabbbabc", 6, 8);
- x2s("(?:^a+|b+)*c", "aabbbbc", 0, 7);
- x2s("a|(?i)c", "C", 0, 1);
- x2s("(?i)c|a", "C", 0, 1);
- x2s("(?i)c|a", "A", 0, 1);
- x2s("(?i:c)|a", "C", 0, 1);
- ns("(?i:c)|a", "A");
- x2s("[abc]?", "abc", 0, 1);
- x2s("[abc]*", "abc", 0, 3);
- x2s("[^abc]*", "abc", 0, 0);
- ns("[^abc]+", "abc");
- x2s("a??", "aaa", 0, 0);
- x2s("ba??b", "bab", 0, 3);
- x2s("a*?", "aaa", 0, 0);
- x2s("ba*?", "baa", 0, 1);
- x2s("ba*?b", "baab", 0, 4);
- x2s("a+?", "aaa", 0, 1);
- x2s("ba+?", "baa", 0, 2);
- x2s("ba+?b", "baab", 0, 4);
- x2s("(?:a?)??", "a", 0, 0);
- x2s("(?:a??)?", "a", 0, 0);
- x2s("(?:a?)+?", "aaa", 0, 1);
- x2s("(?:a+)??", "aaa", 0, 0);
- x2s("(?:a+)??b", "aaab", 0, 4);
- x2s("(?:ab)?{2}", "", 0, 0);
- x2s("(?:ab)?{2}", "ababa", 0, 4);
- x2s("(?:ab)*{0}", "ababa", 0, 0);
- x2s("(?:ab){3,}", "abababab", 0, 8);
- ns("(?:ab){3,}", "abab");
- x2s("(?:ab){2,4}", "ababab", 0, 6);
- x2s("(?:ab){2,4}", "ababababab", 0, 8);
- x2s("(?:ab){2,4}?", "ababababab", 0, 4);
- x2s("(?:ab){,}", "ab{,}", 0, 5);
- x2s("(?:abc)+?{2}", "abcabcabc", 0, 6);
- x2s("(?:X*)(?i:xa)", "XXXa", 0, 4);
- x2s("(d+)([^abc]z)", "dddz", 0, 4);
- x2s("([^abc]*)([^abc]z)", "dddz", 0, 4);
- x2s("(\\w+)(\\wz)", "dddz", 0, 4);
- x3s("(a)", "a", 0, 1, 1);
- x3s("(ab)", "ab", 0, 2, 1);
- x2s("((ab))", "ab", 0, 2);
- x3s("((ab))", "ab", 0, 2, 1);
- x3s("((ab))", "ab", 0, 2, 2);
- x3s("((((((((((((((((((((ab))))))))))))))))))))", "ab", 0, 2, 20);
- x3s("(ab)(cd)", "abcd", 0, 2, 1);
- x3s("(ab)(cd)", "abcd", 2, 4, 2);
- x3s("()(a)bc(def)ghijk", "abcdefghijk", 3, 6, 3);
- x3s("(()(a)bc(def)ghijk)", "abcdefghijk", 3, 6, 4);
- x2s("(^a)", "a", 0, 1);
- x3s("(a)|(a)", "ba", 1, 2, 1);
- x3s("(^a)|(a)", "ba", 1, 2, 2);
- x3s("(a?)", "aaa", 0, 1, 1);
- x3s("(a*)", "aaa", 0, 3, 1);
- x3s("(a*)", "", 0, 0, 1);
- x3s("(a+)", "aaaaaaa", 0, 7, 1);
- x3s("(a+|b*)", "bbbaa", 0, 3, 1);
- x3s("(a+|b?)", "bbbaa", 0, 1, 1);
- x3s("(abc)?", "abc", 0, 3, 1);
- x3s("(abc)*", "abc", 0, 3, 1);
- x3s("(abc)+", "abc", 0, 3, 1);
- x3s("(xyz|abc)+", "abc", 0, 3, 1);
- x3s("([xyz][abc]|abc)+", "abc", 0, 3, 1);
- x3s("((?i:abc))", "AbC", 0, 3, 1);
- x2s("(abc)(?i:\\1)", "abcABC", 0, 6);
- x3s("((?m:a.c))", "a\nc", 0, 3, 1);
- x3s("((?=az)a)", "azb", 0, 1, 1);
- x3s("abc|(.abd)", "zabd", 0, 4, 1);
- x2s("(?:abc)|(ABC)", "abc", 0, 3);
- x3s("(?i:(abc))|(zzz)", "ABC", 0, 3, 1);
- x3s("a*(.)", "aaaaz", 4, 5, 1);
- x3s("a*?(.)", "aaaaz", 0, 1, 1);
- x3s("a*?(c)", "aaaac", 4, 5, 1);
- x3s("[bcd]a*(.)", "caaaaz", 5, 6, 1);
- x3s("(\\Abb)cc", "bbcc", 0, 2, 1);
- ns("(\\Abb)cc", "zbbcc");
- x3s("(^bb)cc", "bbcc", 0, 2, 1);
- ns("(^bb)cc", "zbbcc");
- x3s("cc(bb$)", "ccbb", 2, 4, 1);
- ns("cc(bb$)", "ccbbb");
- ns("(\\1)", "");
- ns("\\1(a)", "aa");
- ns("(a(b)\\1)\\2+", "ababb");
- ns("(?:(?:\\1|z)(a))+$", "zaa");
- x2s("(?:(?:\\1|z)(a))+$", "zaaa", 0, 4);
- x2s("(a)(?=\\1)", "aa", 0, 1);
- ns("(a)$|\\1", "az");
- x2s("(a)\\1", "aa", 0, 2);
- ns("(a)\\1", "ab");
- x2s("(a?)\\1", "aa", 0, 2);
- x2s("(a??)\\1", "aa", 0, 0);
- x2s("(a*)\\1", "aaaaa", 0, 4);
- x3s("(a*)\\1", "aaaaa", 0, 2, 1);
- x2s("a(b*)\\1", "abbbb", 0, 5);
- x2s("a(b*)\\1", "ab", 0, 1);
- x2s("(a*)(b*)\\1\\2", "aaabbaaabb", 0, 10);
- x2s("(a*)(b*)\\2", "aaabbbb", 0, 7);
- x2s("(((((((a*)b))))))c\\7", "aaabcaaa", 0, 8);
- x3s("(((((((a*)b))))))c\\7", "aaabcaaa", 0, 3, 7);
- x2s("(a)(b)(c)\\2\\1\\3", "abcbac", 0, 6);
- x2s("([a-d])\\1", "cc", 0, 2);
- x2s("(\\w\\d\\s)\\1", "f5 f5 ", 0, 6);
- ns("(\\w\\d\\s)\\1", "f5 f5");
- x2s("(who|[a-c]{3})\\1", "whowho", 0, 6);
- x2s("...(who|[a-c]{3})\\1", "abcwhowho", 0, 9);
- x2s("(who|[a-c]{3})\\1", "cbccbc", 0, 6);
- x2s("(^a)\\1", "aa", 0, 2);
- ns("(^a)\\1", "baa");
- ns("(a$)\\1", "aa");
- ns("(ab\\Z)\\1", "ab");
- x2s("(a*\\Z)\\1", "a", 1, 1);
- x2s(".(a*\\Z)\\1", "ba", 1, 2);
- x3s("(.(abc)\\2)", "zabcabc", 0, 7, 1);
- x3s("(.(..\\d.)\\2)", "z12341234", 0, 9, 1);
- x2s("((?i:az))\\1", "AzAz", 0, 4);
- ns("((?i:az))\\1", "Azaz");
- x2s("(?<=a)b", "ab", 1, 2);
- ns("(?<=a)b", "bb");
- x2s("(?<=a|b)b", "bb", 1, 2);
- x2s("(?<=a|bc)b", "bcb", 2, 3);
- x2s("(?<=a|bc)b", "ab", 1, 2);
- x2s("(?<=a|bc||defghij|klmnopq|r)z", "rz", 1, 2);
- x2s("(a)\\g<1>", "aa", 0, 2);
- x2s("(?<!a)b", "cb", 1, 2);
- ns("(?<!a)b", "ab");
- x2s("(?<!a|bc)b", "bbb", 0, 1);
- ns("(?<!a|bc)z", "bcz");
- x2s("(?<name1>a)", "a", 0, 1);
- x2s("(?<name_2>ab)\\g<name_2>", "abab", 0, 4);
- x2s("(?<name_3>.zv.)\\k<name_3>", "azvbazvb", 0, 8);
- x2s("(?<=\\g<ab>)|-\\zEND (?<ab>XyZ)", "XyZ", 3, 3);
- x2s("(?<n>|a\\g<n>)+", "", 0, 0);
- x2s("(?<n>|\\(\\g<n>\\))+$", "()(())", 0, 6);
- x3s("\\g<n>(?<n>.){0}", "X", 0, 1, 1);
- x2s("\\g<n>(abc|df(?<n>.YZ){2,8}){0}", "XYZ", 0, 3);
- x2s("\\A(?<n>(a\\g<n>)|)\\z", "aaaa", 0, 4);
- x2s("(?<n>|\\g<m>\\g<n>)\\z|\\zEND (?<m>a|(b)\\g<m>)", "bbbbabba", 0, 8);
- x2s("(?<name1240>\\w+\\sx)a+\\k<name1240>", " fg xaaaaaaaafg x", 2, 18);
- x3s("(z)()()(?<_9>a)\\g<_9>", "zaa", 2, 3, 1);
- x2s("(.)(((?<_>a)))\\k<_>", "zaa", 0, 3);
- x2s("((?<name1>\\d)|(?<name2>\\w))(\\k<name1>|\\k<name2>)", "ff", 0, 2);
- x2s("(?:(?<x>)|(?<x>efg))\\k<x>", "", 0, 0);
- x2s("(?:(?<x>abc)|(?<x>efg))\\k<x>", "abcefgefg", 3, 9);
- ns("(?:(?<x>abc)|(?<x>efg))\\k<x>", "abcefg");
- x2s("(?:(?<n1>.)|(?<n1>..)|(?<n1>...)|(?<n1>....)|(?<n1>.....)|(?<n1>......)|(?<n1>.......)|(?<n1>........)|(?<n1>.........)|(?<n1>..........)|(?<n1>...........)|(?<n1>............)|(?<n1>.............)|(?<n1>..............))\\k<n1>$", "a-pyumpyum", 2, 10);
- x3s("(?:(?<n1>.)|(?<n1>..)|(?<n1>...)|(?<n1>....)|(?<n1>.....)|(?<n1>......)|(?<n1>.......)|(?<n1>........)|(?<n1>.........)|(?<n1>..........)|(?<n1>...........)|(?<n1>............)|(?<n1>.............)|(?<n1>..............))\\k<n1>$", "xxxxabcdefghijklmnabcdefghijklmn", 4, 18, 14);
- x3s("(?<name1>)(?<name2>)(?<name3>)(?<name4>)(?<name5>)(?<name6>)(?<name7>)(?<name8>)(?<name9>)(?<name10>)(?<name11>)(?<name12>)(?<name13>)(?<name14>)(?<name15>)(?<name16>aaa)(?<name17>)$", "aaa", 0, 3, 16);
- x2s("(?<foo>a|\\(\\g<foo>\\))", "a", 0, 1);
- x2s("(?<foo>a|\\(\\g<foo>\\))", "((((((a))))))", 0, 13);
- x3s("(?<foo>a|\\(\\g<foo>\\))", "((((((((a))))))))", 0, 17, 1);
- x2s("\\g<bar>|\\zEND(?<bar>.*abc$)", "abcxxxabc", 0, 9);
- x2s("\\g<1>|\\zEND(.a.)", "bac", 0, 3);
- x3s("\\g<_A>\\g<_A>|\\zEND(.a.)(?<_A>.b.)", "xbxyby", 3, 6, 1);
- x2s("\\A(?:\\g<pon>|\\g<pan>|\\zEND (?<pan>a|c\\g<pon>c)(?<pon>b|d\\g<pan>d))$", "cdcbcdc", 0, 7);
- x2s("\\A(?<n>|a\\g<m>)\\z|\\zEND (?<m>\\g<n>)", "aaaa", 0, 4);
- x2s("(?<n>(a|b\\g<n>c){3,5})", "baaaaca", 1, 5);
- x2s("(?<n>(a|b\\g<n>c){3,5})", "baaaacaaaaa", 0, 10);
- x2s("(?<pare>\\(([^\\(\\)]++|\\g<pare>)*+\\))", "((a))", 0, 5);
- x2s("()*\\1", "", 0, 0);
- x2s("(?:()|())*\\1\\2", "", 0, 0);
- x3s("(?:\\1a|())*", "a", 0, 0, 1);
- x2s("x((.)*)*x", "0x1x2x3", 1, 6);
- x2s("x((.)*)*x(?i:\\1)\\Z", "0x1x2x1X2", 1, 9);
- x2s("(?:()|()|()|()|()|())*\\2\\5", "", 0, 0);
- x2s("(?:()|()|()|(x)|()|())*\\2b\\5", "b", 0, 1);
-
- x3s("\\A(?<a>|.|(?:(?<b>.)\\g<a>\\k<b+0>))\\z", "reer", 0, 4, 1);
- x3s("(?-i:\\g<name>)(?i:(?<name>a)){0}", "A", 0, 1, 1);
-
- String pat =
- "(?<element> \\g<stag> \\g<content>* \\g<etag> ){0}" +
- "(?<stag> < \\g<name> \\s* > ){0}" +
- "(?<name> [a-zA-Z_:]+ ){0}" +
- "(?<content> [^<&]+ (\\g<element> | [^<&]+)* ){0}" +
- "(?<etag> </ \\k<name+1> >){0}" +
- "\\g<element>";
-
- String str = "<foo>f<bar>bbb</bar>f</foo>";
-
- x3s(pat, str, 0, 27, 0, Option.EXTEND);
- x3s(pat, str, 0, 27, 1, Option.EXTEND);
- x3s(pat, str, 6, 11, 2, Option.EXTEND);
- x3s(pat, str, 7, 10, 3, Option.EXTEND);
- x3s(pat, str, 5, 21, 4, Option.EXTEND);
- x3s(pat, str, 21, 27, 5, Option.EXTEND);
-
- x2s("(a)b\\k<1>", "aba", 0, 3);
- x2s("^(?>(?=a)(a|))++$", "a", 0, 1);
- x2s("\\k", "k", 0, 1);
- x2s("\\kx", "kx", 0, 2);
- x2s("\\g", "g", 0, 1);
- x2s("\\gx", "gx", 0, 2);
- x2s("\\k\\g", "kg", 0, 2);
- ns("\\00", "00");
- ns("\\70", "70");
- x2s("\\80", "80", 0, 2);
- x2s("\\90", "90", 0, 2);
-
- ns("(?<!b|aa)c", "Aac", Option.IGNORECASE);
- x2s("(?<!b|aa)", "Aac", 0, 0, Option.IGNORECASE);
- x2s("(?<=b|aa)c", "Aac", 2, 3, Option.IGNORECASE);
- x2s("(?<=b|aa)", "Aac", 2, 2, Option.IGNORECASE);
-
- ns("\\A[a-f&&[^b-c]&&[^e]]\\z", "e");
- ns("[[^a]&&e&&[^e]]", "e");
-
- x2s("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 0, 35, Option.IGNORECASE);
- x2s("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", 0, 35, Option.IGNORECASE);
- x2s("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaAAAAAAAAAAAAAAAAA", 0, 35, Option.IGNORECASE);
-
- x2s("(?mix)", "", 0, 0);
-
- x2s("(?<=\\babc)d", " abcd", 4, 5);
- x2s("(?<=\\Babc)d", "aabcd", 4, 5);
- x2s("([^\\s]+),(.*)+", " xxxx, xxx xxxxxx xxxxxxxxx xxxxxxx, xxxx xxxxx xxxxx ", 1, 62);
- x2s(",(.*)+", " xxxx, xxx xxxxxx xxxxxxxxx xxxxxxx, xxxx xxxxx xxxxx ", 5, 62);
-
- x2s("(?:(a)|(b))(?(1)cd)e", "acde", 0, 4);
- ns("(?:(a)|(b))(?(1)cd)e", "ae");
- x2s("(?:(a)|(b))(?(2)cd)e", "ae", 0, 2);
- ns("(?:(a)|(b))(?(2)cd)e", "acde");
- x2s("(?:(a)|(b))(?(1)c|d)", "ac", 0, 2);
- x2s("(?:(a)|(b))(?(1)c|d)", "bd", 0, 2);
- ns("(?:(a)|(b))(?(1)c|d)", "ad");
- ns("(?:(a)|(b))(?(1)c|d)", "bc");
- x2s("(?:(a)|(b))(?:(?(1)cd)e|fg)", "acde", 0, 4);
- x2s("(?:(a)|(b))(?:(?(1)cd|x)e|fg)", "bxe", 0, 3);
- ns("(?:(a)|(b))(?:(?(2)cd|x)e|fg)", "bxe");
- x2s("(?:(?<x>a)|(?<y>b))(?:(?(<x>)cd|x)e|fg)", "bxe", 0, 3);
- ns("(?:(?<x>a)|(?<y>b))(?:(?(<y>)cd|x)e|fg)", "bxe");
- x2s("((?<=a))?(?(1)b|c)", "abc", 1, 2);
- x2s("((?<=a))?(?(1)b|c)", "bc", 1, 2);
- x2s("((?<x>x)|(?<y>y))(?(<x>)y|x)", "xy", 0, 2);
- x2s("((?<x>x)|(?<y>y))(?(<x>)y|x)", "yx", 0, 2);
- ns("((?<x>x)|(?<y>y))(?(<x>)y|x)", "xx");
- ns("((?<x>x)|(?<y>y))(?(<x>)y|x)", "yy");
-
- x2s("\\R", "\n", 0, 1);
- x2s("\\R", "\r", 0, 1);
- x2s("\\R{3}", "\r\r\n\n", 0, 4);
-
- x2s("\\X{5}", "ăăab\n", 0, 5);
- }
-
- public static void main(String[] args) throws Throwable{
- new TestA().run();
- }
-}
+/*
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is furnished to do
+ * so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+package org.joni.test;
+
+import org.jcodings.Encoding;
+import org.jcodings.specific.ASCIIEncoding;
+import org.joni.Option;
+import org.joni.Syntax;
+
+public class TestA extends Test {
+ @Override
+ public int option() {
+ return Option.DEFAULT;
+ }
+
+ @Override
+ public Encoding encoding() {
+ return ASCIIEncoding.INSTANCE;
+ }
+
+ @Override
+ public String testEncoding() {
+ return "iso-8859-2";
+ }
+
+ @Override
+ public Syntax syntax() {
+ return Syntax.DEFAULT;
+ }
+
+ @Override
+ public void test() throws Exception {
+ x2s("", "", 0, 0);
+ x2s("^", "", 0, 0);
+ x2s("$", "", 0, 0);
+ x2s("\\G", "", 0, 0);
+ x2s("\\A", "", 0, 0);
+ x2s("\\Z", "", 0, 0);
+ x2s("\\z", "", 0, 0);
+ x2s("^$", "", 0, 0);
+ x2s("\\ca", "\001", 0, 1);
+ x2s("\\C-b", "\002", 0, 1);
+ x2s("\\c\\\\", "\034", 0, 1);
+ x2s("q[\\c\\\\]", "q\034", 0, 2);
+ x2s("", "a", 0, 0);
+ x2s("a", "a", 0, 1);
+ x2s("\\x61", "a", 0, 1);
+ x2s("aa", "aa", 0, 2);
+ x2s("aaa", "aaa", 0, 3);
+ x2s("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 0, 35);
+ x2s("ab", "ab", 0, 2);
+ x2s("b", "ab", 1, 2);
+ x2s("bc", "abc", 1, 3);
+ x2s("(?i:#RET#)", "#INS##RET#", 5, 10);
+ x2s("\\17", "\017", 0, 1);
+ x2s("\\x1f", "\u001f", 0, 1);
+ x2s("\\xED\\xF2", "\u00ed\u0148", 0, 2);
+ x2s("a(?#....\\\\JJJJ)b", "ab", 0, 2);
+ x2s("(?x) G (o O(?-x)oO) g L", "GoOoOgLe", 0, 7);
+ x2s(".", "a", 0, 1);
+ ns(".", "");
+ x2s("..", "ab", 0, 2);
+ x2s("\\w", "e", 0, 1);
+ ns("\\W", "e");
+ x2s("\\s", " ", 0, 1);
+ x2s("\\S", "b", 0, 1);
+ x2s("\\d", "4", 0, 1);
+ ns("\\D", "4");
+ x2s("\\b", "z ", 0, 0);
+ x2s("\\b", " z", 1, 1);
+ x2s("\\B", "zz ", 1, 1);
+ x2s("\\B", "z ", 2, 2);
+ x2s("\\B", " z", 0, 0);
+ x2s("[ab]", "b", 0, 1);
+ ns("[ab]", "c");
+ x2s("[a-z]", "t", 0, 1);
+ ns("[^a]", "a");
+ x2s("[^a]", "\n", 0, 1);
+ x2s("[]]", "]", 0, 1);
+ ns("[^]]", "]");
+ x2s("[\\^]+", "0^^1", 1, 3);
+ x2s("[b-]", "b", 0, 1);
+ x2s("[b-]", "-", 0, 1);
+ x2s("[\\w]", "z", 0, 1);
+ ns("[\\w]", " ");
+ x2s("[\\W]", "b$", 1, 2);
+ x2s("[\\d]", "5", 0, 1);
+ ns("[\\d]", "e");
+ x2s("[\\D]", "t", 0, 1);
+ ns("[\\D]", "3");
+ x2s("[\\s]", " ", 0, 1);
+ ns("[\\s]", "a");
+ x2s("[\\S]", "b", 0, 1);
+ ns("[\\S]", " ");
+ x2s("[\\w\\d]", "2", 0, 1);
+ ns("[\\w\\d]", " ");
+ x2s("[[:upper:]]", "B", 0, 1);
+ x2s("[*[:xdigit:]+]", "+", 0, 1);
+ x2s("[*[:xdigit:]+]", "GHIKK-9+*", 6, 7);
+ x2s("[*[:xdigit:]+]", "-@^+", 3, 4);
+ ns("[[:upper]]", "A");
+ x2s("[[:upper]]", ":", 0, 1);
+ x2s("[\\044-\\047]", "\046", 0, 1);
+ x2s("[\\x5a-\\x5c]", "\u005b", 0, 1);
+ x2s("[\\x6A-\\x6D]", "\u006c", 0, 1);
+ ns("[\\x6A-\\x6D]", "\u006e");
+ ns("^[0-9A-F]+ 0+ UNDEF ", "75F 00000000 SECT14A notype () External | _rb_apply");
+ x2s("[\\[]", "[", 0, 1);
+ x2s("[\\]]", "]", 0, 1);
+ x2s("[&]", "&", 0, 1);
+ x2s("[[ab]]", "b", 0, 1);
+ x2s("[[ab]c]", "c", 0, 1);
+ ns("[[^a]]", "a");
+ ns("[^[a]]", "a");
+ x2s("[[ab]&&bc]", "b", 0, 1);
+ ns("[[ab]&&bc]", "a");
+ ns("[[ab]&&bc]", "c");
+ x2s("[a-z&&b-y&&c-x]", "w", 0, 1);
+ ns("[^a-z&&b-y&&c-x]", "w");
+ x2s("[[^a&&a]&&a-z]", "b", 0, 1);
+ ns("[[^a&&a]&&a-z]", "a");
+ x2s("[[^a-z&&bcdef]&&[^c-g]]", "h", 0, 1);
+ ns("[[^a-z&&bcdef]&&[^c-g]]", "c");
+ x2s("[^[^abc]&&[^cde]]", "c", 0, 1);
+ x2s("[^[^abc]&&[^cde]]", "e", 0, 1);
+ ns("[^[^abc]&&[^cde]]", "f");
+ x2s("[a-&&-a]", "-", 0, 1);
+ ns("[a\\-&&\\-a]", "&");
+ ns("\\wabc", " abc");
+ x2s("a\\Wbc", "a bc", 0, 4);
+ x2s("a.b.c", "aabbc", 0, 5);
+ x2s(".\\wb\\W..c", "abb bcc", 0, 7);
+ x2s("\\s\\wzzz", " zzzz", 0, 5);
+ x2s("aa.b", "aabb", 0, 4);
+ ns(".a", "ab");
+ x2s(".a", "aa", 0, 2);
+ x2s("^a", "a", 0, 1);
+ x2s("^a$", "a", 0, 1);
+ x2s("^\\w$", "a", 0, 1);
+ ns("^\\w$", " ");
+ x2s("^\\wab$", "zab", 0, 3);
+ x2s("^\\wabcdef$", "zabcdef", 0, 7);
+ x2s("^\\w...def$", "zabcdef", 0, 7);
+ x2s("\\w\\w\\s\\Waaa\\d", "aa aaa4", 0, 8);
+ x2s("\\A\\Z", "", 0, 0);
+ x2s("\\Axyz", "xyz", 0, 3);
+ x2s("xyz\\Z", "xyz", 0, 3);
+ x2s("xyz\\z", "xyz", 0, 3);
+ x2s("a\\Z", "a", 0, 1);
+ x2s("\\Gaz", "az", 0, 2);
+ ns("\\Gz", "bza");
+ ns("az\\G", "az");
+ ns("az\\A", "az");
+ ns("a\\Az", "az");
+ x2s("\\^\\$", "^$", 0, 2);
+ x2s("^x?y", "xy", 0, 2);
+ x2s("^(x?y)", "xy", 0, 2);
+ x2s("\\w", "_", 0, 1);
+ ns("\\W", "_");
+ x2s("(?=z)z", "z", 0, 1);
+ ns("(?=z).", "a");
+ x2s("(?!z)a", "a", 0, 1);
+ ns("(?!z)a", "z");
+ x2s("(?i:a)", "a", 0, 1);
+ x2s("(?i:a)", "A", 0, 1);
+ x2s("(?i:A)", "a", 0, 1);
+ ns("(?i:A)", "b");
+ x2s("(?i:[A-Z])", "a", 0, 1);
+ x2s("(?i:[f-m])", "H", 0, 1);
+ x2s("(?i:[f-m])", "h", 0, 1);
+ ns("(?i:[f-m])", "e");
+ x2s("(?i:[A-c])", "D", 0, 1);
+ x2s("(?i:[!-k])", "Z", 0, 1);
+ x2s("(?i:[!-k])", "7", 0, 1);
+ x2s("(?i:[T-}])", "b", 0, 1);
+ x2s("(?i:[T-}])", "{", 0, 1);
+ x2s("(?i:\\?a)", "?A", 0, 2);
+ x2s("(?i:\\*A)", "*a", 0, 2);
+ ns(".", "\n");
+ x2s("(?m:.)", "\n", 0, 1);
+ x2s("(?m:a.)", "a\n", 0, 2);
+ x2s("(?m:.b)", "a\nb", 1, 3);
+ x2s(".*abc", "dddabdd\nddabc", 8, 13);
+ x2s("(?m:.*abc)", "dddabddabc", 0, 10);
+ ns("(?i)(?-i)a", "A");
+ ns("(?i)(?-i:a)", "A");
+ x2s("a?", "", 0, 0);
+ x2s("a?", "b", 0, 0);
+ x2s("a?", "a", 0, 1);
+ x2s("a*", "", 0, 0);
+ x2s("a*", "a", 0, 1);
+ x2s("a*", "aaa", 0, 3);
+ x2s("a*", "baaaa", 0, 0);
+ ns("a+", "");
+ x2s("a+", "a", 0, 1);
+ x2s("a+", "aaaa", 0, 4);
+ x2s("a+", "aabbb", 0, 2);
+ x2s("a+", "baaaa", 1, 5);
+ x2s(".?", "", 0, 0);
+ x2s(".?", "f", 0, 1);
+ x2s(".?", "\n", 0, 0);
+ x2s(".*", "", 0, 0);
+ x2s(".*", "abcde", 0, 5);
+ x2s(".+", "z", 0, 1);
+ x2s(".+", "zdswer\n", 0, 6);
+ x2s("(.*)a\\1f", "babfbac", 0, 4);
+ x2s("(.*)a\\1f", "bacbabf", 3, 7);
+ x2s("((.*)a\\2f)", "bacbabf", 3, 7);
+ x2s("(.*)a\\1f", "baczzzzzz\nbazz\nzzzzbabf", 19, 23);
+ x2s("a|b", "a", 0, 1);
+ x2s("a|b", "b", 0, 1);
+ x2s("|a", "a", 0, 0);
+ x2s("(|a)", "a", 0, 0);
+ x2s("ab|bc", "ab", 0, 2);
+ x2s("ab|bc", "bc", 0, 2);
+ x2s("z(?:ab|bc)", "zbc", 0, 3);
+ x2s("a(?:ab|bc)c", "aabc", 0, 4);
+ x2s("ab|(?:ac|az)", "az", 0, 2);
+ x2s("a|b|c", "dc", 1, 2);
+ x2s("a|b|cd|efg|h|ijk|lmn|o|pq|rstuvwx|yz", "pqr", 0, 2);
+ ns("a|b|cd|efg|h|ijk|lmn|o|pq|rstuvwx|yz", "mn");
+ x2s("a|^z", "ba", 1, 2);
+ x2s("a|^z", "za", 0, 1);
+ x2s("a|\\Gz", "bza", 2, 3);
+ x2s("a|\\Gz", "za", 0, 1);
+ x2s("a|\\Az", "bza", 2, 3);
+ x2s("a|\\Az", "za", 0, 1);
+ x2s("a|b\\Z", "ba", 1, 2);
+ x2s("a|b\\Z", "b", 0, 1);
+ x2s("a|b\\z", "ba", 1, 2);
+ x2s("a|b\\z", "b", 0, 1);
+ x2s("\\w|\\s", " ", 0, 1);
+ ns("\\w|\\w", " ");
+ x2s("\\w|%", "%", 0, 1);
+ x2s("\\w|[&$]", "&", 0, 1);
+ x2s("[b-d]|[^e-z]", "a", 0, 1);
+ x2s("(?:a|[c-f])|bz", "dz", 0, 1);
+ x2s("(?:a|[c-f])|bz", "bz", 0, 2);
+ x2s("abc|(?=zz)..f", "zzf", 0, 3);
+ x2s("abc|(?!zz)..f", "abf", 0, 3);
+ x2s("(?=za)..a|(?=zz)..a", "zza", 0, 3);
+ ns("(?>a|abd)c", "abdc");
+ x2s("(?>abd|a)c", "abdc", 0, 4);
+ x2s("a?|b", "a", 0, 1);
+ x2s("a?|b", "b", 0, 0);
+ x2s("a?|b", "", 0, 0);
+ x2s("a*|b", "aa", 0, 2);
+ x2s("a*|b*", "ba", 0, 0);
+ x2s("a*|b*", "ab", 0, 1);
+ x2s("a+|b*", "", 0, 0);
+ x2s("a+|b*", "bbb", 0, 3);
+ x2s("a+|b*", "abbb", 0, 1);
+ ns("a+|b+", "");
+ x2s("(a|b)?", "b", 0, 1);
+ x2s("(a|b)*", "ba", 0, 2);
+ x2s("(a|b)+", "bab", 0, 3);
+ x2s("(ab|ca)+", "caabbc", 0, 4);
+ x2s("(ab|ca)+", "aabca", 1, 5);
+ x2s("(ab|ca)+", "abzca", 0, 2);
+ x2s("(a|bab)+", "ababa", 0, 5);
+ x2s("(a|bab)+", "ba", 1, 2);
+ x2s("(a|bab)+", "baaaba", 1, 4);
+ x2s("(?:a|b)(?:a|b)", "ab", 0, 2);
+ x2s("(?:a*|b*)(?:a*|b*)", "aaabbb", 0, 3);
+ x2s("(?:a*|b*)(?:a+|b+)", "aaabbb", 0, 6);
+ x2s("(?:a+|b+){2}", "aaabbb", 0, 6);
+ x2s("h{0,}", "hhhh", 0, 4);
+ x2s("(?:a+|b+){1,2}", "aaabbb", 0, 6);
+ ns("ax{2}*a", "0axxxa1");
+ ns("a.{0,2}a", "0aXXXa0");
+ ns("a.{0,2}?a", "0aXXXa0");
+ ns("a.{0,2}?a", "0aXXXXa0");
+ x2s("^a{2,}?a$", "aaa", 0, 3);
+ x2s("^[a-z]{2,}?$", "aaa", 0, 3);
+ x2s("(?:a+|\\Ab*)cc", "cc", 0, 2);
+ ns("(?:a+|\\Ab*)cc", "abcc");
+ x2s("(?:^a+|b+)*c", "aabbbabc", 6, 8);
+ x2s("(?:^a+|b+)*c", "aabbbbc", 0, 7);
+ x2s("a|(?i)c", "C", 0, 1);
+ x2s("(?i)c|a", "C", 0, 1);
+ x2s("(?i)c|a", "A", 0, 1);
+ x2s("(?i:c)|a", "C", 0, 1);
+ ns("(?i:c)|a", "A");
+ x2s("[abc]?", "abc", 0, 1);
+ x2s("[abc]*", "abc", 0, 3);
+ x2s("[^abc]*", "abc", 0, 0);
+ ns("[^abc]+", "abc");
+ x2s("a??", "aaa", 0, 0);
+ x2s("ba??b", "bab", 0, 3);
+ x2s("a*?", "aaa", 0, 0);
+ x2s("ba*?", "baa", 0, 1);
+ x2s("ba*?b", "baab", 0, 4);
+ x2s("a+?", "aaa", 0, 1);
+ x2s("ba+?", "baa", 0, 2);
+ x2s("ba+?b", "baab", 0, 4);
+ x2s("(?:a?)??", "a", 0, 0);
+ x2s("(?:a??)?", "a", 0, 0);
+ x2s("(?:a?)+?", "aaa", 0, 1);
+ x2s("(?:a+)??", "aaa", 0, 0);
+ x2s("(?:a+)??b", "aaab", 0, 4);
+ x2s("(?:ab)?{2}", "", 0, 0);
+ x2s("(?:ab)?{2}", "ababa", 0, 4);
+ x2s("(?:ab)*{0}", "ababa", 0, 0);
+ x2s("(?:ab){3,}", "abababab", 0, 8);
+ ns("(?:ab){3,}", "abab");
+ x2s("(?:ab){2,4}", "ababab", 0, 6);
+ x2s("(?:ab){2,4}", "ababababab", 0, 8);
+ x2s("(?:ab){2,4}?", "ababababab", 0, 4);
+ x2s("(?:ab){,}", "ab{,}", 0, 5);
+ x2s("(?:abc)+?{2}", "abcabcabc", 0, 6);
+ x2s("(?:X*)(?i:xa)", "XXXa", 0, 4);
+ x2s("(d+)([^abc]z)", "dddz", 0, 4);
+ x2s("([^abc]*)([^abc]z)", "dddz", 0, 4);
+ x2s("(\\w+)(\\wz)", "dddz", 0, 4);
+ x3s("(a)", "a", 0, 1, 1);
+ x3s("(ab)", "ab", 0, 2, 1);
+ x2s("((ab))", "ab", 0, 2);
+ x3s("((ab))", "ab", 0, 2, 1);
+ x3s("((ab))", "ab", 0, 2, 2);
+ x3s("((((((((((((((((((((ab))))))))))))))))))))", "ab", 0, 2, 20);
+ x3s("(ab)(cd)", "abcd", 0, 2, 1);
+ x3s("(ab)(cd)", "abcd", 2, 4, 2);
+ x3s("()(a)bc(def)ghijk", "abcdefghijk", 3, 6, 3);
+ x3s("(()(a)bc(def)ghijk)", "abcdefghijk", 3, 6, 4);
+ x2s("(^a)", "a", 0, 1);
+ x3s("(a)|(a)", "ba", 1, 2, 1);
+ x3s("(^a)|(a)", "ba", 1, 2, 2);
+ x3s("(a?)", "aaa", 0, 1, 1);
+ x3s("(a*)", "aaa", 0, 3, 1);
+ x3s("(a*)", "", 0, 0, 1);
+ x3s("(a+)", "aaaaaaa", 0, 7, 1);
+ x3s("(a+|b*)", "bbbaa", 0, 3, 1);
+ x3s("(a+|b?)", "bbbaa", 0, 1, 1);
+ x3s("(abc)?", "abc", 0, 3, 1);
+ x3s("(abc)*", "abc", 0, 3, 1);
+ x3s("(abc)+", "abc", 0, 3, 1);
+ x3s("(xyz|abc)+", "abc", 0, 3, 1);
+ x3s("([xyz][abc]|abc)+", "abc", 0, 3, 1);
+ x3s("((?i:abc))", "AbC", 0, 3, 1);
+ x2s("(abc)(?i:\\1)", "abcABC", 0, 6);
+ x3s("((?m:a.c))", "a\nc", 0, 3, 1);
+ x3s("((?=az)a)", "azb", 0, 1, 1);
+ x3s("abc|(.abd)", "zabd", 0, 4, 1);
+ x2s("(?:abc)|(ABC)", "abc", 0, 3);
+ x3s("(?i:(abc))|(zzz)", "ABC", 0, 3, 1);
+ x3s("a*(.)", "aaaaz", 4, 5, 1);
+ x3s("a*?(.)", "aaaaz", 0, 1, 1);
+ x3s("a*?(c)", "aaaac", 4, 5, 1);
+ x3s("[bcd]a*(.)", "caaaaz", 5, 6, 1);
+ x3s("(\\Abb)cc", "bbcc", 0, 2, 1);
+ ns("(\\Abb)cc", "zbbcc");
+ x3s("(^bb)cc", "bbcc", 0, 2, 1);
+ ns("(^bb)cc", "zbbcc");
+ x3s("cc(bb$)", "ccbb", 2, 4, 1);
+ ns("cc(bb$)", "ccbbb");
+ ns("(\\1)", "");
+ ns("\\1(a)", "aa");
+ ns("(a(b)\\1)\\2+", "ababb");
+ ns("(?:(?:\\1|z)(a))+$", "zaa");
+ x2s("(?:(?:\\1|z)(a))+$", "zaaa", 0, 4);
+ x2s("(a)(?=\\1)", "aa", 0, 1);
+ ns("(a)$|\\1", "az");
+ x2s("(a)\\1", "aa", 0, 2);
+ ns("(a)\\1", "ab");
+ x2s("(a?)\\1", "aa", 0, 2);
+ x2s("(a??)\\1", "aa", 0, 0);
+ x2s("(a*)\\1", "aaaaa", 0, 4);
+ x3s("(a*)\\1", "aaaaa", 0, 2, 1);
+ x2s("a(b*)\\1", "abbbb", 0, 5);
+ x2s("a(b*)\\1", "ab", 0, 1);
+ x2s("(a*)(b*)\\1\\2", "aaabbaaabb", 0, 10);
+ x2s("(a*)(b*)\\2", "aaabbbb", 0, 7);
+ x2s("(((((((a*)b))))))c\\7", "aaabcaaa", 0, 8);
+ x3s("(((((((a*)b))))))c\\7", "aaabcaaa", 0, 3, 7);
+ x2s("(a)(b)(c)\\2\\1\\3", "abcbac", 0, 6);
+ x2s("([a-d])\\1", "cc", 0, 2);
+ x2s("(\\w\\d\\s)\\1", "f5 f5 ", 0, 6);
+ ns("(\\w\\d\\s)\\1", "f5 f5");
+ x2s("(who|[a-c]{3})\\1", "whowho", 0, 6);
+ x2s("...(who|[a-c]{3})\\1", "abcwhowho", 0, 9);
+ x2s("(who|[a-c]{3})\\1", "cbccbc", 0, 6);
+ x2s("(^a)\\1", "aa", 0, 2);
+ ns("(^a)\\1", "baa");
+ ns("(a$)\\1", "aa");
+ ns("(ab\\Z)\\1", "ab");
+ x2s("(a*\\Z)\\1", "a", 1, 1);
+ x2s(".(a*\\Z)\\1", "ba", 1, 2);
+ x3s("(.(abc)\\2)", "zabcabc", 0, 7, 1);
+ x3s("(.(..\\d.)\\2)", "z12341234", 0, 9, 1);
+ x2s("((?i:az))\\1", "AzAz", 0, 4);
+ ns("((?i:az))\\1", "Azaz");
+ x2s("(?<=a)b", "ab", 1, 2);
+ ns("(?<=a)b", "bb");
+ x2s("(?<=a|b)b", "bb", 1, 2);
+ x2s("(?<=a|bc)b", "bcb", 2, 3);
+ x2s("(?<=a|bc)b", "ab", 1, 2);
+ x2s("(?<=a|bc||defghij|klmnopq|r)z", "rz", 1, 2);
+ x2s("(a)\\g<1>", "aa", 0, 2);
+ x2s("(?<!a)b", "cb", 1, 2);
+ ns("(?<!a)b", "ab");
+ x2s("(?<!a|bc)b", "bbb", 0, 1);
+ ns("(?<!a|bc)z", "bcz");
+ x2s("(?<name1>a)", "a", 0, 1);
+ x2s("(?<name_2>ab)\\g<name_2>", "abab", 0, 4);
+ x2s("(?<name_3>.zv.)\\k<name_3>", "azvbazvb", 0, 8);
+ x2s("(?<=\\g<ab>)|-\\zEND (?<ab>XyZ)", "XyZ", 3, 3);
+ x2s("(?<n>|a\\g<n>)+", "", 0, 0);
+ x2s("(?<n>|\\(\\g<n>\\))+$", "()(())", 0, 6);
+ x3s("\\g<n>(?<n>.){0}", "X", 0, 1, 1);
+ x2s("\\g<n>(abc|df(?<n>.YZ){2,8}){0}", "XYZ", 0, 3);
+ x2s("\\A(?<n>(a\\g<n>)|)\\z", "aaaa", 0, 4);
+ x2s("(?<n>|\\g<m>\\g<n>)\\z|\\zEND (?<m>a|(b)\\g<m>)", "bbbbabba", 0, 8);
+ x2s("(?<name1240>\\w+\\sx)a+\\k<name1240>", " fg xaaaaaaaafg x", 2, 18);
+ x3s("(z)()()(?<_9>a)\\g<_9>", "zaa", 2, 3, 1);
+ x2s("(.)(((?<_>a)))\\k<_>", "zaa", 0, 3);
+ x2s("((?<name1>\\d)|(?<name2>\\w))(\\k<name1>|\\k<name2>)", "ff", 0, 2);
+ x2s("(?:(?<x>)|(?<x>efg))\\k<x>", "", 0, 0);
+ x2s("(?:(?<x>abc)|(?<x>efg))\\k<x>", "abcefgefg", 3, 9);
+ ns("(?:(?<x>abc)|(?<x>efg))\\k<x>", "abcefg");
+ x2s("(?:(?<n1>.)|(?<n1>..)|(?<n1>...)|(?<n1>....)|(?<n1>.....)|(?<n1>......)|(?<n1>.......)|(?<n1>........)|(?<n1>.........)|(?<n1>..........)|(?<n1>...........)|(?<n1>............)|(?<n1>.............)|(?<n1>..............))\\k<n1>$", "a-pyumpyum", 2, 10);
+ x3s("(?:(?<n1>.)|(?<n1>..)|(?<n1>...)|(?<n1>....)|(?<n1>.....)|(?<n1>......)|(?<n1>.......)|(?<n1>........)|(?<n1>.........)|(?<n1>..........)|(?<n1>...........)|(?<n1>............)|(?<n1>.............)|(?<n1>..............))\\k<n1>$", "xxxxabcdefghijklmnabcdefghijklmn", 4, 18, 14);
+ x3s("(?<name1>)(?<name2>)(?<name3>)(?<name4>)(?<name5>)(?<name6>)(?<name7>)(?<name8>)(?<name9>)(?<name10>)(?<name11>)(?<name12>)(?<name13>)(?<name14>)(?<name15>)(?<name16>aaa)(?<name17>)$", "aaa", 0, 3, 16);
+ x2s("(?<foo>a|\\(\\g<foo>\\))", "a", 0, 1);
+ x2s("(?<foo>a|\\(\\g<foo>\\))", "((((((a))))))", 0, 13);
+ x3s("(?<foo>a|\\(\\g<foo>\\))", "((((((((a))))))))", 0, 17, 1);
+ x2s("\\g<bar>|\\zEND(?<bar>.*abc$)", "abcxxxabc", 0, 9);
+ x2s("\\g<1>|\\zEND(.a.)", "bac", 0, 3);
+ x3s("\\g<_A>\\g<_A>|\\zEND(.a.)(?<_A>.b.)", "xbxyby", 3, 6, 1);
+ x2s("\\A(?:\\g<pon>|\\g<pan>|\\zEND (?<pan>a|c\\g<pon>c)(?<pon>b|d\\g<pan>d))$", "cdcbcdc", 0, 7);
+ x2s("\\A(?<n>|a\\g<m>)\\z|\\zEND (?<m>\\g<n>)", "aaaa", 0, 4);
+ x2s("(?<n>(a|b\\g<n>c){3,5})", "baaaaca", 1, 5);
+ x2s("(?<n>(a|b\\g<n>c){3,5})", "baaaacaaaaa", 0, 10);
+ x2s("(?<pare>\\(([^\\(\\)]++|\\g<pare>)*+\\))", "((a))", 0, 5);
+ x2s("()*\\1", "", 0, 0);
+ x2s("(?:()|())*\\1\\2", "", 0, 0);
+ x3s("(?:\\1a|())*", "a", 0, 0, 1);
+ x2s("x((.)*)*x", "0x1x2x3", 1, 6);
+ x2s("x((.)*)*x(?i:\\1)\\Z", "0x1x2x1X2", 1, 9);
+ x2s("(?:()|()|()|()|()|())*\\2\\5", "", 0, 0);
+ x2s("(?:()|()|()|(x)|()|())*\\2b\\5", "b", 0, 1);
+
+ x3s("\\A(?<a>|.|(?:(?<b>.)\\g<a>\\k<b+0>))\\z", "reer", 0, 4, 1);
+ x3s("(?-i:\\g<name>)(?i:(?<name>a)){0}", "A", 0, 1, 1);
+
+ String pat =
+ "(?<element> \\g<stag> \\g<content>* \\g<etag> ){0}" +
+ "(?<stag> < \\g<name> \\s* > ){0}" +
+ "(?<name> [a-zA-Z_:]+ ){0}" +
+ "(?<content> [^<&]+ (\\g<element> | [^<&]+)* ){0}" +
+ "(?<etag> </ \\k<name+1> >){0}" +
+ "\\g<element>";
+
+ String str = "<foo>f<bar>bbb</bar>f</foo>";
+
+ x3s(pat, str, 0, 27, 0, Option.EXTEND);
+ x3s(pat, str, 0, 27, 1, Option.EXTEND);
+ x3s(pat, str, 6, 11, 2, Option.EXTEND);
+ x3s(pat, str, 7, 10, 3, Option.EXTEND);
+ x3s(pat, str, 5, 21, 4, Option.EXTEND);
+ x3s(pat, str, 21, 27, 5, Option.EXTEND);
+
+ x2s("(a)b\\k<1>", "aba", 0, 3);
+ x2s("^(?>(?=a)(a|))++$", "a", 0, 1);
+ x2s("\\k", "k", 0, 1);
+ x2s("\\kx", "kx", 0, 2);
+ x2s("\\g", "g", 0, 1);
+ x2s("\\gx", "gx", 0, 2);
+ x2s("\\k\\g", "kg", 0, 2);
+ ns("\\00", "00");
+ ns("\\70", "70");
+ x2s("\\80", "80", 0, 2);
+ x2s("\\90", "90", 0, 2);
+
+ ns("(?<!b|aa)c", "Aac", Option.IGNORECASE);
+ x2s("(?<!b|aa)", "Aac", 0, 0, Option.IGNORECASE);
+ x2s("(?<=b|aa)c", "Aac", 2, 3, Option.IGNORECASE);
+ x2s("(?<=b|aa)", "Aac", 2, 2, Option.IGNORECASE);
+
+ ns("\\A[a-f&&[^b-c]&&[^e]]\\z", "e");
+ ns("[[^a]&&e&&[^e]]", "e");
+
+ x2s("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 0, 35, Option.IGNORECASE);
+ x2s("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", 0, 35, Option.IGNORECASE);
+ x2s("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaAAAAAAAAAAAAAAAAA", 0, 35, Option.IGNORECASE);
+
+ x2s("(?mix)", "", 0, 0);
+
+ x2s("(?<=\\babc)d", " abcd", 4, 5);
+ x2s("(?<=\\Babc)d", "aabcd", 4, 5);
+ x2s("([^\\s]+),(.*)+", " xxxx, xxx xxxxxx xxxxxxxxx xxxxxxx, xxxx xxxxx xxxxx ", 1, 62);
+ x2s(",(.*)+", " xxxx, xxx xxxxxx xxxxxxxxx xxxxxxx, xxxx xxxxx xxxxx ", 5, 62);
+
+ x2s("(?:(a)|(b))(?(1)cd)e", "acde", 0, 4);
+ ns("(?:(a)|(b))(?(1)cd)e", "ae");
+ x2s("(?:(a)|(b))(?(2)cd)e", "ae", 0, 2);
+ ns("(?:(a)|(b))(?(2)cd)e", "acde");
+ x2s("(?:(a)|(b))(?(1)c|d)", "ac", 0, 2);
+ x2s("(?:(a)|(b))(?(1)c|d)", "bd", 0, 2);
+ ns("(?:(a)|(b))(?(1)c|d)", "ad");
+ ns("(?:(a)|(b))(?(1)c|d)", "bc");
+ x2s("(?:(a)|(b))(?:(?(1)cd)e|fg)", "acde", 0, 4);
+ x2s("(?:(a)|(b))(?:(?(1)cd|x)e|fg)", "bxe", 0, 3);
+ ns("(?:(a)|(b))(?:(?(2)cd|x)e|fg)", "bxe");
+ x2s("(?:(?<x>a)|(?<y>b))(?:(?(<x>)cd|x)e|fg)", "bxe", 0, 3);
+ ns("(?:(?<x>a)|(?<y>b))(?:(?(<y>)cd|x)e|fg)", "bxe");
+ x2s("((?<=a))?(?(1)b|c)", "abc", 1, 2);
+ x2s("((?<=a))?(?(1)b|c)", "bc", 1, 2);
+ x2s("((?<x>x)|(?<y>y))(?(<x>)y|x)", "xy", 0, 2);
+ x2s("((?<x>x)|(?<y>y))(?(<x>)y|x)", "yx", 0, 2);
+ ns("((?<x>x)|(?<y>y))(?(<x>)y|x)", "xx");
+ ns("((?<x>x)|(?<y>y))(?(<x>)y|x)", "yy");
+
+ x2s("\\R", "\n", 0, 1);
+ x2s("\\R", "\r", 0, 1);
+ x2s("\\R{3}", "\r\r\n\n", 0, 4);
+
+ x2s("\\X{5}", "ăăab\n", 0, 5);
+ x2s("\\X{5}", "あいab\n", 0, 5);
+ x2s("(?<=a).*b", "aab", 1, 3);
+
+ super.test();
+ }
+}
diff --git a/test/org/joni/test/TestAU.java b/test/org/joni/test/TestAU.java
deleted file mode 100644
index 0d37a88..0000000
--- a/test/org/joni/test/TestAU.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is furnished to do
- * so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-package org.joni.test;
-
-import org.jcodings.Encoding;
-import org.jcodings.specific.ASCIIEncoding;
-import org.joni.Option;
-import org.joni.Syntax;
-
-public class TestAU extends Test {
-
- public int option() {
- return Option.DEFAULT;
- }
-
- public Encoding encoding() {
- return ASCIIEncoding.INSTANCE;
- }
-
- public String testEncoding() {
- return "utf-8";
- }
-
- public Syntax syntax() {
- return Syntax.DEFAULT;
- }
-
- public void test() throws InterruptedException {
- x2s("\\X{5}", "あいab\n", 0, 5);
- }
-
- public static void main(String[] args) throws Throwable {
- new TestU8().run();
- }
-}
diff --git a/test/org/joni/test/TestC.java b/test/org/joni/test/TestC.java
old mode 100644
new mode 100755
index 04963d5..5455f15
--- a/test/org/joni/test/TestC.java
+++ b/test/org/joni/test/TestC.java
@@ -1,736 +1,734 @@
-/*
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is furnished to do
- * so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-package org.joni.test;
-
-import org.joni.Option;
-import org.joni.Syntax;
-import org.jcodings.Config;
-import org.jcodings.Encoding;
-import org.jcodings.specific.EUCJPEncoding;
-
-public class TestC extends Test {
-
- public int option() {
- return Option.DEFAULT;
- }
-
- public Encoding encoding() {
- return EUCJPEncoding.INSTANCE;
- }
-
- public String testEncoding() {
- return "cp1250";
- }
-
- public Syntax syntax() {
- return Syntax.DEFAULT;
- }
-
- public void test() throws InterruptedException {
- x2s("", "", 0, 0);
- x2s("^", "", 0, 0);
- x2s("$", "", 0, 0);
- x2s("\\G", "", 0, 0);
- x2s("\\A", "", 0, 0);
- x2s("\\Z", "", 0, 0);
- x2s("\\z", "", 0, 0);
- x2s("^$", "", 0, 0);
- x2s("\\ca", "\001", 0, 1);
- x2s("\\C-b", "\002", 0, 1);
- x2s("\\c\\\\", "\034", 0, 1);
- x2s("q[\\c\\\\]", "q\034", 0, 2);
- x2s("", "a", 0, 0);
- x2s("a", "a", 0, 1);
- x2s("\\x61", "a", 0, 1);
- x2s("aa", "aa", 0, 2);
- x2s("aaa", "aaa", 0, 3);
- x2s("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 0, 35);
- x2s("ab", "ab", 0, 2);
- x2s("b", "ab", 1, 2);
- x2s("bc", "abc", 1, 3);
- x2s("(?i:#RET#)", "#INS##RET#", 5, 10);
- x2s("\\17", "\017", 0, 1);
- x2s("\\x1f", "\u001f", 0, 1);
- x2s("a(?#....\\\\JJJJ)b", "ab", 0, 2);
- x2s("(?x) G (o O(?-x)oO) g L", "GoOoOgLe", 0, 7);
- x2s(".", "a", 0, 1);
- ns(".", "");
- x2s("..", "ab", 0, 2);
- x2s("\\w", "e", 0, 1);
- ns("\\W", "e");
- x2s("\\s", " ", 0, 1);
- x2s("\\S", "b", 0, 1);
- x2s("\\d", "4", 0, 1);
- ns("\\D", "4");
- x2s("\\b", "z ", 0, 0);
- x2s("\\b", " z", 1, 1);
- x2s("\\B", "zz ", 1, 1);
- x2s("\\B", "z ", 2, 2);
- x2s("\\B", " z", 0, 0);
- x2s("[ab]", "b", 0, 1);
- ns("[ab]", "c");
- x2s("[a-z]", "t", 0, 1);
- ns("[^a]", "a");
- x2s("[^a]", "\n", 0, 1);
- x2s("[]]", "]", 0, 1);
- ns("[^]]", "]");
- x2s("[\\^]+", "0^^1", 1, 3);
- x2s("[b-]", "b", 0, 1);
- x2s("[b-]", "-", 0, 1);
- x2s("[\\w]", "z", 0, 1);
- ns("[\\w]", " ");
- x2s("[\\W]", "b$", 1, 2);
- x2s("[\\d]", "5", 0, 1);
- ns("[\\d]", "e");
- x2s("[\\D]", "t", 0, 1);
- ns("[\\D]", "3");
- x2s("[\\s]", " ", 0, 1);
- ns("[\\s]", "a");
- x2s("[\\S]", "b", 0, 1);
- ns("[\\S]", " ");
- x2s("[\\w\\d]", "2", 0, 1);
- ns("[\\w\\d]", " ");
- x2s("[[:upper:]]", "B", 0, 1);
- x2s("[*[:xdigit:]+]", "+", 0, 1);
- x2s("[*[:xdigit:]+]", "GHIKK-9+*", 6, 7);
- x2s("[*[:xdigit:]+]", "-@^+", 3, 4);
- ns("[[:upper]]", "A");
- x2s("[[:upper]]", ":", 0, 1);
- x2s("[\\044-\\047]", "\046", 0, 1);
- x2s("[\\x5a-\\x5c]", "\u005b", 0, 1);
- x2s("[\\x6A-\\x6D]", "\u006c", 0, 1);
- ns("[\\x6A-\\x6D]", "\u006e");
- ns("^[0-9A-F]+ 0+ UNDEF ", "75F 00000000 SECT14A notype () External | _rb_apply");
- x2s("[\\[]", "[", 0, 1);
- x2s("[\\]]", "]", 0, 1);
- x2s("[&]", "&", 0, 1);
- x2s("[[ab]]", "b", 0, 1);
- x2s("[[ab]c]", "c", 0, 1);
- ns("[[^a]]", "a");
- ns("[^[a]]", "a");
- x2s("[[ab]&&bc]", "b", 0, 1);
- ns("[[ab]&&bc]", "a");
- ns("[[ab]&&bc]", "c");
- x2s("[a-z&&b-y&&c-x]", "w", 0, 1);
- ns("[^a-z&&b-y&&c-x]", "w");
- x2s("[[^a&&a]&&a-z]", "b", 0, 1);
- ns("[[^a&&a]&&a-z]", "a");
- x2s("[[^a-z&&bcdef]&&[^c-g]]", "h", 0, 1);
- ns("[[^a-z&&bcdef]&&[^c-g]]", "c");
- x2s("[^[^abc]&&[^cde]]", "c", 0, 1);
- x2s("[^[^abc]&&[^cde]]", "e", 0, 1);
- ns("[^[^abc]&&[^cde]]", "f");
- x2s("[a-&&-a]", "-", 0, 1);
- ns("[a\\-&&\\-a]", "&");
- ns("\\wabc", " abc");
- x2s("a\\Wbc", "a bc", 0, 4);
- x2s("a.b.c", "aabbc", 0, 5);
- x2s(".\\wb\\W..c", "abb bcc", 0, 7);
- x2s("\\s\\wzzz", " zzzz", 0, 5);
- x2s("aa.b", "aabb", 0, 4);
- ns(".a", "ab");
- x2s(".a", "aa", 0, 2);
- x2s("^a", "a", 0, 1);
- x2s("^a$", "a", 0, 1);
- x2s("^\\w$", "a", 0, 1);
- ns("^\\w$", " ");
- x2s("^\\wab$", "zab", 0, 3);
- x2s("^\\wabcdef$", "zabcdef", 0, 7);
- x2s("^\\w...def$", "zabcdef", 0, 7);
- x2s("\\w\\w\\s\\Waaa\\d", "aa aaa4", 0, 8);
- x2s("\\A\\Z", "", 0, 0);
- x2s("\\Axyz", "xyz", 0, 3);
- x2s("xyz\\Z", "xyz", 0, 3);
- x2s("xyz\\z", "xyz", 0, 3);
- x2s("a\\Z", "a", 0, 1);
- x2s("\\Gaz", "az", 0, 2);
- ns("\\Gz", "bza");
- ns("az\\G", "az");
- ns("az\\A", "az");
- ns("a\\Az", "az");
- x2s("\\^\\$", "^$", 0, 2);
- x2s("^x?y", "xy", 0, 2);
- x2s("^(x?y)", "xy", 0, 2);
- x2s("\\w", "_", 0, 1);
- ns("\\W", "_");
- x2s("(?=z)z", "z", 0, 1);
- ns("(?=z).", "a");
- x2s("(?!z)a", "a", 0, 1);
- ns("(?!z)a", "z");
- x2s("(?i:a)", "a", 0, 1);
- x2s("(?i:a)", "A", 0, 1);
- x2s("(?i:A)", "a", 0, 1);
- ns("(?i:A)", "b");
- x2s("(?i:[A-Z])", "a", 0, 1);
- x2s("(?i:[f-m])", "H", 0, 1);
- x2s("(?i:[f-m])", "h", 0, 1);
- ns("(?i:[f-m])", "e");
- x2s("(?i:[A-c])", "D", 0, 1);
- ns("(?i:[^a-z])", "A");
- ns("(?i:[^a-z])", "a");
- x2s("(?i:[!-k])", "Z", 0, 1);
- x2s("(?i:[!-k])", "7", 0, 1);
- x2s("(?i:[T-}])", "b", 0, 1);
- x2s("(?i:[T-}])", "{", 0, 1);
- x2s("(?i:\\?a)", "?A", 0, 2);
- x2s("(?i:\\*A)", "*a", 0, 2);
- ns(".", "\n");
- x2s("(?m:.)", "\n", 0, 1);
- x2s("(?m:a.)", "a\n", 0, 2);
- x2s("(?m:.b)", "a\nb", 1, 3);
- x2s(".*abc", "dddabdd\nddabc", 8, 13);
- x2s("(?m:.*abc)", "dddabddabc", 0, 10);
- ns("(?i)(?-i)a", "A");
- ns("(?i)(?-i:a)", "A");
- x2s("a?", "", 0, 0);
- x2s("a?", "b", 0, 0);
- x2s("a?", "a", 0, 1);
- x2s("a*", "", 0, 0);
- x2s("a*", "a", 0, 1);
- x2s("a*", "aaa", 0, 3);
- x2s("a*", "baaaa", 0, 0);
- ns("a+", "");
- x2s("a+", "a", 0, 1);
- x2s("a+", "aaaa", 0, 4);
- x2s("a+", "aabbb", 0, 2);
- x2s("a+", "baaaa", 1, 5);
- x2s(".?", "", 0, 0);
- x2s(".?", "f", 0, 1);
- x2s(".?", "\n", 0, 0);
- x2s(".*", "", 0, 0);
- x2s(".*", "abcde", 0, 5);
- x2s(".+", "z", 0, 1);
- x2s(".+", "zdswer\n", 0, 6);
- x2s("(.*)a\\1f", "babfbac", 0, 4);
- x2s("(.*)a\\1f", "bacbabf", 3, 7);
- x2s("((.*)a\\2f)", "bacbabf", 3, 7);
- x2s("(.*)a\\1f", "baczzzzzz\nbazz\nzzzzbabf", 19, 23);
- x2s("a|b", "a", 0, 1);
- x2s("a|b", "b", 0, 1);
- x2s("|a", "a", 0, 0);
- x2s("(|a)", "a", 0, 0);
- x2s("ab|bc", "ab", 0, 2);
- x2s("ab|bc", "bc", 0, 2);
- x2s("z(?:ab|bc)", "zbc", 0, 3);
- x2s("a(?:ab|bc)c", "aabc", 0, 4);
- x2s("ab|(?:ac|az)", "az", 0, 2);
- x2s("a|b|c", "dc", 1, 2);
- x2s("a|b|cd|efg|h|ijk|lmn|o|pq|rstuvwx|yz", "pqr", 0, 2);
- ns("a|b|cd|efg|h|ijk|lmn|o|pq|rstuvwx|yz", "mn");
- x2s("a|^z", "ba", 1, 2);
- x2s("a|^z", "za", 0, 1);
- x2s("a|\\Gz", "bza", 2, 3);
- x2s("a|\\Gz", "za", 0, 1);
- x2s("a|\\Az", "bza", 2, 3);
- x2s("a|\\Az", "za", 0, 1);
- x2s("a|b\\Z", "ba", 1, 2);
- x2s("a|b\\Z", "b", 0, 1);
- x2s("a|b\\z", "ba", 1, 2);
- x2s("a|b\\z", "b", 0, 1);
- x2s("\\w|\\s", " ", 0, 1);
- ns("\\w|\\w", " ");
- x2s("\\w|%", "%", 0, 1);
- x2s("\\w|[&$]", "&", 0, 1);
- x2s("[b-d]|[^e-z]", "a", 0, 1);
- x2s("(?:a|[c-f])|bz", "dz", 0, 1);
- x2s("(?:a|[c-f])|bz", "bz", 0, 2);
- x2s("abc|(?=zz)..f", "zzf", 0, 3);
- x2s("abc|(?!zz)..f", "abf", 0, 3);
- x2s("(?=za)..a|(?=zz)..a", "zza", 0, 3);
- ns("(?>a|abd)c", "abdc");
- x2s("(?>abd|a)c", "abdc", 0, 4);
- x2s("a?|b", "a", 0, 1);
- x2s("a?|b", "b", 0, 0);
- x2s("a?|b", "", 0, 0);
- x2s("a*|b", "aa", 0, 2);
- x2s("a*|b*", "ba", 0, 0);
- x2s("a*|b*", "ab", 0, 1);
- x2s("a+|b*", "", 0, 0);
- x2s("a+|b*", "bbb", 0, 3);
- x2s("a+|b*", "abbb", 0, 1);
- ns("a+|b+", "");
- x2s("(a|b)?", "b", 0, 1);
- x2s("(a|b)*", "ba", 0, 2);
- x2s("(a|b)+", "bab", 0, 3);
- x2s("(ab|ca)+", "caabbc", 0, 4);
- x2s("(ab|ca)+", "aabca", 1, 5);
- x2s("(ab|ca)+", "abzca", 0, 2);
- x2s("(a|bab)+", "ababa", 0, 5);
- x2s("(a|bab)+", "ba", 1, 2);
- x2s("(a|bab)+", "baaaba", 1, 4);
- x2s("(?:a|b)(?:a|b)", "ab", 0, 2);
- x2s("(?:a*|b*)(?:a*|b*)", "aaabbb", 0, 3);
- x2s("(?:a*|b*)(?:a+|b+)", "aaabbb", 0, 6);
- x2s("(?:a+|b+){2}", "aaabbb", 0, 6);
- x2s("h{0,}", "hhhh", 0, 4);
- x2s("(?:a+|b+){1,2}", "aaabbb", 0, 6);
- ns("ax{2}*a", "0axxxa1");
- ns("a.{0,2}a", "0aXXXa0");
- ns("a.{0,2}?a", "0aXXXa0");
- ns("a.{0,2}?a", "0aXXXXa0");
- x2s("^a{2,}?a$", "aaa", 0, 3);
- x2s("^[a-z]{2,}?$", "aaa", 0, 3);
- x2s("(?:a+|\\Ab*)cc", "cc", 0, 2);
- ns("(?:a+|\\Ab*)cc", "abcc");
- x2s("(?:^a+|b+)*c", "aabbbabc", 6, 8);
- x2s("(?:^a+|b+)*c", "aabbbbc", 0, 7);
- x2s("a|(?i)c", "C", 0, 1);
- x2s("(?i)c|a", "C", 0, 1);
- x2s("(?i)c|a", "A", 0, 1);
- x2s("(?i:c)|a", "C", 0, 1);
- ns("(?i:c)|a", "A");
- x2s("[abc]?", "abc", 0, 1);
- x2s("[abc]*", "abc", 0, 3);
- x2s("[^abc]*", "abc", 0, 0);
- ns("[^abc]+", "abc");
- x2s("a??", "aaa", 0, 0);
- x2s("ba??b", "bab", 0, 3);
- x2s("a*?", "aaa", 0, 0);
- x2s("ba*?", "baa", 0, 1);
- x2s("ba*?b", "baab", 0, 4);
- x2s("a+?", "aaa", 0, 1);
- x2s("ba+?", "baa", 0, 2);
- x2s("ba+?b", "baab", 0, 4);
- x2s("(?:a?)??", "a", 0, 0);
- x2s("(?:a??)?", "a", 0, 0);
- x2s("(?:a?)+?", "aaa", 0, 1);
- x2s("(?:a+)??", "aaa", 0, 0);
- x2s("(?:a+)??b", "aaab", 0, 4);
- x2s("(?:ab)?{2}", "", 0, 0);
- x2s("(?:ab)?{2}", "ababa", 0, 4);
- x2s("(?:ab)*{0}", "ababa", 0, 0);
- x2s("(?:ab){3,}", "abababab", 0, 8);
- ns("(?:ab){3,}", "abab");
- x2s("(?:ab){2,4}", "ababab", 0, 6);
- x2s("(?:ab){2,4}", "ababababab", 0, 8);
- x2s("(?:ab){2,4}?", "ababababab", 0, 4);
- x2s("(?:ab){,}", "ab{,}", 0, 5);
- x2s("(?:abc)+?{2}", "abcabcabc", 0, 6);
- x2s("(?:X*)(?i:xa)", "XXXa", 0, 4);
- x2s("(d+)([^abc]z)", "dddz", 0, 4);
- x2s("([^abc]*)([^abc]z)", "dddz", 0, 4);
- x2s("(\\w+)(\\wz)", "dddz", 0, 4);
- x3s("(a)", "a", 0, 1, 1);
- x3s("(ab)", "ab", 0, 2, 1);
- x2s("((ab))", "ab", 0, 2);
- x3s("((ab))", "ab", 0, 2, 1);
- x3s("((ab))", "ab", 0, 2, 2);
- x3s("((((((((((((((((((((ab))))))))))))))))))))", "ab", 0, 2, 20);
- x3s("(ab)(cd)", "abcd", 0, 2, 1);
- x3s("(ab)(cd)", "abcd", 2, 4, 2);
- x3s("()(a)bc(def)ghijk", "abcdefghijk", 3, 6, 3);
- x3s("(()(a)bc(def)ghijk)", "abcdefghijk", 3, 6, 4);
- x2s("(^a)", "a", 0, 1);
- x3s("(a)|(a)", "ba", 1, 2, 1);
- x3s("(^a)|(a)", "ba", 1, 2, 2);
- x3s("(a?)", "aaa", 0, 1, 1);
- x3s("(a*)", "aaa", 0, 3, 1);
- x3s("(a*)", "", 0, 0, 1);
- x3s("(a+)", "aaaaaaa", 0, 7, 1);
- x3s("(a+|b*)", "bbbaa", 0, 3, 1);
- x3s("(a+|b?)", "bbbaa", 0, 1, 1);
- x3s("(abc)?", "abc", 0, 3, 1);
- x3s("(abc)*", "abc", 0, 3, 1);
- x3s("(abc)+", "abc", 0, 3, 1);
- x3s("(xyz|abc)+", "abc", 0, 3, 1);
- x3s("([xyz][abc]|abc)+", "abc", 0, 3, 1);
- x3s("((?i:abc))", "AbC", 0, 3, 1);
- x2s("(abc)(?i:\\1)", "abcABC", 0, 6);
- x3s("((?m:a.c))", "a\nc", 0, 3, 1);
- x3s("((?=az)a)", "azb", 0, 1, 1);
- x3s("abc|(.abd)", "zabd", 0, 4, 1);
- x2s("(?:abc)|(ABC)", "abc", 0, 3);
- x3s("(?i:(abc))|(zzz)", "ABC", 0, 3, 1);
- x3s("a*(.)", "aaaaz", 4, 5, 1);
- x3s("a*?(.)", "aaaaz", 0, 1, 1);
- x3s("a*?(c)", "aaaac", 4, 5, 1);
- x3s("[bcd]a*(.)", "caaaaz", 5, 6, 1);
- x3s("(\\Abb)cc", "bbcc", 0, 2, 1);
- ns("(\\Abb)cc", "zbbcc");
- x3s("(^bb)cc", "bbcc", 0, 2, 1);
- ns("(^bb)cc", "zbbcc");
- x3s("cc(bb$)", "ccbb", 2, 4, 1);
- ns("cc(bb$)", "ccbbb");
- ns("(\\1)", "");
- ns("\\1(a)", "aa");
- ns("(a(b)\\1)\\2+", "ababb");
- ns("(?:(?:\\1|z)(a))+$", "zaa");
- x2s("(?:(?:\\1|z)(a))+$", "zaaa", 0, 4);
- x2s("(a)(?=\\1)", "aa", 0, 1);
- ns("(a)$|\\1", "az");
- x2s("(a)\\1", "aa", 0, 2);
- ns("(a)\\1", "ab");
- x2s("(a?)\\1", "aa", 0, 2);
- x2s("(a??)\\1", "aa", 0, 0);
- x2s("(a*)\\1", "aaaaa", 0, 4);
- x3s("(a*)\\1", "aaaaa", 0, 2, 1);
- x2s("a(b*)\\1", "abbbb", 0, 5);
- x2s("a(b*)\\1", "ab", 0, 1);
- x2s("(a*)(b*)\\1\\2", "aaabbaaabb", 0, 10);
- x2s("(a*)(b*)\\2", "aaabbbb", 0, 7);
- x2s("(((((((a*)b))))))c\\7", "aaabcaaa", 0, 8);
- x3s("(((((((a*)b))))))c\\7", "aaabcaaa", 0, 3, 7);
- x2s("(a)(b)(c)\\2\\1\\3", "abcbac", 0, 6);
- x2s("([a-d])\\1", "cc", 0, 2);
- x2s("(\\w\\d\\s)\\1", "f5 f5 ", 0, 6);
- ns("(\\w\\d\\s)\\1", "f5 f5");
- x2s("(who|[a-c]{3})\\1", "whowho", 0, 6);
- x2s("...(who|[a-c]{3})\\1", "abcwhowho", 0, 9);
- x2s("(who|[a-c]{3})\\1", "cbccbc", 0, 6);
- x2s("(^a)\\1", "aa", 0, 2);
- ns("(^a)\\1", "baa");
- ns("(a$)\\1", "aa");
- ns("(ab\\Z)\\1", "ab");
- x2s("(a*\\Z)\\1", "a", 1, 1);
- x2s(".(a*\\Z)\\1", "ba", 1, 2);
- x3s("(.(abc)\\2)", "zabcabc", 0, 7, 1);
- x3s("(.(..\\d.)\\2)", "z12341234", 0, 9, 1);
- x2s("((?i:az))\\1", "AzAz", 0, 4);
- ns("((?i:az))\\1", "Azaz");
- x2s("(?<=a)b", "ab", 1, 2);
- ns("(?<=a)b", "bb");
- x2s("(?<=a|b)b", "bb", 1, 2);
- x2s("(?<=a|bc)b", "bcb", 2, 3);
- x2s("(?<=a|bc)b", "ab", 1, 2);
- x2s("(?<=a|bc||defghij|klmnopq|r)z", "rz", 1, 2);
- x2s("(a)\\g<1>", "aa", 0, 2);
- x2s("(?<!a)b", "cb", 1, 2);
- ns("(?<!a)b", "ab");
- x2s("(?<!a|bc)b", "bbb", 0, 1);
- ns("(?<!a|bc)z", "bcz");
- x2s("(?<name1>a)", "a", 0, 1);
- x2s("(?<name_2>ab)\\g<name_2>", "abab", 0, 4);
- x2s("(?<name_3>.zv.)\\k<name_3>", "azvbazvb", 0, 8);
- x2s("(?<=\\g<ab>)|-\\zEND (?<ab>XyZ)", "XyZ", 3, 3);
- x2s("(?<n>|a\\g<n>)+", "", 0, 0);
- x2s("(?<n>|\\(\\g<n>\\))+$", "()(())", 0, 6);
- x3s("\\g<n>(?<n>.){0}", "X", 0, 1, 1);
- x2s("\\g<n>(abc|df(?<n>.YZ){2,8}){0}", "XYZ", 0, 3);
- x2s("\\A(?<n>(a\\g<n>)|)\\z", "aaaa", 0, 4);
- x2s("(?<n>|\\g<m>\\g<n>)\\z|\\zEND (?<m>a|(b)\\g<m>)", "bbbbabba", 0, 8);
- x2s("(?<name1240>\\w+\\sx)a+\\k<name1240>", " fg xaaaaaaaafg x", 2, 18);
- x3s("(z)()()(?<_9>a)\\g<_9>", "zaa", 2, 3, 1);
- x2s("(.)(((?<_>a)))\\k<_>", "zaa", 0, 3);
- x2s("((?<name1>\\d)|(?<name2>\\w))(\\k<name1>|\\k<name2>)", "ff", 0, 2);
- x2s("(?:(?<x>)|(?<x>efg))\\k<x>", "", 0, 0);
- x2s("(?:(?<x>abc)|(?<x>efg))\\k<x>", "abcefgefg", 3, 9);
- ns("(?:(?<x>abc)|(?<x>efg))\\k<x>", "abcefg");
- x2s("(?:(?<n1>.)|(?<n1>..)|(?<n1>...)|(?<n1>....)|(?<n1>.....)|(?<n1>......)|(?<n1>.......)|(?<n1>........)|(?<n1>.........)|(?<n1>..........)|(?<n1>...........)|(?<n1>............)|(?<n1>.............)|(?<n1>..............))\\k<n1>$", "a-pyumpyum", 2, 10);
- x3s("(?:(?<n1>.)|(?<n1>..)|(?<n1>...)|(?<n1>....)|(?<n1>.....)|(?<n1>......)|(?<n1>.......)|(?<n1>........)|(?<n1>.........)|(?<n1>..........)|(?<n1>...........)|(?<n1>............)|(?<n1>.............)|(?<n1>..............))\\k<n1>$", "xxxxabcdefghijklmnabcdefghijklmn", 4, 18, 14);
- x3s("(?<name1>)(?<name2>)(?<name3>)(?<name4>)(?<name5>)(?<name6>)(?<name7>)(?<name8>)(?<name9>)(?<name10>)(?<name11>)(?<name12>)(?<name13>)(?<name14>)(?<name15>)(?<name16>aaa)(?<name17>)$", "aaa", 0, 3, 16);
- x2s("(?<foo>a|\\(\\g<foo>\\))", "a", 0, 1);
- x2s("(?<foo>a|\\(\\g<foo>\\))", "((((((a))))))", 0, 13);
- x3s("(?<foo>a|\\(\\g<foo>\\))", "((((((((a))))))))", 0, 17, 1);
- x2s("\\g<bar>|\\zEND(?<bar>.*abc$)", "abcxxxabc", 0, 9);
- x2s("\\g<1>|\\zEND(.a.)", "bac", 0, 3);
- x3s("\\g<_A>\\g<_A>|\\zEND(.a.)(?<_A>.b.)", "xbxyby", 3, 6, 1);
- x2s("\\A(?:\\g<pon>|\\g<pan>|\\zEND (?<pan>a|c\\g<pon>c)(?<pon>b|d\\g<pan>d))$", "cdcbcdc", 0, 7);
- x2s("\\A(?<n>|a\\g<m>)\\z|\\zEND (?<m>\\g<n>)", "aaaa", 0, 4);
- x2s("(?<n>(a|b\\g<n>c){3,5})", "baaaaca", 1, 5);
- x2s("(?<n>(a|b\\g<n>c){3,5})", "baaaacaaaaa", 0, 10);
- x2s("(?<pare>\\(([^\\(\\)]++|\\g<pare>)*+\\))", "((a))", 0, 5);
- x2s("()*\\1", "", 0, 0);
- x2s("(?:()|())*\\1\\2", "", 0, 0);
- x3s("(?:\\1a|())*", "a", 0, 0, 1);
- x2s("x((.)*)*x", "0x1x2x3", 1, 6);
- x2s("x((.)*)*x(?i:\\1)\\Z", "0x1x2x1X2", 1, 9);
- x2s("(?:()|()|()|()|()|())*\\2\\5", "", 0, 0);
- x2s("(?:()|()|()|(x)|()|())*\\2b\\5", "b", 0, 1);
- // if (Config.VANILLA) x2s("\\xED\\xF2", "\u00ed\u0148", 0, 2);
- x2s("", "\u00a4\u02d8", 0, 0);
- x2s("\u00a4\u02d8", "\u00a4\u02d8", 0, 2);
- ns("\u00a4\u00a4", "\u00a4\u02d8");
- x2s("\u00a4\u00a6\u00a4\u00a6", "\u00a4\u00a6\u00a4\u00a6", 0, 4);
- x2s("\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6);
- x2s("\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142", "\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\ [...]
- x2s("\u00a4\u02d8", "\u00a4\u00a4\u00a4\u02d8", 2, 4);
- x2s("\u00a4\u00a4\u00a4\u00a6", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 2, 6);
- // if (Config.VANILLA) x2s("\\xca\\xb8", "\u0118\u00b8", 0, 2);
- x2s(".", "\u00a4\u02d8", 0, 2);
- x2s("..", "\u00a4\u00ab\u00a4\u00ad", 0, 4);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\\w", "\u00a4\u015e", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) ns("\\W", "\u00a4\u02d8");
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("[\\W]", "\u00a4\u00a6$", 2, 3);
- x2s("\\S", "\u00a4\u02dd", 0, 2);
- x2s("\\S", "\u00b4\u00c1", 0, 2);
- x2s("\\b", "\u00b5\u00a4 ", 0, 0);
- x2s("\\b", " \u00a4\u0170", 1, 1);
- x2s("\\B", "\u00a4\u00bb\u00a4\u02dd ", 2, 2);
- x2s("\\B", "\u00a4\u00a6 ", 3, 3);
- x2s("\\B", " \u00a4\u00a4", 0, 0);
- x2s("[\u00a4\u017c\u00a4\u00c1]", "\u00a4\u00c1", 0, 2);
- ns("[\u00a4\u0118\u00a4\u00cb]", "\u00a4\u011a");
- x2s("[\u00a4\u00a6-\u00a4\u015e]", "\u00a4\u00a8", 0, 2);
- ns("[^\u00a4\u00b1]", "\u00a4\u00b1");
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("[\\w]", "\u00a4\u00cd", 0, 2);
- ns("[\\d]", "\u00a4\u0150");
- x2s("[\\D]", "\u00a4\u010e", 0, 2);
- ns("[\\s]", "\u00a4\u017b");
- x2s("[\\S]", "\u00a4\u0158", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("[\\w\\d]", "\u00a4\u010d", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("[\\w\\d]", " \u00a4\u010d", 3, 5);
- ns("\\w\u00b5\u00b4\u013d\u00d6", " \u00b5\u00b4\u013d\u00d6");
- x2s("\u00b5\u00b4\\W\u013d\u00d6", "\u00b5\u00b4 \u013d\u00d6", 0, 5);
- x2s("\u00a4\u02d8.\u00a4\u00a4.\u00a4\u00a6", "\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a6", 0, 10);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s(".\\w\u00a4\u00a6\\W..\u00a4\u013e", "\u00a4\u00a8\u00a4\u00a6\u00a4\u00a6 \u00a4\u00a6\u00a4\u013e\u00a4\u013e", 0, 13);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\\s\\w\u00a4\u0142\u00a4\u0142\u00a4\u0142", " \u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142", 0, 9);
- x2s("\u00a4\u02d8\u00a4\u02d8.\u00a4\u00b1", "\u00a4\u02d8\u00a4\u02d8\u00a4\u00b1\u00a4\u00b1", 0, 8);
- ns(".\u00a4\u00a4", "\u00a4\u00a4\u00a4\u00a8");
- x2s(".\u00a4\u015e", "\u00a4\u015e\u00a4\u015e", 0, 4);
- x2s("^\u00a4\u02d8", "\u00a4\u02d8", 0, 2);
- x2s("^\u00a4\u0155$", "\u00a4\u0155", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("^\\w$", "\u00a4\u00cb", 0, 2);
- x2s("^\\w\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\u00a4\u00b1\u00a4\u0142$", "z\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\u00a4\u00b1\u00a4\u0142", 0, 11);
- x2s("^\\w...\u00a4\u00a6\u00a4\u00a8\u00a4\u015e$", "z\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6\u00a4\u00a8\u00a4\u015e", 0, 13);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\\w\\w\\s\\W\u00a4\u015e\u00a4\u015e\u00a4\u015e\\d", "a\u00a4\u015e \u00a4\u015e\u00a4\u015e\u00a4\u015e4", 0, 12);
- x2s("\\A\u00a4\u017c\u00a4\u00c1\u00a4\u00c4", "\u00a4\u017c\u00a4\u00c1\u00a4\u00c4", 0, 6);
- x2s("\u00a4\u0155\u00a4\u00e1\u00a4\u00e2\\Z", "\u00a4\u0155\u00a4\u00e1\u00a4\u00e2", 0, 6);
- x2s("\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\\z", "\u00a4\u00ab\u00a4\u00ad\u00a4\u017b", 0, 6);
- x2s("\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\\Z", "\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\n", 0, 6);
- x2s("\\G\u00a4\u00dd\u00a4\u00d4", "\u00a4\u00dd\u00a4\u00d4", 0, 4);
- ns("\\G\u00a4\u00a8", "\u00a4\u00a6\u00a4\u00a8\u00a4\u015e");
- ns("\u00a4\u010c\u00a4\u0106\\G", "\u00a4\u010c\u00a4\u0106");
- ns("\u00a4\u0162\u00a4\u00df\\A", "\u00a4\u0162\u00a4\u00df");
- ns("\u00a4\u0162\\A\u00a4\u00df", "\u00a4\u0162\u00a4\u00df");
- x2s("(?=\u00a4\u00bb)\u00a4\u00bb", "\u00a4\u00bb", 0, 2);
- ns("(?=\u00a4\u00a6).", "\u00a4\u00a4");
- x2s("(?!\u00a4\u00a6)\u00a4\u00ab", "\u00a4\u00ab", 0, 2);
- ns("(?!\u00a4\u010c)\u00a4\u02d8", "\u00a4\u010c");
- x2s("(?i:\u00a4\u02d8)", "\u00a4\u02d8", 0, 2);
- x2s("(?i:\u00a4\u00d6\u00a4\u016e)", "\u00a4\u00d6\u00a4\u016e", 0, 4);
- ns("(?i:\u00a4\u00a4)", "\u00a4\u00a6");
- x2s("(?m:\u00a4\u010d.)", "\u00a4\u010d\n", 0, 3);
- x2s("(?m:.\u00a4\u00e1)", "\u00a4\u0162\n\u00a4\u00e1", 2, 5);
- x2s("\u00a4\u02d8?", "", 0, 0);
- x2s("\u0118\u0143?", "\u02db\u02dd", 0, 0);
- x2s("\u0118\u0143?", "\u0118\u0143", 0, 2);
- x2s("\u00ce\u011a*", "", 0, 0);
- x2s("\u00ce\u011a*", "\u00ce\u011a", 0, 2);
- x2s("\u00bb\u0147*", "\u00bb\u0147\u00bb\u0147\u00bb\u0147", 0, 6);
- x2s("\u00c7\u010e*", "\u013d\u017b\u00c7\u010e\u00c7\u010e\u00c7\u010e\u00c7\u010e", 0, 0);
- ns("\u00bb\u0142+", "");
- x2s("\u02db\u010e+", "\u02db\u010e", 0, 2);
- x2s("\u00bb\u0163+", "\u00bb\u0163\u00bb\u0163\u00bb\u0163\u00bb\u0163", 0, 8);
- x2s("\u00a4\u00a8+", "\u00a4\u00a8\u00a4\u00a8\u00a4\u00a6\u00a4\u00a6\u00a4\u00a6", 0, 4);
- x2s("\u00a4\u00a6+", "\u00a4\u015e\u00a4\u00a6\u00a4\u00a6\u00a4\u00a6\u00a4\u00a6", 2, 10);
- x2s(".?", "\u00a4\u017c", 0, 2);
- x2s(".*", "\u00a4\u0143\u00a4\u00d4\u00a4\u00d7\u00a4\u00da", 0, 8);
- x2s(".+", "\u00a4\u00ed", 0, 2);
- x2s(".+", "\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8\u00a4\u00ab\n", 0, 8);
- x2s("\u00a4\u02d8|\u00a4\u00a4", "\u00a4\u02d8", 0, 2);
- x2s("\u00a4\u02d8|\u00a4\u00a4", "\u00a4\u00a4", 0, 2);
- x2s("\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a4\u00a4\u00a6", "\u00a4\u02d8\u00a4\u00a4", 0, 4);
- x2s("\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a4\u00a4\u00a6", "\u00a4\u00a4\u00a4\u00a6", 0, 4);
- x2s("\u00a4\u0148(?:\u00a4\u00ab\u00a4\u00ad|\u00a4\u00ad\u00a4\u017b)", "\u00a4\u0148\u00a4\u00ab\u00a4\u00ad", 0, 6);
- x2s("\u00a4\u0148(?:\u00a4\u00ab\u00a4\u00ad|\u00a4\u00ad\u00a4\u017b)\u00a4\u00b1", "\u00a4\u0148\u00a4\u00ad\u00a4\u017b\u00a4\u00b1", 0, 8);
- x2s("\u00a4\u02d8\u00a4\u00a4|(?:\u00a4\u02d8\u00a4\u00a6|\u00a4\u02d8\u00a4\u0148)", "\u00a4\u02d8\u00a4\u0148", 0, 4);
- x2s("\u00a4\u02d8|\u00a4\u00a4|\u00a4\u00a6", "\u00a4\u00a8\u00a4\u00a6", 2, 4);
- x2s("\u00a4\u02d8|\u00a4\u00a4|\u00a4\u00a6\u00a4\u00a8|\u00a4\u015e\u00a4\u00ab\u00a4\u00ad|\u00a4\u017b|\u00a4\u00b1\u00a4\u0142\u00a4\u00b5|\u00a4\u00b7\u00a4\u0105\u00a4\u00bb|\u00a4\u02dd|\u00a4\u017c\u00a4\u00c1|\u00a4\u00c4\u00a4\u0106\u00a4\u010c\u00a4\u0118\u00a4\u00cb|\u00a4\u011a\u00a4\u00cd", "\u00a4\u00b7\u00a4\u0105\u00a4\u00bb", 0, 6);
- ns("\u00a4\u02d8|\u00a4\u00a4|\u00a4\u00a6\u00a4\u00a8|\u00a4\u015e\u00a4\u00ab\u00a4\u00ad|\u00a4\u017b|\u00a4\u00b1\u00a4\u0142\u00a4\u00b5|\u00a4\u00b7\u00a4\u0105\u00a4\u00bb|\u00a4\u02dd|\u00a4\u017c\u00a4\u00c1|\u00a4\u00c4\u00a4\u0106\u00a4\u010c\u00a4\u0118\u00a4\u00cb|\u00a4\u011a\u00a4\u00cd", "\u00a4\u0105\u00a4\u00bb");
- x2s("\u00a4\u02d8|^\u00a4\u010f", "\u00a4\u00d6\u00a4\u02d8", 2, 4);
- x2s("\u00a4\u02d8|^\u00a4\u0148", "\u00a4\u0148\u00a4\u02d8", 0, 2);
- x2s("\u00b5\u00b4|\\G\u013d\u00d6", "\u00a4\u00b1\u013d\u00d6\u00b5\u00b4", 4, 6);
- x2s("\u00b5\u00b4|\\G\u013d\u00d6", "\u013d\u00d6\u00b5\u00b4", 0, 2);
- x2s("\u00b5\u00b4|\\A\u013d\u00d6", "b\u013d\u00d6\u00b5\u00b4", 3, 5);
- x2s("\u00b5\u00b4|\\A\u013d\u00d6", "\u013d\u00d6", 0, 2);
- x2s("\u00b5\u00b4|\u013d\u00d6\\Z", "\u013d\u00d6\u00b5\u00b4", 2, 4);
- x2s("\u00b5\u00b4|\u013d\u00d6\\Z", "\u013d\u00d6", 0, 2);
- x2s("\u00b5\u00b4|\u013d\u00d6\\Z", "\u013d\u00d6\n", 0, 2);
- x2s("\u00b5\u00b4|\u013d\u00d6\\z", "\u013d\u00d6\u00b5\u00b4", 2, 4);
- x2s("\u00b5\u00b4|\u013d\u00d6\\z", "\u013d\u00d6", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\\w|\\s", "\u00a4\u015e", 0, 2);
- x2s("\\w|%", "%\u00a4\u015e", 0, 1);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\\w|[&$]", "\u00a4\u00a6&", 0, 2);
- x2s("[\u00a4\u00a4-\u00a4\u00b1]", "\u00a4\u00a6", 0, 2);
- x2s("[\u00a4\u00a4-\u00a4\u00b1]|[^\u00a4\u00ab-\u00a4\u0142]", "\u00a4\u02d8", 0, 2);
- x2s("[\u00a4\u00a4-\u00a4\u00b1]|[^\u00a4\u00ab-\u00a4\u0142]", "\u00a4\u00ab", 0, 2);
- x2s("[^\u00a4\u02d8]", "\n", 0, 1);
- x2s("(?:\u00a4\u02d8|[\u00a4\u00a6-\u00a4\u00ad])|\u00a4\u00a4\u00a4\u0148", "\u00a4\u00a6\u00a4\u0148", 0, 2);
- x2s("(?:\u00a4\u02d8|[\u00a4\u00a6-\u00a4\u00ad])|\u00a4\u00a4\u00a4\u0148", "\u00a4\u00a4\u00a4\u0148", 0, 4);
- x2s("\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6|(?=\u00a4\u00b1\u00a4\u00b1)..\u00a4\u0170", "\u00a4\u00b1\u00a4\u00b1\u00a4\u0170", 0, 6);
- x2s("\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6|(?!\u00a4\u00b1\u00a4\u00b1)..\u00a4\u0170", "\u00a4\u02d8\u00a4\u00a4\u00a4\u0170", 0, 6);
- // if (Config.VANILLA) x2s("(?=\u00a4\u0148\u00a4\u02d8)..\u00a4\u02d8|(?=\u00a4\u0148\u00a4\u0148)..\u00a4\u02d8", "\u00a4\u0148\u00a4\u0148\u00a4\u02d8", 0, 6);
- x2s("(?<=\u00a4\u02d8|\u00a4\u00a4\u00a4\u00a6)\u00a4\u00a4", "\u00a4\u00a4\u00a4\u00a6\u00a4\u00a4", 4, 6);
- ns("(?>\u00a4\u02d8|\u00a4\u02d8\u00a4\u00a4\u00a4\u00a8)\u00a4\u00a6", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a8\u00a4\u00a6");
- x2s("(?>\u00a4\u02d8\u00a4\u00a4\u00a4\u00a8|\u00a4\u02d8)\u00a4\u00a6", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a8\u00a4\u00a6", 0, 8);
- x2s("\u00a4\u02d8?|\u00a4\u00a4", "\u00a4\u02d8", 0, 2);
- x2s("\u00a4\u02d8?|\u00a4\u00a4", "\u00a4\u00a4", 0, 0);
- x2s("\u00a4\u02d8?|\u00a4\u00a4", "", 0, 0);
- x2s("\u00a4\u02d8*|\u00a4\u00a4", "\u00a4\u02d8\u00a4\u02d8", 0, 4);
- x2s("\u00a4\u02d8*|\u00a4\u00a4*", "\u00a4\u00a4\u00a4\u02d8", 0, 0);
- x2s("\u00a4\u02d8*|\u00a4\u00a4*", "\u00a4\u02d8\u00a4\u00a4", 0, 2);
- x2s("[a\u00a4\u02d8]*|\u00a4\u00a4*", "a\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 3);
- x2s("\u00a4\u02d8+|\u00a4\u00a4*", "", 0, 0);
- x2s("\u00a4\u02d8+|\u00a4\u00a4*", "\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 6);
- x2s("\u00a4\u02d8+|\u00a4\u00a4*", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 2);
- x2s("\u00a4\u02d8+|\u00a4\u00a4*", "a\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 0);
- ns("\u00a4\u02d8+|\u00a4\u00a4+", "");
- x2s("(\u00a4\u02d8|\u00a4\u00a4)?", "\u00a4\u00a4", 0, 2);
- x2s("(\u00a4\u02d8|\u00a4\u00a4)*", "\u00a4\u00a4\u00a4\u02d8", 0, 4);
- x2s("(\u00a4\u02d8|\u00a4\u00a4)+", "\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4", 0, 6);
- x2s("(\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a6\u00a4\u02d8)+", "\u00a4\u00a6\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8", 0, 8);
- x2s("(\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a6\u00a4\u00a8)+", "\u00a4\u00a6\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8", 4, 12);
- x2s("(\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a6\u00a4\u02d8)+", "\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u02d8", 2, 10);
- x2s("(\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a6\u00a4\u02d8)+", "\u00a4\u02d8\u00a4\u00a4\u00a4\u0148\u00a4\u00a6\u00a4\u02d8", 0, 4);
- x2s("(\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a6\u00a4\u02d8)+", "$$zzzz\u00a4\u02d8\u00a4\u00a4\u00a4\u0148\u00a4\u00a6\u00a4\u02d8", 6, 10);
- x2s("(\u00a4\u02d8|\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4)+", "\u00a4\u02d8\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4\u00a4\u02d8", 0, 10);
- x2s("(\u00a4\u02d8|\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4)+", "\u00a4\u00a4\u00a4\u02d8", 2, 4);
- x2s("(\u00a4\u02d8|\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4)+", "\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u02d8", 2, 8);
- x2s("(?:\u00a4\u02d8|\u00a4\u00a4)(?:\u00a4\u02d8|\u00a4\u00a4)", "\u00a4\u02d8\u00a4\u00a4", 0, 4);
- x2s("(?:\u00a4\u02d8*|\u00a4\u00a4*)(?:\u00a4\u02d8*|\u00a4\u00a4*)", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 6);
- x2s("(?:\u00a4\u02d8*|\u00a4\u00a4*)(?:\u00a4\u02d8+|\u00a4\u00a4+)", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 12);
- x2s("(?:\u00a4\u02d8+|\u00a4\u00a4+){2}", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 12);
- x2s("(?:\u00a4\u02d8+|\u00a4\u00a4+){1,2}", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 12);
- x2s("(?:\u00a4\u02d8+|\\A\u00a4\u00a4*)\u00a4\u00a6\u00a4\u00a6", "\u00a4\u00a6\u00a4\u00a6", 0, 4);
- ns("(?:\u00a4\u02d8+|\\A\u00a4\u00a4*)\u00a4\u00a6\u00a4\u00a6", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6");
- x2s("(?:^\u00a4\u02d8+|\u00a4\u00a4+)*\u00a4\u00a6", "\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 12, 16);
- x2s("(?:^\u00a4\u02d8+|\u00a4\u00a4+)*\u00a4\u00a6", "\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a6", 0, 14);
- x2s("\u00a4\u00a6{0,}", "\u00a4\u00a6\u00a4\u00a6\u00a4\u00a6\u00a4\u00a6", 0, 8);
- x2s("\u00a4\u02d8|(?i)c", "C", 0, 1);
- x2s("(?i)c|\u00a4\u02d8", "C", 0, 1);
- x2s("(?i:\u00a4\u02d8)|a", "a", 0, 1);
- ns("(?i:\u00a4\u02d8)|a", "A");
- x2s("[\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]?", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 2);
- x2s("[\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]*", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6);
- x2s("[^\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]*", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 0);
- ns("[^\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]+", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6");
- x2s("\u00a4\u02d8??", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8", 0, 0);
- x2s("\u00a4\u00a4\u00a4\u02d8??\u00a4\u00a4", "\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4", 0, 6);
- x2s("\u00a4\u02d8*?", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8", 0, 0);
- x2s("\u00a4\u00a4\u00a4\u02d8*?", "\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8", 0, 2);
- x2s("\u00a4\u00a4\u00a4\u02d8*?\u00a4\u00a4", "\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4", 0, 8);
- x2s("\u00a4\u02d8+?", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8", 0, 2);
- x2s("\u00a4\u00a4\u00a4\u02d8+?", "\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8", 0, 4);
- x2s("\u00a4\u00a4\u00a4\u02d8+?\u00a4\u00a4", "\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4", 0, 8);
- x2s("(?:\u0139\u00b7?)??", "\u0139\u00b7", 0, 0);
- x2s("(?:\u0139\u00b7??)?", "\u0139\u00b7", 0, 0);
- x2s("(?:\u011a\u00b4?)+?", "\u011a\u00b4\u011a\u00b4\u011a\u00b4", 0, 2);
- x2s("(?:\u00c9\u00f7+)??", "\u00c9\u00f7\u00c9\u00f7\u00c9\u00f7", 0, 0);
- x2s("(?:\u0154\u0103+)??\u00c1\u00fa", "\u0154\u0103\u0154\u0103\u0154\u0103\u00c1\u00fa", 0, 8);
- x2s("(?:\u00a4\u02d8\u00a4\u00a4)?{2}", "", 0, 0);
- x2s("(?:\u00b5\u00b4\u013d\u00d6)?{2}", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4", 0, 8);
- x2s("(?:\u00b5\u00b4\u013d\u00d6)*{0}", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4", 0, 0);
- x2s("(?:\u00b5\u00b4\u013d\u00d6){3,}", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6", 0, 16);
- ns("(?:\u00b5\u00b4\u013d\u00d6){3,}", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6");
- x2s("(?:\u00b5\u00b4\u013d\u00d6){2,4}", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6", 0, 12);
- x2s("(?:\u00b5\u00b4\u013d\u00d6){2,4}", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6", 0, 16);
- x2s("(?:\u00b5\u00b4\u013d\u00d6){2,4}?", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6", 0, 8);
- x2s("(?:\u00b5\u00b4\u013d\u00d6){,}", "\u00b5\u00b4\u013d\u00d6{,}", 0, 7);
- x2s("(?:\u00a4\u00ab\u00a4\u00ad\u00a4\u017b)+?{2}", "\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\u00a4\u00ab\u00a4\u00ad\u00a4\u017b", 0, 12);
- x3s("(\u02db\u0110)", "\u02db\u0110", 0, 2, 1);
- x3s("(\u02db\u0110\u017c\u013a)", "\u02db\u0110\u017c\u013a", 0, 4, 1);
- x2s("((\u00bb\u0163\u00b4\u00d6))", "\u00bb\u0163\u00b4\u00d6", 0, 4);
- x3s("((\u00c9\u00f7\u017c\u013a))", "\u00c9\u00f7\u017c\u013a", 0, 4, 1);
- x3s("((\u015f\u0148\u0106\u00fc))", "\u015f\u0148\u0106\u00fc", 0, 4, 2);
- x3s("((((((((((((((((((((\u00ce\u011a\u00bb\u0147))))))))))))))))))))", "\u00ce\u011a\u00bb\u0147", 0, 4, 20);
- x3s("(\u00a4\u02d8\u00a4\u00a4)(\u00a4\u00a6\u00a4\u00a8)", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8", 0, 4, 1);
- x3s("(\u00a4\u02d8\u00a4\u00a4)(\u00a4\u00a6\u00a4\u00a8)", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8", 4, 8, 2);
- x3s("()(\u00a4\u02d8)\u00a4\u00a4\u00a4\u00a6(\u00a4\u00a8\u00a4\u015e\u00a4\u00ab)\u00a4\u00ad\u00a4\u017b\u00a4\u00b1\u00a4\u0142", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8\u00a4\u015e\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\u00a4\u00b1\u00a4\u0142", 6, 12, 3);
- x3s("(()(\u00a4\u02d8)\u00a4\u00a4\u00a4\u00a6(\u00a4\u00a8\u00a4\u015e\u00a4\u00ab)\u00a4\u00ad\u00a4\u017b\u00a4\u00b1\u00a4\u0142)", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8\u00a4\u015e\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\u00a4\u00b1\u00a4\u0142", 6, 12, 4);
- x3s(".*(\u0104\u0150\u0104\u00a9)\u0104\u00f3\u02c7\u00a6\u0104\u0162(\u0104\u00f3()\u0104\u00b7\u0104\u013a\u0104\u017c)\u0104\u00a4\u0104\u00f3", "\u0104\u0150\u0104\u00a9\u0104\u00f3\u02c7\u00a6\u0104\u0162\u0104\u00f3\u0104\u00b7\u0104\u013a\u0104\u017c\u0104\u00a4\u0104\u00f3", 10, 18, 2);
- x2s("(^\u00a4\u02d8)", "\u00a4\u02d8", 0, 2);
- x3s("(\u00a4\u02d8)|(\u00a4\u02d8)", "\u00a4\u00a4\u00a4\u02d8", 2, 4, 1);
- x3s("(^\u00a4\u02d8)|(\u00a4\u02d8)", "\u00a4\u00a4\u00a4\u02d8", 2, 4, 2);
- x3s("(\u00a4\u02d8?)", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8", 0, 2, 1);
- x3s("(\u00a4\u0162*)", "\u00a4\u0162\u00a4\u0162\u00a4\u0162", 0, 6, 1);
- x3s("(\u00a4\u010c*)", "", 0, 0, 1);
- x3s("(\u00a4\u00eb+)", "\u00a4\u00eb\u00a4\u00eb\u00a4\u00eb\u00a4\u00eb\u00a4\u00eb\u00a4\u00eb\u00a4\u00eb", 0, 14, 1);
- x3s("(\u00a4\u0150+|\u00a4\u0158*)", "\u00a4\u0150\u00a4\u0150\u00a4\u0150\u00a4\u0158\u00a4\u0158", 0, 6, 1);
- x3s("(\u00a4\u02d8+|\u00a4\u00a4?)", "\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8", 0, 2, 1);
- x3s("(\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6)?", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6, 1);
- x3s("(\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6)*", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6, 1);
- x3s("(\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6)+", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6, 1);
- x3s("(\u00a4\u00b5\u00a4\u00b7\u00a4\u0105|\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6)+", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6, 1);
- x3s("([\u00a4\u0118\u00a4\u00cb\u00a4\u011a][\u00a4\u00ab\u00a4\u00ad\u00a4\u017b]|\u00a4\u00ab\u00a4\u00ad\u00a4\u017b)+", "\u00a4\u00ab\u00a4\u00ad\u00a4\u017b", 0, 6, 1);
- x3s("((?i:\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6))", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6, 1);
- x3s("((?m:\u00a4\u02d8.\u00a4\u00a6))", "\u00a4\u02d8\n\u00a4\u00a6", 0, 5, 1);
- x3s("((?=\u00a4\u02d8\u00a4\u00f3)\u00a4\u02d8)", "\u00a4\u02d8\u00a4\u00f3\u00a4\u00a4", 0, 2, 1);
- x3s("\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6|(.\u00a4\u02d8\u00a4\u00a4\u00a4\u00a8)", "\u00a4\u00f3\u00a4\u02d8\u00a4\u00a4\u00a4\u00a8", 0, 8, 1);
- x3s("\u00a4\u02d8*(.)", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00f3", 8, 10, 1);
- x3s("\u00a4\u02d8*?(.)", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00f3", 0, 2, 1);
- x3s("\u00a4\u02d8*?(\u00a4\u00f3)", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00f3", 8, 10, 1);
- x3s("[\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8]\u00a4\u02d8*(.)", "\u00a4\u00a8\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00f3", 10, 12, 1);
- x3s("(\\A\u00a4\u00a4\u00a4\u00a4)\u00a4\u00a6\u00a4\u00a6", "\u00a4\u00a4\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6", 0, 4, 1);
- ns("(\\A\u00a4\u00a4\u00a4\u00a4)\u00a4\u00a6\u00a4\u00a6", "\u00a4\u00f3\u00a4\u00a4\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6");
- x3s("(^\u00a4\u00a4\u00a4\u00a4)\u00a4\u00a6\u00a4\u00a6", "\u00a4\u00a4\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6", 0, 4, 1);
- ns("(^\u00a4\u00a4\u00a4\u00a4)\u00a4\u00a6\u00a4\u00a6", "\u00a4\u00f3\u00a4\u00a4\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6");
- x3s("\u00a4\u00ed\u00a4\u00ed(\u00a4\u00eb\u00a4\u00eb$)", "\u00a4\u00ed\u00a4\u00ed\u00a4\u00eb\u00a4\u00eb", 4, 8, 1);
- ns("\u00a4\u00ed\u00a4\u00ed(\u00a4\u00eb\u00a4\u00eb$)", "\u00a4\u00ed\u00a4\u00ed\u00a4\u00eb\u00a4\u00eb\u00a4\u00eb");
- x2s("(\u011a\u00b5)\\1", "\u011a\u00b5\u011a\u00b5", 0, 4);
- ns("(\u011a\u00b5)\\1", "\u011a\u00b5\u00c9\u0111");
- x2s("(\u00b6\u0151?)\\1", "\u00b6\u0151\u00b6\u0151", 0, 4);
- x2s("(\u00b6\u0151??)\\1", "\u00b6\u0151\u00b6\u0151", 0, 0);
- x2s("(\u00b6\u0151*)\\1", "\u00b6\u0151\u00b6\u0151\u00b6\u0151\u00b6\u0151\u00b6\u0151", 0, 8);
- x3s("(\u00b6\u0151*)\\1", "\u00b6\u0151\u00b6\u0151\u00b6\u0151\u00b6\u0151\u00b6\u0151", 0, 4, 1);
- x2s("\u00a4\u02d8(\u00a4\u00a4*)\\1", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 10);
- x2s("\u00a4\u02d8(\u00a4\u00a4*)\\1", "\u00a4\u02d8\u00a4\u00a4", 0, 2);
- x2s("(\u00a4\u02d8*)(\u00a4\u00a4*)\\1\\2", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4", 0, 20);
- x2s("(\u00a4\u02d8*)(\u00a4\u00a4*)\\2", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 14);
- x3s("(\u00a4\u02d8*)(\u00a4\u00a4*)\\2", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 6, 10, 2);
- x2s("(((((((\u00a4\u00dd*)\u00a4\u00da))))))\u00a4\u00d4\\7", "\u00a4\u00dd\u00a4\u00dd\u00a4\u00dd\u00a4\u00da\u00a4\u00d4\u00a4\u00dd\u00a4\u00dd\u00a4\u00dd", 0, 16);
- x3s("(((((((\u00a4\u00dd*)\u00a4\u00da))))))\u00a4\u00d4\\7", "\u00a4\u00dd\u00a4\u00dd\u00a4\u00dd\u00a4\u00da\u00a4\u00d4\u00a4\u00dd\u00a4\u00dd\u00a4\u00dd", 0, 6, 7);
- x2s("(\u00a4\u010e)(\u00a4\u0147)(\u00a4\u0150)\\2\\1\\3", "\u00a4\u010e\u00a4\u0147\u00a4\u0150\u00a4\u0147\u00a4\u010e\u00a4\u0150", 0, 12);
- x2s("([\u00a4\u00ad-\u00a4\u00b1])\\1", "\u00a4\u017b\u00a4\u017b", 0, 4);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("(\\w\\d\\s)\\1", "\u00a4\u02d85 \u00a4\u02d85 ", 0, 8);
- ns("(\\w\\d\\s)\\1", "\u00a4\u02d85 \u00a4\u02d85");
- x2s("(\u0102\u017b\u02c7\u00a9|[\u00a4\u02d8-\u00a4\u00a6]{3})\\1", "\u0102\u017b\u02c7\u00a9\u0102\u017b\u02c7\u00a9", 0, 8);
- x2s("...(\u0102\u017b\u02c7\u00a9|[\u00a4\u02d8-\u00a4\u00a6]{3})\\1", "\u00a4\u02d8a\u00a4\u02d8\u0102\u017b\u02c7\u00a9\u0102\u017b\u02c7\u00a9", 0, 13);
- x2s("(\u0102\u017b\u02c7\u00a9|[\u00a4\u02d8-\u00a4\u00a6]{3})\\1", "\u00a4\u00a6\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6\u00a4\u00a4\u00a4\u00a6", 0, 12);
- x2s("(^\u00a4\u0142)\\1", "\u00a4\u0142\u00a4\u0142", 0, 4);
- ns("(^\u00a4\u0155)\\1", "\u00a4\u00e1\u00a4\u0155\u00a4\u0155");
- ns("(\u00a4\u02d8$)\\1", "\u00a4\u02d8\u00a4\u02d8");
- ns("(\u00a4\u02d8\u00a4\u00a4\\Z)\\1", "\u00a4\u02d8\u00a4\u00a4");
- x2s("(\u00a4\u02d8*\\Z)\\1", "\u00a4\u02d8", 2, 2);
- x2s(".(\u00a4\u02d8*\\Z)\\1", "\u00a4\u00a4\u00a4\u02d8", 2, 4);
- x3s("(.(\u00a4\u00e4\u00a4\u00a4\u00a4\u0107)\\2)", "z\u00a4\u00e4\u00a4\u00a4\u00a4\u0107\u00a4\u00e4\u00a4\u00a4\u00a4\u0107", 0, 13, 1);
- x3s("(.(..\\d.)\\2)", "\u00a4\u02d812341234", 0, 10, 1);
- x2s("((?i:\u00a4\u02d8v\u00a4\u015f))\\1", "\u00a4\u02d8v\u00a4\u015f\u00a4\u02d8v\u00a4\u015f", 0, 10);
- x2s("(?<\u00b6\u0148\u00a4\u00ab>\u0118\u0143|\\(\\g<\u00b6\u0148\u00a4\u00ab>\\))", "((((((\u0118\u0143))))))", 0, 14);
- x2s("\\A(?:\\g<\u00b0\u00a4_1>|\\g<\u00b1\u013e_2>|\\z\u02dd\u015e\u00ce\u00bb (?<\u00b0\u00a4_1>\u00b4\u0143|\u013d\u00ab\\g<\u00b1\u013e_2>\u013d\u00ab)(?<\u00b1\u013e_2>\u015f\u00df|\u0118\u00ee\u00bb\u00a7\\g<\u00b0\u00a4_1>\u0118\u00ee\u00bb\u00a7))$", "\u0118\u00ee\u00bb\u00a7\u013d\u00ab\u0118\u00ee\u00bb\u00a7\u013d\u00ab\u015f\u00df\u013d\u00ab\u0118\u00ee\u00bb\u00a7\u013d\u00ab\u0118\u00ee\u00bb\u00a7", 0, 26);
- x2s("[[\u00a4\u0147\u00a4\u0150]]", "\u00a4\u0150", 0, 2);
- x2s("[[\u00a4\u00a4\u00a4\u015e\u00a4\u00a6]\u00a4\u00ab]", "\u00a4\u00ab", 0, 2);
- ns("[[^\u00a4\u02d8]]", "\u00a4\u02d8");
- ns("[^[\u00a4\u02d8]]", "\u00a4\u02d8");
- x2s("[^[^\u00a4\u02d8]]", "\u00a4\u02d8", 0, 2);
- x2s("[[\u00a4\u00ab\u00a4\u00ad\u00a4\u017b]&&\u00a4\u00ad\u00a4\u017b]", "\u00a4\u017b", 0, 2);
- ns("[[\u00a4\u00ab\u00a4\u00ad\u00a4\u017b]&&\u00a4\u00ad\u00a4\u017b]", "\u00a4\u00ab");
- ns("[[\u00a4\u00ab\u00a4\u00ad\u00a4\u017b]&&\u00a4\u00ad\u00a4\u017b]", "\u00a4\u00b1");
- x2s("[\u00a4\u02d8-\u00a4\u00f3&&\u00a4\u00a4-\u00a4\u0148&&\u00a4\u00a6-\u00a4\u0144]", "\u00a4\u0144", 0, 2);
- ns("[^\u00a4\u02d8-\u00a4\u00f3&&\u00a4\u00a4-\u00a4\u0148&&\u00a4\u00a6-\u00a4\u0144]", "\u00a4\u0144");
- x2s("[[^\u00a4\u02d8&&\u00a4\u02d8]&&\u00a4\u02d8-\u00a4\u00f3]", "\u00a4\u00a4", 0, 2);
- ns("[[^\u00a4\u02d8&&\u00a4\u02d8]&&\u00a4\u02d8-\u00a4\u00f3]", "\u00a4\u02d8");
- x2s("[[^\u00a4\u02d8-\u00a4\u00f3&&\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]&&[^\u00a4\u00a6-\u00a4\u00ab]]", "\u00a4\u00ad", 0, 2);
- ns("[[^\u00a4\u02d8-\u00a4\u00f3&&\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]&&[^\u00a4\u00a6-\u00a4\u00ab]]", "\u00a4\u00a4");
- x2s("[^[^\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]]", "\u00a4\u00a6", 0, 2);
- x2s("[^[^\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]]", "\u00a4\u00a8", 0, 2);
- ns("[^[^\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]]", "\u00a4\u00ab");
- x2s("[\u00a4\u02d8-&&-\u00a4\u02d8]", "-", 0, 1);
- x2s("[^[^a-z\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^bcdefg\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]q-w]", "\u00a4\u00a8", 0, 2);
- x2s("[^[^a-z\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^bcdefg\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]g-w]", "f", 0, 1);
- x2s("[^[^a-z\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^bcdefg\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]g-w]", "g", 0, 1);
- ns("[^[^a-z\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^bcdefg\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]g-w]", "2");
- x2s("a<b>\u0104\u0110\u02c7\u013d\u0104\u00b8\u0104\u00e7\u0104\u00f3\u00a4\u00ce\u0104\u0154\u0104\u00a6\u0104\u00f3\u0104\u00ed\u02c7\u013d\u0104\u00c9<\\/b>", "a<b>\u0104\u0110\u02c7\u013d\u0104\u00b8\u0104\u00e7\u0104\u00f3\u00a4\u00ce\u0104\u0154\u0104\u00a6\u0104\u00f3\u0104\u00ed\u02c7\u013d\u0104\u00c9</b>", 0, 32);
- x2s(".<b>\u0104\u0110\u02c7\u013d\u0104\u00b8\u0104\u00e7\u0104\u00f3\u00a4\u00ce\u0104\u0154\u0104\u00a6\u0104\u00f3\u0104\u00ed\u02c7\u013d\u0104\u00c9<\\/b>", "a<b>\u0104\u0110\u02c7\u013d\u0104\u00b8\u0104\u00e7\u0104\u00f3\u00a4\u00ce\u0104\u0154\u0104\u00a6\u0104\u00f3\u0104\u00ed\u02c7\u013d\u0104\u00c9</b>", 0, 32);
- }
-
- public static void main(String[] args) throws Throwable{
- new TestC().run();
- }
-}
+/*
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is furnished to do
+ * so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+package org.joni.test;
+
+import org.jcodings.Encoding;
+import org.jcodings.specific.EUCJPEncoding;
+import org.joni.Option;
+import org.joni.Syntax;
+
+public class TestC extends Test {
+ @Override
+ public int option() {
+ return Option.DEFAULT;
+ }
+ @Override
+ public Encoding encoding() {
+ return EUCJPEncoding.INSTANCE;
+ }
+ @Override
+ public String testEncoding() {
+ return "cp1250";
+ }
+ @Override
+ public Syntax syntax() {
+ return Syntax.DEFAULT;
+ }
+ @Override
+ public void test() throws Exception {
+ x2s("", "", 0, 0);
+ x2s("^", "", 0, 0);
+ x2s("$", "", 0, 0);
+ x2s("\\G", "", 0, 0);
+ x2s("\\A", "", 0, 0);
+ x2s("\\Z", "", 0, 0);
+ x2s("\\z", "", 0, 0);
+ x2s("^$", "", 0, 0);
+ x2s("\\ca", "\001", 0, 1);
+ x2s("\\C-b", "\002", 0, 1);
+ x2s("\\c\\\\", "\034", 0, 1);
+ x2s("q[\\c\\\\]", "q\034", 0, 2);
+ x2s("", "a", 0, 0);
+ x2s("a", "a", 0, 1);
+ x2s("\\x61", "a", 0, 1);
+ x2s("aa", "aa", 0, 2);
+ x2s("aaa", "aaa", 0, 3);
+ x2s("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 0, 35);
+ x2s("ab", "ab", 0, 2);
+ x2s("b", "ab", 1, 2);
+ x2s("bc", "abc", 1, 3);
+ x2s("(?i:#RET#)", "#INS##RET#", 5, 10);
+ x2s("\\17", "\017", 0, 1);
+ x2s("\\x1f", "\u001f", 0, 1);
+ x2s("a(?#....\\\\JJJJ)b", "ab", 0, 2);
+ x2s("(?x) G (o O(?-x)oO) g L", "GoOoOgLe", 0, 7);
+ x2s(".", "a", 0, 1);
+ ns(".", "");
+ x2s("..", "ab", 0, 2);
+ x2s("\\w", "e", 0, 1);
+ ns("\\W", "e");
+ x2s("\\s", " ", 0, 1);
+ x2s("\\S", "b", 0, 1);
+ x2s("\\d", "4", 0, 1);
+ ns("\\D", "4");
+ x2s("\\b", "z ", 0, 0);
+ x2s("\\b", " z", 1, 1);
+ x2s("\\B", "zz ", 1, 1);
+ x2s("\\B", "z ", 2, 2);
+ x2s("\\B", " z", 0, 0);
+ x2s("[ab]", "b", 0, 1);
+ ns("[ab]", "c");
+ x2s("[a-z]", "t", 0, 1);
+ ns("[^a]", "a");
+ x2s("[^a]", "\n", 0, 1);
+ x2s("[]]", "]", 0, 1);
+ ns("[^]]", "]");
+ x2s("[\\^]+", "0^^1", 1, 3);
+ x2s("[b-]", "b", 0, 1);
+ x2s("[b-]", "-", 0, 1);
+ x2s("[\\w]", "z", 0, 1);
+ ns("[\\w]", " ");
+ x2s("[\\W]", "b$", 1, 2);
+ x2s("[\\d]", "5", 0, 1);
+ ns("[\\d]", "e");
+ x2s("[\\D]", "t", 0, 1);
+ ns("[\\D]", "3");
+ x2s("[\\s]", " ", 0, 1);
+ ns("[\\s]", "a");
+ x2s("[\\S]", "b", 0, 1);
+ ns("[\\S]", " ");
+ x2s("[\\w\\d]", "2", 0, 1);
+ ns("[\\w\\d]", " ");
+ x2s("[[:upper:]]", "B", 0, 1);
+ x2s("[*[:xdigit:]+]", "+", 0, 1);
+ x2s("[*[:xdigit:]+]", "GHIKK-9+*", 6, 7);
+ x2s("[*[:xdigit:]+]", "-@^+", 3, 4);
+ ns("[[:upper]]", "A");
+ x2s("[[:upper]]", ":", 0, 1);
+ x2s("[\\044-\\047]", "\046", 0, 1);
+ x2s("[\\x5a-\\x5c]", "\u005b", 0, 1);
+ x2s("[\\x6A-\\x6D]", "\u006c", 0, 1);
+ ns("[\\x6A-\\x6D]", "\u006e");
+ ns("^[0-9A-F]+ 0+ UNDEF ", "75F 00000000 SECT14A notype () External | _rb_apply");
+ x2s("[\\[]", "[", 0, 1);
+ x2s("[\\]]", "]", 0, 1);
+ x2s("[&]", "&", 0, 1);
+ x2s("[[ab]]", "b", 0, 1);
+ x2s("[[ab]c]", "c", 0, 1);
+ ns("[[^a]]", "a");
+ ns("[^[a]]", "a");
+ x2s("[[ab]&&bc]", "b", 0, 1);
+ ns("[[ab]&&bc]", "a");
+ ns("[[ab]&&bc]", "c");
+ x2s("[a-z&&b-y&&c-x]", "w", 0, 1);
+ ns("[^a-z&&b-y&&c-x]", "w");
+ x2s("[[^a&&a]&&a-z]", "b", 0, 1);
+ ns("[[^a&&a]&&a-z]", "a");
+ x2s("[[^a-z&&bcdef]&&[^c-g]]", "h", 0, 1);
+ ns("[[^a-z&&bcdef]&&[^c-g]]", "c");
+ x2s("[^[^abc]&&[^cde]]", "c", 0, 1);
+ x2s("[^[^abc]&&[^cde]]", "e", 0, 1);
+ ns("[^[^abc]&&[^cde]]", "f");
+ x2s("[a-&&-a]", "-", 0, 1);
+ ns("[a\\-&&\\-a]", "&");
+ ns("\\wabc", " abc");
+ x2s("a\\Wbc", "a bc", 0, 4);
+ x2s("a.b.c", "aabbc", 0, 5);
+ x2s(".\\wb\\W..c", "abb bcc", 0, 7);
+ x2s("\\s\\wzzz", " zzzz", 0, 5);
+ x2s("aa.b", "aabb", 0, 4);
+ ns(".a", "ab");
+ x2s(".a", "aa", 0, 2);
+ x2s("^a", "a", 0, 1);
+ x2s("^a$", "a", 0, 1);
+ x2s("^\\w$", "a", 0, 1);
+ ns("^\\w$", " ");
+ x2s("^\\wab$", "zab", 0, 3);
+ x2s("^\\wabcdef$", "zabcdef", 0, 7);
+ x2s("^\\w...def$", "zabcdef", 0, 7);
+ x2s("\\w\\w\\s\\Waaa\\d", "aa aaa4", 0, 8);
+ x2s("\\A\\Z", "", 0, 0);
+ x2s("\\Axyz", "xyz", 0, 3);
+ x2s("xyz\\Z", "xyz", 0, 3);
+ x2s("xyz\\z", "xyz", 0, 3);
+ x2s("a\\Z", "a", 0, 1);
+ x2s("\\Gaz", "az", 0, 2);
+ ns("\\Gz", "bza");
+ ns("az\\G", "az");
+ ns("az\\A", "az");
+ ns("a\\Az", "az");
+ x2s("\\^\\$", "^$", 0, 2);
+ x2s("^x?y", "xy", 0, 2);
+ x2s("^(x?y)", "xy", 0, 2);
+ x2s("\\w", "_", 0, 1);
+ ns("\\W", "_");
+ x2s("(?=z)z", "z", 0, 1);
+ ns("(?=z).", "a");
+ x2s("(?!z)a", "a", 0, 1);
+ ns("(?!z)a", "z");
+ x2s("(?i:a)", "a", 0, 1);
+ x2s("(?i:a)", "A", 0, 1);
+ x2s("(?i:A)", "a", 0, 1);
+ ns("(?i:A)", "b");
+ x2s("(?i:[A-Z])", "a", 0, 1);
+ x2s("(?i:[f-m])", "H", 0, 1);
+ x2s("(?i:[f-m])", "h", 0, 1);
+ ns("(?i:[f-m])", "e");
+ x2s("(?i:[A-c])", "D", 0, 1);
+ ns("(?i:[^a-z])", "A");
+ ns("(?i:[^a-z])", "a");
+ x2s("(?i:[!-k])", "Z", 0, 1);
+ x2s("(?i:[!-k])", "7", 0, 1);
+ x2s("(?i:[T-}])", "b", 0, 1);
+ x2s("(?i:[T-}])", "{", 0, 1);
+ x2s("(?i:\\?a)", "?A", 0, 2);
+ x2s("(?i:\\*A)", "*a", 0, 2);
+ ns(".", "\n");
+ x2s("(?m:.)", "\n", 0, 1);
+ x2s("(?m:a.)", "a\n", 0, 2);
+ x2s("(?m:.b)", "a\nb", 1, 3);
+ x2s(".*abc", "dddabdd\nddabc", 8, 13);
+ x2s("(?m:.*abc)", "dddabddabc", 0, 10);
+ ns("(?i)(?-i)a", "A");
+ ns("(?i)(?-i:a)", "A");
+ x2s("a?", "", 0, 0);
+ x2s("a?", "b", 0, 0);
+ x2s("a?", "a", 0, 1);
+ x2s("a*", "", 0, 0);
+ x2s("a*", "a", 0, 1);
+ x2s("a*", "aaa", 0, 3);
+ x2s("a*", "baaaa", 0, 0);
+ ns("a+", "");
+ x2s("a+", "a", 0, 1);
+ x2s("a+", "aaaa", 0, 4);
+ x2s("a+", "aabbb", 0, 2);
+ x2s("a+", "baaaa", 1, 5);
+ x2s(".?", "", 0, 0);
+ x2s(".?", "f", 0, 1);
+ x2s(".?", "\n", 0, 0);
+ x2s(".*", "", 0, 0);
+ x2s(".*", "abcde", 0, 5);
+ x2s(".+", "z", 0, 1);
+ x2s(".+", "zdswer\n", 0, 6);
+ x2s("(.*)a\\1f", "babfbac", 0, 4);
+ x2s("(.*)a\\1f", "bacbabf", 3, 7);
+ x2s("((.*)a\\2f)", "bacbabf", 3, 7);
+ x2s("(.*)a\\1f", "baczzzzzz\nbazz\nzzzzbabf", 19, 23);
+ x2s("a|b", "a", 0, 1);
+ x2s("a|b", "b", 0, 1);
+ x2s("|a", "a", 0, 0);
+ x2s("(|a)", "a", 0, 0);
+ x2s("ab|bc", "ab", 0, 2);
+ x2s("ab|bc", "bc", 0, 2);
+ x2s("z(?:ab|bc)", "zbc", 0, 3);
+ x2s("a(?:ab|bc)c", "aabc", 0, 4);
+ x2s("ab|(?:ac|az)", "az", 0, 2);
+ x2s("a|b|c", "dc", 1, 2);
+ x2s("a|b|cd|efg|h|ijk|lmn|o|pq|rstuvwx|yz", "pqr", 0, 2);
+ ns("a|b|cd|efg|h|ijk|lmn|o|pq|rstuvwx|yz", "mn");
+ x2s("a|^z", "ba", 1, 2);
+ x2s("a|^z", "za", 0, 1);
+ x2s("a|\\Gz", "bza", 2, 3);
+ x2s("a|\\Gz", "za", 0, 1);
+ x2s("a|\\Az", "bza", 2, 3);
+ x2s("a|\\Az", "za", 0, 1);
+ x2s("a|b\\Z", "ba", 1, 2);
+ x2s("a|b\\Z", "b", 0, 1);
+ x2s("a|b\\z", "ba", 1, 2);
+ x2s("a|b\\z", "b", 0, 1);
+ x2s("\\w|\\s", " ", 0, 1);
+ ns("\\w|\\w", " ");
+ x2s("\\w|%", "%", 0, 1);
+ x2s("\\w|[&$]", "&", 0, 1);
+ x2s("[b-d]|[^e-z]", "a", 0, 1);
+ x2s("(?:a|[c-f])|bz", "dz", 0, 1);
+ x2s("(?:a|[c-f])|bz", "bz", 0, 2);
+ x2s("abc|(?=zz)..f", "zzf", 0, 3);
+ x2s("abc|(?!zz)..f", "abf", 0, 3);
+ x2s("(?=za)..a|(?=zz)..a", "zza", 0, 3);
+ ns("(?>a|abd)c", "abdc");
+ x2s("(?>abd|a)c", "abdc", 0, 4);
+ x2s("a?|b", "a", 0, 1);
+ x2s("a?|b", "b", 0, 0);
+ x2s("a?|b", "", 0, 0);
+ x2s("a*|b", "aa", 0, 2);
+ x2s("a*|b*", "ba", 0, 0);
+ x2s("a*|b*", "ab", 0, 1);
+ x2s("a+|b*", "", 0, 0);
+ x2s("a+|b*", "bbb", 0, 3);
+ x2s("a+|b*", "abbb", 0, 1);
+ ns("a+|b+", "");
+ x2s("(a|b)?", "b", 0, 1);
+ x2s("(a|b)*", "ba", 0, 2);
+ x2s("(a|b)+", "bab", 0, 3);
+ x2s("(ab|ca)+", "caabbc", 0, 4);
+ x2s("(ab|ca)+", "aabca", 1, 5);
+ x2s("(ab|ca)+", "abzca", 0, 2);
+ x2s("(a|bab)+", "ababa", 0, 5);
+ x2s("(a|bab)+", "ba", 1, 2);
+ x2s("(a|bab)+", "baaaba", 1, 4);
+ x2s("(?:a|b)(?:a|b)", "ab", 0, 2);
+ x2s("(?:a*|b*)(?:a*|b*)", "aaabbb", 0, 3);
+ x2s("(?:a*|b*)(?:a+|b+)", "aaabbb", 0, 6);
+ x2s("(?:a+|b+){2}", "aaabbb", 0, 6);
+ x2s("h{0,}", "hhhh", 0, 4);
+ x2s("(?:a+|b+){1,2}", "aaabbb", 0, 6);
+ ns("ax{2}*a", "0axxxa1");
+ ns("a.{0,2}a", "0aXXXa0");
+ ns("a.{0,2}?a", "0aXXXa0");
+ ns("a.{0,2}?a", "0aXXXXa0");
+ x2s("^a{2,}?a$", "aaa", 0, 3);
+ x2s("^[a-z]{2,}?$", "aaa", 0, 3);
+ x2s("(?:a+|\\Ab*)cc", "cc", 0, 2);
+ ns("(?:a+|\\Ab*)cc", "abcc");
+ x2s("(?:^a+|b+)*c", "aabbbabc", 6, 8);
+ x2s("(?:^a+|b+)*c", "aabbbbc", 0, 7);
+ x2s("a|(?i)c", "C", 0, 1);
+ x2s("(?i)c|a", "C", 0, 1);
+ x2s("(?i)c|a", "A", 0, 1);
+ x2s("(?i:c)|a", "C", 0, 1);
+ ns("(?i:c)|a", "A");
+ x2s("[abc]?", "abc", 0, 1);
+ x2s("[abc]*", "abc", 0, 3);
+ x2s("[^abc]*", "abc", 0, 0);
+ ns("[^abc]+", "abc");
+ x2s("a??", "aaa", 0, 0);
+ x2s("ba??b", "bab", 0, 3);
+ x2s("a*?", "aaa", 0, 0);
+ x2s("ba*?", "baa", 0, 1);
+ x2s("ba*?b", "baab", 0, 4);
+ x2s("a+?", "aaa", 0, 1);
+ x2s("ba+?", "baa", 0, 2);
+ x2s("ba+?b", "baab", 0, 4);
+ x2s("(?:a?)??", "a", 0, 0);
+ x2s("(?:a??)?", "a", 0, 0);
+ x2s("(?:a?)+?", "aaa", 0, 1);
+ x2s("(?:a+)??", "aaa", 0, 0);
+ x2s("(?:a+)??b", "aaab", 0, 4);
+ x2s("(?:ab)?{2}", "", 0, 0);
+ x2s("(?:ab)?{2}", "ababa", 0, 4);
+ x2s("(?:ab)*{0}", "ababa", 0, 0);
+ x2s("(?:ab){3,}", "abababab", 0, 8);
+ ns("(?:ab){3,}", "abab");
+ x2s("(?:ab){2,4}", "ababab", 0, 6);
+ x2s("(?:ab){2,4}", "ababababab", 0, 8);
+ x2s("(?:ab){2,4}?", "ababababab", 0, 4);
+ x2s("(?:ab){,}", "ab{,}", 0, 5);
+ x2s("(?:abc)+?{2}", "abcabcabc", 0, 6);
+ x2s("(?:X*)(?i:xa)", "XXXa", 0, 4);
+ x2s("(d+)([^abc]z)", "dddz", 0, 4);
+ x2s("([^abc]*)([^abc]z)", "dddz", 0, 4);
+ x2s("(\\w+)(\\wz)", "dddz", 0, 4);
+ x3s("(a)", "a", 0, 1, 1);
+ x3s("(ab)", "ab", 0, 2, 1);
+ x2s("((ab))", "ab", 0, 2);
+ x3s("((ab))", "ab", 0, 2, 1);
+ x3s("((ab))", "ab", 0, 2, 2);
+ x3s("((((((((((((((((((((ab))))))))))))))))))))", "ab", 0, 2, 20);
+ x3s("(ab)(cd)", "abcd", 0, 2, 1);
+ x3s("(ab)(cd)", "abcd", 2, 4, 2);
+ x3s("()(a)bc(def)ghijk", "abcdefghijk", 3, 6, 3);
+ x3s("(()(a)bc(def)ghijk)", "abcdefghijk", 3, 6, 4);
+ x2s("(^a)", "a", 0, 1);
+ x3s("(a)|(a)", "ba", 1, 2, 1);
+ x3s("(^a)|(a)", "ba", 1, 2, 2);
+ x3s("(a?)", "aaa", 0, 1, 1);
+ x3s("(a*)", "aaa", 0, 3, 1);
+ x3s("(a*)", "", 0, 0, 1);
+ x3s("(a+)", "aaaaaaa", 0, 7, 1);
+ x3s("(a+|b*)", "bbbaa", 0, 3, 1);
+ x3s("(a+|b?)", "bbbaa", 0, 1, 1);
+ x3s("(abc)?", "abc", 0, 3, 1);
+ x3s("(abc)*", "abc", 0, 3, 1);
+ x3s("(abc)+", "abc", 0, 3, 1);
+ x3s("(xyz|abc)+", "abc", 0, 3, 1);
+ x3s("([xyz][abc]|abc)+", "abc", 0, 3, 1);
+ x3s("((?i:abc))", "AbC", 0, 3, 1);
+ x2s("(abc)(?i:\\1)", "abcABC", 0, 6);
+ x3s("((?m:a.c))", "a\nc", 0, 3, 1);
+ x3s("((?=az)a)", "azb", 0, 1, 1);
+ x3s("abc|(.abd)", "zabd", 0, 4, 1);
+ x2s("(?:abc)|(ABC)", "abc", 0, 3);
+ x3s("(?i:(abc))|(zzz)", "ABC", 0, 3, 1);
+ x3s("a*(.)", "aaaaz", 4, 5, 1);
+ x3s("a*?(.)", "aaaaz", 0, 1, 1);
+ x3s("a*?(c)", "aaaac", 4, 5, 1);
+ x3s("[bcd]a*(.)", "caaaaz", 5, 6, 1);
+ x3s("(\\Abb)cc", "bbcc", 0, 2, 1);
+ ns("(\\Abb)cc", "zbbcc");
+ x3s("(^bb)cc", "bbcc", 0, 2, 1);
+ ns("(^bb)cc", "zbbcc");
+ x3s("cc(bb$)", "ccbb", 2, 4, 1);
+ ns("cc(bb$)", "ccbbb");
+ ns("(\\1)", "");
+ ns("\\1(a)", "aa");
+ ns("(a(b)\\1)\\2+", "ababb");
+ ns("(?:(?:\\1|z)(a))+$", "zaa");
+ x2s("(?:(?:\\1|z)(a))+$", "zaaa", 0, 4);
+ x2s("(a)(?=\\1)", "aa", 0, 1);
+ ns("(a)$|\\1", "az");
+ x2s("(a)\\1", "aa", 0, 2);
+ ns("(a)\\1", "ab");
+ x2s("(a?)\\1", "aa", 0, 2);
+ x2s("(a??)\\1", "aa", 0, 0);
+ x2s("(a*)\\1", "aaaaa", 0, 4);
+ x3s("(a*)\\1", "aaaaa", 0, 2, 1);
+ x2s("a(b*)\\1", "abbbb", 0, 5);
+ x2s("a(b*)\\1", "ab", 0, 1);
+ x2s("(a*)(b*)\\1\\2", "aaabbaaabb", 0, 10);
+ x2s("(a*)(b*)\\2", "aaabbbb", 0, 7);
+ x2s("(((((((a*)b))))))c\\7", "aaabcaaa", 0, 8);
+ x3s("(((((((a*)b))))))c\\7", "aaabcaaa", 0, 3, 7);
+ x2s("(a)(b)(c)\\2\\1\\3", "abcbac", 0, 6);
+ x2s("([a-d])\\1", "cc", 0, 2);
+ x2s("(\\w\\d\\s)\\1", "f5 f5 ", 0, 6);
+ ns("(\\w\\d\\s)\\1", "f5 f5");
+ x2s("(who|[a-c]{3})\\1", "whowho", 0, 6);
+ x2s("...(who|[a-c]{3})\\1", "abcwhowho", 0, 9);
+ x2s("(who|[a-c]{3})\\1", "cbccbc", 0, 6);
+ x2s("(^a)\\1", "aa", 0, 2);
+ ns("(^a)\\1", "baa");
+ ns("(a$)\\1", "aa");
+ ns("(ab\\Z)\\1", "ab");
+ x2s("(a*\\Z)\\1", "a", 1, 1);
+ x2s(".(a*\\Z)\\1", "ba", 1, 2);
+ x3s("(.(abc)\\2)", "zabcabc", 0, 7, 1);
+ x3s("(.(..\\d.)\\2)", "z12341234", 0, 9, 1);
+ x2s("((?i:az))\\1", "AzAz", 0, 4);
+ ns("((?i:az))\\1", "Azaz");
+ x2s("(?<=a)b", "ab", 1, 2);
+ ns("(?<=a)b", "bb");
+ x2s("(?<=a|b)b", "bb", 1, 2);
+ x2s("(?<=a|bc)b", "bcb", 2, 3);
+ x2s("(?<=a|bc)b", "ab", 1, 2);
+ x2s("(?<=a|bc||defghij|klmnopq|r)z", "rz", 1, 2);
+ x2s("(a)\\g<1>", "aa", 0, 2);
+ x2s("(?<!a)b", "cb", 1, 2);
+ ns("(?<!a)b", "ab");
+ x2s("(?<!a|bc)b", "bbb", 0, 1);
+ ns("(?<!a|bc)z", "bcz");
+ x2s("(?<name1>a)", "a", 0, 1);
+ x2s("(?<name_2>ab)\\g<name_2>", "abab", 0, 4);
+ x2s("(?<name_3>.zv.)\\k<name_3>", "azvbazvb", 0, 8);
+ x2s("(?<=\\g<ab>)|-\\zEND (?<ab>XyZ)", "XyZ", 3, 3);
+ x2s("(?<n>|a\\g<n>)+", "", 0, 0);
+ x2s("(?<n>|\\(\\g<n>\\))+$", "()(())", 0, 6);
+ x3s("\\g<n>(?<n>.){0}", "X", 0, 1, 1);
+ x2s("\\g<n>(abc|df(?<n>.YZ){2,8}){0}", "XYZ", 0, 3);
+ x2s("\\A(?<n>(a\\g<n>)|)\\z", "aaaa", 0, 4);
+ x2s("(?<n>|\\g<m>\\g<n>)\\z|\\zEND (?<m>a|(b)\\g<m>)", "bbbbabba", 0, 8);
+ x2s("(?<name1240>\\w+\\sx)a+\\k<name1240>", " fg xaaaaaaaafg x", 2, 18);
+ x3s("(z)()()(?<_9>a)\\g<_9>", "zaa", 2, 3, 1);
+ x2s("(.)(((?<_>a)))\\k<_>", "zaa", 0, 3);
+ x2s("((?<name1>\\d)|(?<name2>\\w))(\\k<name1>|\\k<name2>)", "ff", 0, 2);
+ x2s("(?:(?<x>)|(?<x>efg))\\k<x>", "", 0, 0);
+ x2s("(?:(?<x>abc)|(?<x>efg))\\k<x>", "abcefgefg", 3, 9);
+ ns("(?:(?<x>abc)|(?<x>efg))\\k<x>", "abcefg");
+ x2s("(?:(?<n1>.)|(?<n1>..)|(?<n1>...)|(?<n1>....)|(?<n1>.....)|(?<n1>......)|(?<n1>.......)|(?<n1>........)|(?<n1>.........)|(?<n1>..........)|(?<n1>...........)|(?<n1>............)|(?<n1>.............)|(?<n1>..............))\\k<n1>$", "a-pyumpyum", 2, 10);
+ x3s("(?:(?<n1>.)|(?<n1>..)|(?<n1>...)|(?<n1>....)|(?<n1>.....)|(?<n1>......)|(?<n1>.......)|(?<n1>........)|(?<n1>.........)|(?<n1>..........)|(?<n1>...........)|(?<n1>............)|(?<n1>.............)|(?<n1>..............))\\k<n1>$", "xxxxabcdefghijklmnabcdefghijklmn", 4, 18, 14);
+ x3s("(?<name1>)(?<name2>)(?<name3>)(?<name4>)(?<name5>)(?<name6>)(?<name7>)(?<name8>)(?<name9>)(?<name10>)(?<name11>)(?<name12>)(?<name13>)(?<name14>)(?<name15>)(?<name16>aaa)(?<name17>)$", "aaa", 0, 3, 16);
+ x2s("(?<foo>a|\\(\\g<foo>\\))", "a", 0, 1);
+ x2s("(?<foo>a|\\(\\g<foo>\\))", "((((((a))))))", 0, 13);
+ x3s("(?<foo>a|\\(\\g<foo>\\))", "((((((((a))))))))", 0, 17, 1);
+ x2s("\\g<bar>|\\zEND(?<bar>.*abc$)", "abcxxxabc", 0, 9);
+ x2s("\\g<1>|\\zEND(.a.)", "bac", 0, 3);
+ x3s("\\g<_A>\\g<_A>|\\zEND(.a.)(?<_A>.b.)", "xbxyby", 3, 6, 1);
+ x2s("\\A(?:\\g<pon>|\\g<pan>|\\zEND (?<pan>a|c\\g<pon>c)(?<pon>b|d\\g<pan>d))$", "cdcbcdc", 0, 7);
+ x2s("\\A(?<n>|a\\g<m>)\\z|\\zEND (?<m>\\g<n>)", "aaaa", 0, 4);
+ x2s("(?<n>(a|b\\g<n>c){3,5})", "baaaaca", 1, 5);
+ x2s("(?<n>(a|b\\g<n>c){3,5})", "baaaacaaaaa", 0, 10);
+ x2s("(?<pare>\\(([^\\(\\)]++|\\g<pare>)*+\\))", "((a))", 0, 5);
+ x2s("()*\\1", "", 0, 0);
+ x2s("(?:()|())*\\1\\2", "", 0, 0);
+ x3s("(?:\\1a|())*", "a", 0, 0, 1);
+ x2s("x((.)*)*x", "0x1x2x3", 1, 6);
+ x2s("x((.)*)*x(?i:\\1)\\Z", "0x1x2x1X2", 1, 9);
+ x2s("(?:()|()|()|()|()|())*\\2\\5", "", 0, 0);
+ x2s("(?:()|()|()|(x)|()|())*\\2b\\5", "b", 0, 1);
+ // if (Config.VANILLA) x2s("\\xED\\xF2", "\u00ed\u0148", 0, 2);
+ x2s("", "\u00a4\u02d8", 0, 0);
+ x2s("\u00a4\u02d8", "\u00a4\u02d8", 0, 2);
+ ns("\u00a4\u00a4", "\u00a4\u02d8");
+ x2s("\u00a4\u00a6\u00a4\u00a6", "\u00a4\u00a6\u00a4\u00a6", 0, 4);
+ x2s("\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6);
+ x2s("\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142", "\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\ [...]
+ x2s("\u00a4\u02d8", "\u00a4\u00a4\u00a4\u02d8", 2, 4);
+ x2s("\u00a4\u00a4\u00a4\u00a6", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 2, 6);
+ // if (Config.VANILLA) x2s("\\xca\\xb8", "\u0118\u00b8", 0, 2);
+ x2s(".", "\u00a4\u02d8", 0, 2);
+ x2s("..", "\u00a4\u00ab\u00a4\u00ad", 0, 4);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\\w", "\u00a4\u015e", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) ns("\\W", "\u00a4\u02d8");
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("[\\W]", "\u00a4\u00a6$", 2, 3);
+ x2s("\\S", "\u00a4\u02dd", 0, 2);
+ x2s("\\S", "\u00b4\u00c1", 0, 2);
+ x2s("\\b", "\u00b5\u00a4 ", 0, 0);
+ x2s("\\b", " \u00a4\u0170", 1, 1);
+ x2s("\\B", "\u00a4\u00bb\u00a4\u02dd ", 2, 2);
+ x2s("\\B", "\u00a4\u00a6 ", 3, 3);
+ x2s("\\B", " \u00a4\u00a4", 0, 0);
+ x2s("[\u00a4\u017c\u00a4\u00c1]", "\u00a4\u00c1", 0, 2);
+ ns("[\u00a4\u0118\u00a4\u00cb]", "\u00a4\u011a");
+ x2s("[\u00a4\u00a6-\u00a4\u015e]", "\u00a4\u00a8", 0, 2);
+ ns("[^\u00a4\u00b1]", "\u00a4\u00b1");
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("[\\w]", "\u00a4\u00cd", 0, 2);
+ ns("[\\d]", "\u00a4\u0150");
+ x2s("[\\D]", "\u00a4\u010e", 0, 2);
+ ns("[\\s]", "\u00a4\u017b");
+ x2s("[\\S]", "\u00a4\u0158", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("[\\w\\d]", "\u00a4\u010d", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("[\\w\\d]", " \u00a4\u010d", 3, 5);
+ ns("\\w\u00b5\u00b4\u013d\u00d6", " \u00b5\u00b4\u013d\u00d6");
+ x2s("\u00b5\u00b4\\W\u013d\u00d6", "\u00b5\u00b4 \u013d\u00d6", 0, 5);
+ x2s("\u00a4\u02d8.\u00a4\u00a4.\u00a4\u00a6", "\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a6", 0, 10);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s(".\\w\u00a4\u00a6\\W..\u00a4\u013e", "\u00a4\u00a8\u00a4\u00a6\u00a4\u00a6 \u00a4\u00a6\u00a4\u013e\u00a4\u013e", 0, 13);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\\s\\w\u00a4\u0142\u00a4\u0142\u00a4\u0142", " \u00a4\u0142\u00a4\u0142\u00a4\u0142\u00a4\u0142", 0, 9);
+ x2s("\u00a4\u02d8\u00a4\u02d8.\u00a4\u00b1", "\u00a4\u02d8\u00a4\u02d8\u00a4\u00b1\u00a4\u00b1", 0, 8);
+ ns(".\u00a4\u00a4", "\u00a4\u00a4\u00a4\u00a8");
+ x2s(".\u00a4\u015e", "\u00a4\u015e\u00a4\u015e", 0, 4);
+ x2s("^\u00a4\u02d8", "\u00a4\u02d8", 0, 2);
+ x2s("^\u00a4\u0155$", "\u00a4\u0155", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("^\\w$", "\u00a4\u00cb", 0, 2);
+ x2s("^\\w\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\u00a4\u00b1\u00a4\u0142$", "z\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\u00a4\u00b1\u00a4\u0142", 0, 11);
+ x2s("^\\w...\u00a4\u00a6\u00a4\u00a8\u00a4\u015e$", "z\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6\u00a4\u00a8\u00a4\u015e", 0, 13);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\\w\\w\\s\\W\u00a4\u015e\u00a4\u015e\u00a4\u015e\\d", "a\u00a4\u015e \u00a4\u015e\u00a4\u015e\u00a4\u015e4", 0, 12);
+ x2s("\\A\u00a4\u017c\u00a4\u00c1\u00a4\u00c4", "\u00a4\u017c\u00a4\u00c1\u00a4\u00c4", 0, 6);
+ x2s("\u00a4\u0155\u00a4\u00e1\u00a4\u00e2\\Z", "\u00a4\u0155\u00a4\u00e1\u00a4\u00e2", 0, 6);
+ x2s("\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\\z", "\u00a4\u00ab\u00a4\u00ad\u00a4\u017b", 0, 6);
+ x2s("\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\\Z", "\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\n", 0, 6);
+ x2s("\\G\u00a4\u00dd\u00a4\u00d4", "\u00a4\u00dd\u00a4\u00d4", 0, 4);
+ ns("\\G\u00a4\u00a8", "\u00a4\u00a6\u00a4\u00a8\u00a4\u015e");
+ ns("\u00a4\u010c\u00a4\u0106\\G", "\u00a4\u010c\u00a4\u0106");
+ ns("\u00a4\u0162\u00a4\u00df\\A", "\u00a4\u0162\u00a4\u00df");
+ ns("\u00a4\u0162\\A\u00a4\u00df", "\u00a4\u0162\u00a4\u00df");
+ x2s("(?=\u00a4\u00bb)\u00a4\u00bb", "\u00a4\u00bb", 0, 2);
+ ns("(?=\u00a4\u00a6).", "\u00a4\u00a4");
+ x2s("(?!\u00a4\u00a6)\u00a4\u00ab", "\u00a4\u00ab", 0, 2);
+ ns("(?!\u00a4\u010c)\u00a4\u02d8", "\u00a4\u010c");
+ x2s("(?i:\u00a4\u02d8)", "\u00a4\u02d8", 0, 2);
+ x2s("(?i:\u00a4\u00d6\u00a4\u016e)", "\u00a4\u00d6\u00a4\u016e", 0, 4);
+ ns("(?i:\u00a4\u00a4)", "\u00a4\u00a6");
+ x2s("(?m:\u00a4\u010d.)", "\u00a4\u010d\n", 0, 3);
+ x2s("(?m:.\u00a4\u00e1)", "\u00a4\u0162\n\u00a4\u00e1", 2, 5);
+ x2s("\u00a4\u02d8?", "", 0, 0);
+ x2s("\u0118\u0143?", "\u02db\u02dd", 0, 0);
+ x2s("\u0118\u0143?", "\u0118\u0143", 0, 2);
+ x2s("\u00ce\u011a*", "", 0, 0);
+ x2s("\u00ce\u011a*", "\u00ce\u011a", 0, 2);
+ x2s("\u00bb\u0147*", "\u00bb\u0147\u00bb\u0147\u00bb\u0147", 0, 6);
+ x2s("\u00c7\u010e*", "\u013d\u017b\u00c7\u010e\u00c7\u010e\u00c7\u010e\u00c7\u010e", 0, 0);
+ ns("\u00bb\u0142+", "");
+ x2s("\u02db\u010e+", "\u02db\u010e", 0, 2);
+ x2s("\u00bb\u0163+", "\u00bb\u0163\u00bb\u0163\u00bb\u0163\u00bb\u0163", 0, 8);
+ x2s("\u00a4\u00a8+", "\u00a4\u00a8\u00a4\u00a8\u00a4\u00a6\u00a4\u00a6\u00a4\u00a6", 0, 4);
+ x2s("\u00a4\u00a6+", "\u00a4\u015e\u00a4\u00a6\u00a4\u00a6\u00a4\u00a6\u00a4\u00a6", 2, 10);
+ x2s(".?", "\u00a4\u017c", 0, 2);
+ x2s(".*", "\u00a4\u0143\u00a4\u00d4\u00a4\u00d7\u00a4\u00da", 0, 8);
+ x2s(".+", "\u00a4\u00ed", 0, 2);
+ x2s(".+", "\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8\u00a4\u00ab\n", 0, 8);
+ x2s("\u00a4\u02d8|\u00a4\u00a4", "\u00a4\u02d8", 0, 2);
+ x2s("\u00a4\u02d8|\u00a4\u00a4", "\u00a4\u00a4", 0, 2);
+ x2s("\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a4\u00a4\u00a6", "\u00a4\u02d8\u00a4\u00a4", 0, 4);
+ x2s("\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a4\u00a4\u00a6", "\u00a4\u00a4\u00a4\u00a6", 0, 4);
+ x2s("\u00a4\u0148(?:\u00a4\u00ab\u00a4\u00ad|\u00a4\u00ad\u00a4\u017b)", "\u00a4\u0148\u00a4\u00ab\u00a4\u00ad", 0, 6);
+ x2s("\u00a4\u0148(?:\u00a4\u00ab\u00a4\u00ad|\u00a4\u00ad\u00a4\u017b)\u00a4\u00b1", "\u00a4\u0148\u00a4\u00ad\u00a4\u017b\u00a4\u00b1", 0, 8);
+ x2s("\u00a4\u02d8\u00a4\u00a4|(?:\u00a4\u02d8\u00a4\u00a6|\u00a4\u02d8\u00a4\u0148)", "\u00a4\u02d8\u00a4\u0148", 0, 4);
+ x2s("\u00a4\u02d8|\u00a4\u00a4|\u00a4\u00a6", "\u00a4\u00a8\u00a4\u00a6", 2, 4);
+ x2s("\u00a4\u02d8|\u00a4\u00a4|\u00a4\u00a6\u00a4\u00a8|\u00a4\u015e\u00a4\u00ab\u00a4\u00ad|\u00a4\u017b|\u00a4\u00b1\u00a4\u0142\u00a4\u00b5|\u00a4\u00b7\u00a4\u0105\u00a4\u00bb|\u00a4\u02dd|\u00a4\u017c\u00a4\u00c1|\u00a4\u00c4\u00a4\u0106\u00a4\u010c\u00a4\u0118\u00a4\u00cb|\u00a4\u011a\u00a4\u00cd", "\u00a4\u00b7\u00a4\u0105\u00a4\u00bb", 0, 6);
+ ns("\u00a4\u02d8|\u00a4\u00a4|\u00a4\u00a6\u00a4\u00a8|\u00a4\u015e\u00a4\u00ab\u00a4\u00ad|\u00a4\u017b|\u00a4\u00b1\u00a4\u0142\u00a4\u00b5|\u00a4\u00b7\u00a4\u0105\u00a4\u00bb|\u00a4\u02dd|\u00a4\u017c\u00a4\u00c1|\u00a4\u00c4\u00a4\u0106\u00a4\u010c\u00a4\u0118\u00a4\u00cb|\u00a4\u011a\u00a4\u00cd", "\u00a4\u0105\u00a4\u00bb");
+ x2s("\u00a4\u02d8|^\u00a4\u010f", "\u00a4\u00d6\u00a4\u02d8", 2, 4);
+ x2s("\u00a4\u02d8|^\u00a4\u0148", "\u00a4\u0148\u00a4\u02d8", 0, 2);
+ x2s("\u00b5\u00b4|\\G\u013d\u00d6", "\u00a4\u00b1\u013d\u00d6\u00b5\u00b4", 4, 6);
+ x2s("\u00b5\u00b4|\\G\u013d\u00d6", "\u013d\u00d6\u00b5\u00b4", 0, 2);
+ x2s("\u00b5\u00b4|\\A\u013d\u00d6", "b\u013d\u00d6\u00b5\u00b4", 3, 5);
+ x2s("\u00b5\u00b4|\\A\u013d\u00d6", "\u013d\u00d6", 0, 2);
+ x2s("\u00b5\u00b4|\u013d\u00d6\\Z", "\u013d\u00d6\u00b5\u00b4", 2, 4);
+ x2s("\u00b5\u00b4|\u013d\u00d6\\Z", "\u013d\u00d6", 0, 2);
+ x2s("\u00b5\u00b4|\u013d\u00d6\\Z", "\u013d\u00d6\n", 0, 2);
+ x2s("\u00b5\u00b4|\u013d\u00d6\\z", "\u013d\u00d6\u00b5\u00b4", 2, 4);
+ x2s("\u00b5\u00b4|\u013d\u00d6\\z", "\u013d\u00d6", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\\w|\\s", "\u00a4\u015e", 0, 2);
+ x2s("\\w|%", "%\u00a4\u015e", 0, 1);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\\w|[&$]", "\u00a4\u00a6&", 0, 2);
+ x2s("[\u00a4\u00a4-\u00a4\u00b1]", "\u00a4\u00a6", 0, 2);
+ x2s("[\u00a4\u00a4-\u00a4\u00b1]|[^\u00a4\u00ab-\u00a4\u0142]", "\u00a4\u02d8", 0, 2);
+ x2s("[\u00a4\u00a4-\u00a4\u00b1]|[^\u00a4\u00ab-\u00a4\u0142]", "\u00a4\u00ab", 0, 2);
+ x2s("[^\u00a4\u02d8]", "\n", 0, 1);
+ x2s("(?:\u00a4\u02d8|[\u00a4\u00a6-\u00a4\u00ad])|\u00a4\u00a4\u00a4\u0148", "\u00a4\u00a6\u00a4\u0148", 0, 2);
+ x2s("(?:\u00a4\u02d8|[\u00a4\u00a6-\u00a4\u00ad])|\u00a4\u00a4\u00a4\u0148", "\u00a4\u00a4\u00a4\u0148", 0, 4);
+ x2s("\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6|(?=\u00a4\u00b1\u00a4\u00b1)..\u00a4\u0170", "\u00a4\u00b1\u00a4\u00b1\u00a4\u0170", 0, 6);
+ x2s("\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6|(?!\u00a4\u00b1\u00a4\u00b1)..\u00a4\u0170", "\u00a4\u02d8\u00a4\u00a4\u00a4\u0170", 0, 6);
+ // if (Config.VANILLA) x2s("(?=\u00a4\u0148\u00a4\u02d8)..\u00a4\u02d8|(?=\u00a4\u0148\u00a4\u0148)..\u00a4\u02d8", "\u00a4\u0148\u00a4\u0148\u00a4\u02d8", 0, 6);
+ x2s("(?<=\u00a4\u02d8|\u00a4\u00a4\u00a4\u00a6)\u00a4\u00a4", "\u00a4\u00a4\u00a4\u00a6\u00a4\u00a4", 4, 6);
+ ns("(?>\u00a4\u02d8|\u00a4\u02d8\u00a4\u00a4\u00a4\u00a8)\u00a4\u00a6", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a8\u00a4\u00a6");
+ x2s("(?>\u00a4\u02d8\u00a4\u00a4\u00a4\u00a8|\u00a4\u02d8)\u00a4\u00a6", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a8\u00a4\u00a6", 0, 8);
+ x2s("\u00a4\u02d8?|\u00a4\u00a4", "\u00a4\u02d8", 0, 2);
+ x2s("\u00a4\u02d8?|\u00a4\u00a4", "\u00a4\u00a4", 0, 0);
+ x2s("\u00a4\u02d8?|\u00a4\u00a4", "", 0, 0);
+ x2s("\u00a4\u02d8*|\u00a4\u00a4", "\u00a4\u02d8\u00a4\u02d8", 0, 4);
+ x2s("\u00a4\u02d8*|\u00a4\u00a4*", "\u00a4\u00a4\u00a4\u02d8", 0, 0);
+ x2s("\u00a4\u02d8*|\u00a4\u00a4*", "\u00a4\u02d8\u00a4\u00a4", 0, 2);
+ x2s("[a\u00a4\u02d8]*|\u00a4\u00a4*", "a\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 3);
+ x2s("\u00a4\u02d8+|\u00a4\u00a4*", "", 0, 0);
+ x2s("\u00a4\u02d8+|\u00a4\u00a4*", "\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 6);
+ x2s("\u00a4\u02d8+|\u00a4\u00a4*", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 2);
+ x2s("\u00a4\u02d8+|\u00a4\u00a4*", "a\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 0);
+ ns("\u00a4\u02d8+|\u00a4\u00a4+", "");
+ x2s("(\u00a4\u02d8|\u00a4\u00a4)?", "\u00a4\u00a4", 0, 2);
+ x2s("(\u00a4\u02d8|\u00a4\u00a4)*", "\u00a4\u00a4\u00a4\u02d8", 0, 4);
+ x2s("(\u00a4\u02d8|\u00a4\u00a4)+", "\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4", 0, 6);
+ x2s("(\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a6\u00a4\u02d8)+", "\u00a4\u00a6\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8", 0, 8);
+ x2s("(\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a6\u00a4\u00a8)+", "\u00a4\u00a6\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8", 4, 12);
+ x2s("(\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a6\u00a4\u02d8)+", "\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u02d8", 2, 10);
+ x2s("(\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a6\u00a4\u02d8)+", "\u00a4\u02d8\u00a4\u00a4\u00a4\u0148\u00a4\u00a6\u00a4\u02d8", 0, 4);
+ x2s("(\u00a4\u02d8\u00a4\u00a4|\u00a4\u00a6\u00a4\u02d8)+", "$$zzzz\u00a4\u02d8\u00a4\u00a4\u00a4\u0148\u00a4\u00a6\u00a4\u02d8", 6, 10);
+ x2s("(\u00a4\u02d8|\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4)+", "\u00a4\u02d8\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4\u00a4\u02d8", 0, 10);
+ x2s("(\u00a4\u02d8|\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4)+", "\u00a4\u00a4\u00a4\u02d8", 2, 4);
+ x2s("(\u00a4\u02d8|\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4)+", "\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u02d8", 2, 8);
+ x2s("(?:\u00a4\u02d8|\u00a4\u00a4)(?:\u00a4\u02d8|\u00a4\u00a4)", "\u00a4\u02d8\u00a4\u00a4", 0, 4);
+ x2s("(?:\u00a4\u02d8*|\u00a4\u00a4*)(?:\u00a4\u02d8*|\u00a4\u00a4*)", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 6);
+ x2s("(?:\u00a4\u02d8*|\u00a4\u00a4*)(?:\u00a4\u02d8+|\u00a4\u00a4+)", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 12);
+ x2s("(?:\u00a4\u02d8+|\u00a4\u00a4+){2}", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 12);
+ x2s("(?:\u00a4\u02d8+|\u00a4\u00a4+){1,2}", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 12);
+ x2s("(?:\u00a4\u02d8+|\\A\u00a4\u00a4*)\u00a4\u00a6\u00a4\u00a6", "\u00a4\u00a6\u00a4\u00a6", 0, 4);
+ ns("(?:\u00a4\u02d8+|\\A\u00a4\u00a4*)\u00a4\u00a6\u00a4\u00a6", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6");
+ x2s("(?:^\u00a4\u02d8+|\u00a4\u00a4+)*\u00a4\u00a6", "\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 12, 16);
+ x2s("(?:^\u00a4\u02d8+|\u00a4\u00a4+)*\u00a4\u00a6", "\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a6", 0, 14);
+ x2s("\u00a4\u00a6{0,}", "\u00a4\u00a6\u00a4\u00a6\u00a4\u00a6\u00a4\u00a6", 0, 8);
+ x2s("\u00a4\u02d8|(?i)c", "C", 0, 1);
+ x2s("(?i)c|\u00a4\u02d8", "C", 0, 1);
+ x2s("(?i:\u00a4\u02d8)|a", "a", 0, 1);
+ ns("(?i:\u00a4\u02d8)|a", "A");
+ x2s("[\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]?", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 2);
+ x2s("[\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]*", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6);
+ x2s("[^\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]*", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 0);
+ ns("[^\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]+", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6");
+ x2s("\u00a4\u02d8??", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8", 0, 0);
+ x2s("\u00a4\u00a4\u00a4\u02d8??\u00a4\u00a4", "\u00a4\u00a4\u00a4\u02d8\u00a4\u00a4", 0, 6);
+ x2s("\u00a4\u02d8*?", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8", 0, 0);
+ x2s("\u00a4\u00a4\u00a4\u02d8*?", "\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8", 0, 2);
+ x2s("\u00a4\u00a4\u00a4\u02d8*?\u00a4\u00a4", "\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4", 0, 8);
+ x2s("\u00a4\u02d8+?", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8", 0, 2);
+ x2s("\u00a4\u00a4\u00a4\u02d8+?", "\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8", 0, 4);
+ x2s("\u00a4\u00a4\u00a4\u02d8+?\u00a4\u00a4", "\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4", 0, 8);
+ x2s("(?:\u0139\u00b7?)??", "\u0139\u00b7", 0, 0);
+ x2s("(?:\u0139\u00b7??)?", "\u0139\u00b7", 0, 0);
+ x2s("(?:\u011a\u00b4?)+?", "\u011a\u00b4\u011a\u00b4\u011a\u00b4", 0, 2);
+ x2s("(?:\u00c9\u00f7+)??", "\u00c9\u00f7\u00c9\u00f7\u00c9\u00f7", 0, 0);
+ x2s("(?:\u0154\u0103+)??\u00c1\u00fa", "\u0154\u0103\u0154\u0103\u0154\u0103\u00c1\u00fa", 0, 8);
+ x2s("(?:\u00a4\u02d8\u00a4\u00a4)?{2}", "", 0, 0);
+ x2s("(?:\u00b5\u00b4\u013d\u00d6)?{2}", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4", 0, 8);
+ x2s("(?:\u00b5\u00b4\u013d\u00d6)*{0}", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4", 0, 0);
+ x2s("(?:\u00b5\u00b4\u013d\u00d6){3,}", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6", 0, 16);
+ ns("(?:\u00b5\u00b4\u013d\u00d6){3,}", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6");
+ x2s("(?:\u00b5\u00b4\u013d\u00d6){2,4}", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6", 0, 12);
+ x2s("(?:\u00b5\u00b4\u013d\u00d6){2,4}", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6", 0, 16);
+ x2s("(?:\u00b5\u00b4\u013d\u00d6){2,4}?", "\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6\u00b5\u00b4\u013d\u00d6", 0, 8);
+ x2s("(?:\u00b5\u00b4\u013d\u00d6){,}", "\u00b5\u00b4\u013d\u00d6{,}", 0, 7);
+ x2s("(?:\u00a4\u00ab\u00a4\u00ad\u00a4\u017b)+?{2}", "\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\u00a4\u00ab\u00a4\u00ad\u00a4\u017b", 0, 12);
+ x3s("(\u02db\u0110)", "\u02db\u0110", 0, 2, 1);
+ x3s("(\u02db\u0110\u017c\u013a)", "\u02db\u0110\u017c\u013a", 0, 4, 1);
+ x2s("((\u00bb\u0163\u00b4\u00d6))", "\u00bb\u0163\u00b4\u00d6", 0, 4);
+ x3s("((\u00c9\u00f7\u017c\u013a))", "\u00c9\u00f7\u017c\u013a", 0, 4, 1);
+ x3s("((\u015f\u0148\u0106\u00fc))", "\u015f\u0148\u0106\u00fc", 0, 4, 2);
+ x3s("((((((((((((((((((((\u00ce\u011a\u00bb\u0147))))))))))))))))))))", "\u00ce\u011a\u00bb\u0147", 0, 4, 20);
+ x3s("(\u00a4\u02d8\u00a4\u00a4)(\u00a4\u00a6\u00a4\u00a8)", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8", 0, 4, 1);
+ x3s("(\u00a4\u02d8\u00a4\u00a4)(\u00a4\u00a6\u00a4\u00a8)", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8", 4, 8, 2);
+ x3s("()(\u00a4\u02d8)\u00a4\u00a4\u00a4\u00a6(\u00a4\u00a8\u00a4\u015e\u00a4\u00ab)\u00a4\u00ad\u00a4\u017b\u00a4\u00b1\u00a4\u0142", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8\u00a4\u015e\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\u00a4\u00b1\u00a4\u0142", 6, 12, 3);
+ x3s("(()(\u00a4\u02d8)\u00a4\u00a4\u00a4\u00a6(\u00a4\u00a8\u00a4\u015e\u00a4\u00ab)\u00a4\u00ad\u00a4\u017b\u00a4\u00b1\u00a4\u0142)", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8\u00a4\u015e\u00a4\u00ab\u00a4\u00ad\u00a4\u017b\u00a4\u00b1\u00a4\u0142", 6, 12, 4);
+ x3s(".*(\u0104\u0150\u0104\u00a9)\u0104\u00f3\u02c7\u00a6\u0104\u0162(\u0104\u00f3()\u0104\u00b7\u0104\u013a\u0104\u017c)\u0104\u00a4\u0104\u00f3", "\u0104\u0150\u0104\u00a9\u0104\u00f3\u02c7\u00a6\u0104\u0162\u0104\u00f3\u0104\u00b7\u0104\u013a\u0104\u017c\u0104\u00a4\u0104\u00f3", 10, 18, 2);
+ x2s("(^\u00a4\u02d8)", "\u00a4\u02d8", 0, 2);
+ x3s("(\u00a4\u02d8)|(\u00a4\u02d8)", "\u00a4\u00a4\u00a4\u02d8", 2, 4, 1);
+ x3s("(^\u00a4\u02d8)|(\u00a4\u02d8)", "\u00a4\u00a4\u00a4\u02d8", 2, 4, 2);
+ x3s("(\u00a4\u02d8?)", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8", 0, 2, 1);
+ x3s("(\u00a4\u0162*)", "\u00a4\u0162\u00a4\u0162\u00a4\u0162", 0, 6, 1);
+ x3s("(\u00a4\u010c*)", "", 0, 0, 1);
+ x3s("(\u00a4\u00eb+)", "\u00a4\u00eb\u00a4\u00eb\u00a4\u00eb\u00a4\u00eb\u00a4\u00eb\u00a4\u00eb\u00a4\u00eb", 0, 14, 1);
+ x3s("(\u00a4\u0150+|\u00a4\u0158*)", "\u00a4\u0150\u00a4\u0150\u00a4\u0150\u00a4\u0158\u00a4\u0158", 0, 6, 1);
+ x3s("(\u00a4\u02d8+|\u00a4\u00a4?)", "\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8", 0, 2, 1);
+ x3s("(\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6)?", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6, 1);
+ x3s("(\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6)*", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6, 1);
+ x3s("(\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6)+", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6, 1);
+ x3s("(\u00a4\u00b5\u00a4\u00b7\u00a4\u0105|\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6)+", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6, 1);
+ x3s("([\u00a4\u0118\u00a4\u00cb\u00a4\u011a][\u00a4\u00ab\u00a4\u00ad\u00a4\u017b]|\u00a4\u00ab\u00a4\u00ad\u00a4\u017b)+", "\u00a4\u00ab\u00a4\u00ad\u00a4\u017b", 0, 6, 1);
+ x3s("((?i:\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6))", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6", 0, 6, 1);
+ x3s("((?m:\u00a4\u02d8.\u00a4\u00a6))", "\u00a4\u02d8\n\u00a4\u00a6", 0, 5, 1);
+ x3s("((?=\u00a4\u02d8\u00a4\u00f3)\u00a4\u02d8)", "\u00a4\u02d8\u00a4\u00f3\u00a4\u00a4", 0, 2, 1);
+ x3s("\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6|(.\u00a4\u02d8\u00a4\u00a4\u00a4\u00a8)", "\u00a4\u00f3\u00a4\u02d8\u00a4\u00a4\u00a4\u00a8", 0, 8, 1);
+ x3s("\u00a4\u02d8*(.)", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00f3", 8, 10, 1);
+ x3s("\u00a4\u02d8*?(.)", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00f3", 0, 2, 1);
+ x3s("\u00a4\u02d8*?(\u00a4\u00f3)", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00f3", 8, 10, 1);
+ x3s("[\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8]\u00a4\u02d8*(.)", "\u00a4\u00a8\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00f3", 10, 12, 1);
+ x3s("(\\A\u00a4\u00a4\u00a4\u00a4)\u00a4\u00a6\u00a4\u00a6", "\u00a4\u00a4\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6", 0, 4, 1);
+ ns("(\\A\u00a4\u00a4\u00a4\u00a4)\u00a4\u00a6\u00a4\u00a6", "\u00a4\u00f3\u00a4\u00a4\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6");
+ x3s("(^\u00a4\u00a4\u00a4\u00a4)\u00a4\u00a6\u00a4\u00a6", "\u00a4\u00a4\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6", 0, 4, 1);
+ ns("(^\u00a4\u00a4\u00a4\u00a4)\u00a4\u00a6\u00a4\u00a6", "\u00a4\u00f3\u00a4\u00a4\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6");
+ x3s("\u00a4\u00ed\u00a4\u00ed(\u00a4\u00eb\u00a4\u00eb$)", "\u00a4\u00ed\u00a4\u00ed\u00a4\u00eb\u00a4\u00eb", 4, 8, 1);
+ ns("\u00a4\u00ed\u00a4\u00ed(\u00a4\u00eb\u00a4\u00eb$)", "\u00a4\u00ed\u00a4\u00ed\u00a4\u00eb\u00a4\u00eb\u00a4\u00eb");
+ x2s("(\u011a\u00b5)\\1", "\u011a\u00b5\u011a\u00b5", 0, 4);
+ ns("(\u011a\u00b5)\\1", "\u011a\u00b5\u00c9\u0111");
+ x2s("(\u00b6\u0151?)\\1", "\u00b6\u0151\u00b6\u0151", 0, 4);
+ x2s("(\u00b6\u0151??)\\1", "\u00b6\u0151\u00b6\u0151", 0, 0);
+ x2s("(\u00b6\u0151*)\\1", "\u00b6\u0151\u00b6\u0151\u00b6\u0151\u00b6\u0151\u00b6\u0151", 0, 8);
+ x3s("(\u00b6\u0151*)\\1", "\u00b6\u0151\u00b6\u0151\u00b6\u0151\u00b6\u0151\u00b6\u0151", 0, 4, 1);
+ x2s("\u00a4\u02d8(\u00a4\u00a4*)\\1", "\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 10);
+ x2s("\u00a4\u02d8(\u00a4\u00a4*)\\1", "\u00a4\u02d8\u00a4\u00a4", 0, 2);
+ x2s("(\u00a4\u02d8*)(\u00a4\u00a4*)\\1\\2", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4", 0, 20);
+ x2s("(\u00a4\u02d8*)(\u00a4\u00a4*)\\2", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 0, 14);
+ x3s("(\u00a4\u02d8*)(\u00a4\u00a4*)\\2", "\u00a4\u02d8\u00a4\u02d8\u00a4\u02d8\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4\u00a4", 6, 10, 2);
+ x2s("(((((((\u00a4\u00dd*)\u00a4\u00da))))))\u00a4\u00d4\\7", "\u00a4\u00dd\u00a4\u00dd\u00a4\u00dd\u00a4\u00da\u00a4\u00d4\u00a4\u00dd\u00a4\u00dd\u00a4\u00dd", 0, 16);
+ x3s("(((((((\u00a4\u00dd*)\u00a4\u00da))))))\u00a4\u00d4\\7", "\u00a4\u00dd\u00a4\u00dd\u00a4\u00dd\u00a4\u00da\u00a4\u00d4\u00a4\u00dd\u00a4\u00dd\u00a4\u00dd", 0, 6, 7);
+ x2s("(\u00a4\u010e)(\u00a4\u0147)(\u00a4\u0150)\\2\\1\\3", "\u00a4\u010e\u00a4\u0147\u00a4\u0150\u00a4\u0147\u00a4\u010e\u00a4\u0150", 0, 12);
+ x2s("([\u00a4\u00ad-\u00a4\u00b1])\\1", "\u00a4\u017b\u00a4\u017b", 0, 4);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("(\\w\\d\\s)\\1", "\u00a4\u02d85 \u00a4\u02d85 ", 0, 8);
+ ns("(\\w\\d\\s)\\1", "\u00a4\u02d85 \u00a4\u02d85");
+ x2s("(\u0102\u017b\u02c7\u00a9|[\u00a4\u02d8-\u00a4\u00a6]{3})\\1", "\u0102\u017b\u02c7\u00a9\u0102\u017b\u02c7\u00a9", 0, 8);
+ x2s("...(\u0102\u017b\u02c7\u00a9|[\u00a4\u02d8-\u00a4\u00a6]{3})\\1", "\u00a4\u02d8a\u00a4\u02d8\u0102\u017b\u02c7\u00a9\u0102\u017b\u02c7\u00a9", 0, 13);
+ x2s("(\u0102\u017b\u02c7\u00a9|[\u00a4\u02d8-\u00a4\u00a6]{3})\\1", "\u00a4\u00a6\u00a4\u00a4\u00a4\u00a6\u00a4\u00a6\u00a4\u00a4\u00a4\u00a6", 0, 12);
+ x2s("(^\u00a4\u0142)\\1", "\u00a4\u0142\u00a4\u0142", 0, 4);
+ ns("(^\u00a4\u0155)\\1", "\u00a4\u00e1\u00a4\u0155\u00a4\u0155");
+ ns("(\u00a4\u02d8$)\\1", "\u00a4\u02d8\u00a4\u02d8");
+ ns("(\u00a4\u02d8\u00a4\u00a4\\Z)\\1", "\u00a4\u02d8\u00a4\u00a4");
+ x2s("(\u00a4\u02d8*\\Z)\\1", "\u00a4\u02d8", 2, 2);
+ x2s(".(\u00a4\u02d8*\\Z)\\1", "\u00a4\u00a4\u00a4\u02d8", 2, 4);
+ x3s("(.(\u00a4\u00e4\u00a4\u00a4\u00a4\u0107)\\2)", "z\u00a4\u00e4\u00a4\u00a4\u00a4\u0107\u00a4\u00e4\u00a4\u00a4\u00a4\u0107", 0, 13, 1);
+ x3s("(.(..\\d.)\\2)", "\u00a4\u02d812341234", 0, 10, 1);
+ x2s("((?i:\u00a4\u02d8v\u00a4\u015f))\\1", "\u00a4\u02d8v\u00a4\u015f\u00a4\u02d8v\u00a4\u015f", 0, 10);
+ x2s("(?<\u00b6\u0148\u00a4\u00ab>\u0118\u0143|\\(\\g<\u00b6\u0148\u00a4\u00ab>\\))", "((((((\u0118\u0143))))))", 0, 14);
+ x2s("\\A(?:\\g<\u00b0\u00a4_1>|\\g<\u00b1\u013e_2>|\\z\u02dd\u015e\u00ce\u00bb (?<\u00b0\u00a4_1>\u00b4\u0143|\u013d\u00ab\\g<\u00b1\u013e_2>\u013d\u00ab)(?<\u00b1\u013e_2>\u015f\u00df|\u0118\u00ee\u00bb\u00a7\\g<\u00b0\u00a4_1>\u0118\u00ee\u00bb\u00a7))$", "\u0118\u00ee\u00bb\u00a7\u013d\u00ab\u0118\u00ee\u00bb\u00a7\u013d\u00ab\u015f\u00df\u013d\u00ab\u0118\u00ee\u00bb\u00a7\u013d\u00ab\u0118\u00ee\u00bb\u00a7", 0, 26);
+ x2s("[[\u00a4\u0147\u00a4\u0150]]", "\u00a4\u0150", 0, 2);
+ x2s("[[\u00a4\u00a4\u00a4\u015e\u00a4\u00a6]\u00a4\u00ab]", "\u00a4\u00ab", 0, 2);
+ ns("[[^\u00a4\u02d8]]", "\u00a4\u02d8");
+ ns("[^[\u00a4\u02d8]]", "\u00a4\u02d8");
+ x2s("[^[^\u00a4\u02d8]]", "\u00a4\u02d8", 0, 2);
+ x2s("[[\u00a4\u00ab\u00a4\u00ad\u00a4\u017b]&&\u00a4\u00ad\u00a4\u017b]", "\u00a4\u017b", 0, 2);
+ ns("[[\u00a4\u00ab\u00a4\u00ad\u00a4\u017b]&&\u00a4\u00ad\u00a4\u017b]", "\u00a4\u00ab");
+ ns("[[\u00a4\u00ab\u00a4\u00ad\u00a4\u017b]&&\u00a4\u00ad\u00a4\u017b]", "\u00a4\u00b1");
+ x2s("[\u00a4\u02d8-\u00a4\u00f3&&\u00a4\u00a4-\u00a4\u0148&&\u00a4\u00a6-\u00a4\u0144]", "\u00a4\u0144", 0, 2);
+ ns("[^\u00a4\u02d8-\u00a4\u00f3&&\u00a4\u00a4-\u00a4\u0148&&\u00a4\u00a6-\u00a4\u0144]", "\u00a4\u0144");
+ x2s("[[^\u00a4\u02d8&&\u00a4\u02d8]&&\u00a4\u02d8-\u00a4\u00f3]", "\u00a4\u00a4", 0, 2);
+ ns("[[^\u00a4\u02d8&&\u00a4\u02d8]&&\u00a4\u02d8-\u00a4\u00f3]", "\u00a4\u02d8");
+ x2s("[[^\u00a4\u02d8-\u00a4\u00f3&&\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]&&[^\u00a4\u00a6-\u00a4\u00ab]]", "\u00a4\u00ad", 0, 2);
+ ns("[[^\u00a4\u02d8-\u00a4\u00f3&&\u00a4\u00a4\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]&&[^\u00a4\u00a6-\u00a4\u00ab]]", "\u00a4\u00a4");
+ x2s("[^[^\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]]", "\u00a4\u00a6", 0, 2);
+ x2s("[^[^\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]]", "\u00a4\u00a8", 0, 2);
+ ns("[^[^\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]]", "\u00a4\u00ab");
+ x2s("[\u00a4\u02d8-&&-\u00a4\u02d8]", "-", 0, 1);
+ x2s("[^[^a-z\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^bcdefg\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]q-w]", "\u00a4\u00a8", 0, 2);
+ x2s("[^[^a-z\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^bcdefg\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]g-w]", "f", 0, 1);
+ x2s("[^[^a-z\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^bcdefg\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]g-w]", "g", 0, 1);
+ ns("[^[^a-z\u00a4\u02d8\u00a4\u00a4\u00a4\u00a6]&&[^bcdefg\u00a4\u00a6\u00a4\u00a8\u00a4\u015e]g-w]", "2");
+ x2s("a<b>\u0104\u0110\u02c7\u013d\u0104\u00b8\u0104\u00e7\u0104\u00f3\u00a4\u00ce\u0104\u0154\u0104\u00a6\u0104\u00f3\u0104\u00ed\u02c7\u013d\u0104\u00c9<\\/b>", "a<b>\u0104\u0110\u02c7\u013d\u0104\u00b8\u0104\u00e7\u0104\u00f3\u00a4\u00ce\u0104\u0154\u0104\u00a6\u0104\u00f3\u0104\u00ed\u02c7\u013d\u0104\u00c9</b>", 0, 32);
+ x2s(".<b>\u0104\u0110\u02c7\u013d\u0104\u00b8\u0104\u00e7\u0104\u00f3\u00a4\u00ce\u0104\u0154\u0104\u00a6\u0104\u00f3\u0104\u00ed\u02c7\u013d\u0104\u00c9<\\/b>", "a<b>\u0104\u0110\u02c7\u013d\u0104\u00b8\u0104\u00e7\u0104\u00f3\u00a4\u00ce\u0104\u0154\u0104\u00a6\u0104\u00f3\u0104\u00ed\u02c7\u013d\u0104\u00c9</b>", 0, 32);
+
+ super.test();
+ }
+
+}
diff --git a/test/org/joni/test/TestCornerCases.java b/test/org/joni/test/TestCornerCases.java
old mode 100644
new mode 100755
index d8099d5..94c8f3a
--- a/test/org/joni/test/TestCornerCases.java
+++ b/test/org/joni/test/TestCornerCases.java
@@ -28,23 +28,24 @@ import org.jcodings.Encoding;
import org.jcodings.specific.ASCIIEncoding;
public class TestCornerCases extends Test {
+ @Override
public int option() {
return Option.DEFAULT;
}
-
+ @Override
public Encoding encoding() {
return ASCIIEncoding.INSTANCE;
}
-
+ @Override
public String testEncoding() {
return "cp1250";
}
-
+ @Override
public Syntax syntax() {
return Syntax.DEFAULT;
}
-
- public void test() throws InterruptedException {
+ @Override
+ public void test() throws Exception {
byte[] reg = "l.".getBytes();
byte[] str = "hello,lo".getBytes();
@@ -54,9 +55,6 @@ public class TestCornerCases extends Test {
Config.log.println("FAIL: /l./ 'hello,lo' - with reverse, 3,0");
nfail++;
}
- }
-
- public static void main(String[] args) throws Throwable{
- new TestCornerCases().run();
+ super.test();
}
}
diff --git a/test/org/joni/test/TestCrnl.java b/test/org/joni/test/TestCrnl.java
old mode 100644
new mode 100755
index de8b984..8abead7
--- a/test/org/joni/test/TestCrnl.java
+++ b/test/org/joni/test/TestCrnl.java
@@ -22,28 +22,30 @@ package org.joni.test;
import org.joni.Config;
import org.joni.Option;
import org.joni.Syntax;
+import org.junit.Ignore;
import org.jcodings.Encoding;
import org.jcodings.specific.ASCIIEncoding;
+ at Ignore
public class TestCrnl extends Test {
-
+ @Override
public int option() {
return Option.DEFAULT;
}
-
+ @Override
public Encoding encoding() {
return ASCIIEncoding.INSTANCE;
}
-
+ @Override
public String testEncoding() {
return "ascii";
}
-
+ @Override
public Syntax syntax() {
return Syntax.DEFAULT;
}
-
- public void test() throws InterruptedException {
+ @Override
+ public void test() throws Exception {
x2s("", "\r\n", 0, 0);
x2s(".", "\r\n", 0, 1);
ns("..", "\r\n");
@@ -78,9 +80,7 @@ public class TestCrnl extends Test {
x2s("(?!a\\Z)..", "a\r", 0, 2);
if (nfail > 0 || nerror > 0) Config.err.println("make sure to enable USE_CRNL_AS_LINE_TERMINATOR");
+ super.test();
}
- public static void main(String[] args) throws Throwable{
- new TestCrnl().run();
- }
}
diff --git a/test/org/joni/test/TestInterrupt.java b/test/org/joni/test/TestInterrupt.java
old mode 100644
new mode 100755
index dd1547f..587aff6
--- a/test/org/joni/test/TestInterrupt.java
+++ b/test/org/joni/test/TestInterrupt.java
@@ -39,6 +39,8 @@ public class TestInterrupt extends Test {
interface InterruptibleRunnable {
public void run() throws InterruptedException;
}
+
+ @org.junit.Test
public void test() throws InterruptedException {
interruptAfter(new InterruptibleRunnable() {
public void run() throws InterruptedException {
@@ -81,19 +83,19 @@ public class TestInterrupt extends Test {
System.out.println("Time taken: " + total);
assertTrue(total < acceptableMaximumTime, "Took too long to interrupt: " + total + " > " + acceptableMaximumTime);
}
-
+ @Override
public int option() {
return Option.DEFAULT;
}
-
+ @Override
public Encoding encoding() {
return ASCIIEncoding.INSTANCE;
}
-
+ @Override
public String testEncoding() {
return "iso-8859-2";
}
-
+ @Override
public Syntax syntax() {
return Syntax.DEFAULT;
}
diff --git a/test/org/joni/test/TestJoni.java b/test/org/joni/test/TestJoni.java
deleted file mode 100644
index d7f4fe6..0000000
--- a/test/org/joni/test/TestJoni.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is furnished to do
- * so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-package org.joni.test;
-
-import junit.framework.TestCase;
-
-public class TestJoni extends TestCase {
-
- private Test testa;
- private Test testc;
- private Test testu;
- private Test testnsu8;
- private Test testLookBehind;
- private Test testu8;
- private Test testInterrupt;
- private Test testPerl;
- private Test testAsciiViaUtf;
-
- protected void setUp() {
- testa = new TestA();
- testc = new TestC();
- testu = new TestU();
- testnsu8 = new TestNSU8();
- testu8 = new TestU8();
- testLookBehind = new TestLookBehind();
- testInterrupt = new TestInterrupt();
- testPerl = new TestPerl();
- testAsciiViaUtf = new TestAU();
- }
-
- protected void tearDown() {
- }
-
- private void testJoniTest(Test test) {
- test.run();
- assertEquals(test.nerror, 0);
- assertEquals(test.nfail, 0);
- }
-
- public void testAscii() {
- testJoniTest(testa);
- testJoniTest(testAsciiViaUtf);
- }
-
- public void testEUCJP() {
- testJoniTest(testc);
- }
-
- public void testUnicode() {
- testJoniTest(testu);
- testJoniTest(testnsu8);
- testJoniTest(testu8);
- }
-
- public void testLookBehind() {
- testJoniTest(testLookBehind);
- }
-
- public void testInterrupt() {
- testJoniTest(testInterrupt);
- }
-
- public void testPerl() {
- testJoniTest(testPerl);
- }
-
-}
diff --git a/test/org/joni/test/TestLookBehind.java b/test/org/joni/test/TestLookBehind.java
deleted file mode 100644
index fa2d279..0000000
--- a/test/org/joni/test/TestLookBehind.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is furnished to do
- * so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-package org.joni.test;
-
-import org.jcodings.Encoding;
-import org.jcodings.specific.ASCIIEncoding;
-import org.joni.Option;
-import org.joni.Syntax;
-
-public class TestLookBehind extends Test {
-
- public int option() {
- return Option.DEFAULT;
- }
-
- public Encoding encoding() {
- return ASCIIEncoding.INSTANCE;
- }
-
- public String testEncoding() {
- return "iso-8859-1";
- }
-
- public Syntax syntax() {
- return Syntax.DEFAULT;
- }
-
- @Override
- public void test() throws InterruptedException {
- x2s("(?<=a).*b", "aab", 1, 3);
- }
-
- public static void main(String[] args) throws Throwable {
- new TestLookBehind().run();
- }
-
-}
diff --git a/test/org/joni/test/TestNSU8.java b/test/org/joni/test/TestNSU8.java
old mode 100644
new mode 100755
index 1189776..d1f2647
--- a/test/org/joni/test/TestNSU8.java
+++ b/test/org/joni/test/TestNSU8.java
@@ -1,65 +1,63 @@
-/*
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is furnished to do
- * so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-package org.joni.test;
-
-import org.joni.Option;
-import org.joni.Syntax;
-import org.jcodings.Encoding;
-import org.jcodings.specific.NonStrictUTF8Encoding;
-
-public class TestNSU8 extends Test {
-
- public int option() {
- return Option.DEFAULT;
- }
-
- public Encoding encoding() {
- return NonStrictUTF8Encoding.INSTANCE;
- }
-
- public String testEncoding() {
- return "utf-8";
- }
-
- public Syntax syntax() {
- return Syntax.DEFAULT;
- }
-
- public void test() throws InterruptedException {
- xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)240, (byte)32, (byte)32, (byte)32, (byte)32}, 0, 5, 1, false);
- xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)240, (byte)32, (byte)32, (byte)32}, 0, 4, 1, false);
- xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)240, (byte)32, (byte)32}, 0, 3, 1, false);
- xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)240, (byte)32}, 0, 2, 1, false);
- xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)240}, 0, 1, 1, false);
-
- xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)224, (byte)32, (byte)32, (byte)32}, 0, 4, 1, false);
- xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)224, (byte)32, (byte)32}, 0, 3, 1, false);
- xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)224, (byte)32}, 0, 2, 1, false);
- xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)224}, 0, 1, 1, false);
-
- xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)192, (byte)32, (byte)32}, 0, 3, 1, false);
- xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)192, (byte)32}, 0, 2, 1, false);
- xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)192}, 0, 1, 1, false);
- }
-
- public static void main(String[] args) throws Throwable {
- new TestNSU8().run();
- }
-}
+/*
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is furnished to do
+ * so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+package org.joni.test;
+
+import org.joni.Option;
+import org.joni.Syntax;
+import org.jcodings.Encoding;
+import org.jcodings.specific.NonStrictUTF8Encoding;
+
+public class TestNSU8 extends Test {
+ @Override
+ public int option() {
+ return Option.DEFAULT;
+ }
+ @Override
+ public Encoding encoding() {
+ return NonStrictUTF8Encoding.INSTANCE;
+ }
+ @Override
+ public String testEncoding() {
+ return "utf-8";
+ }
+ @Override
+ public Syntax syntax() {
+ return Syntax.DEFAULT;
+ }
+ @Override
+ public void test() throws Exception {
+ xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)240, (byte)32, (byte)32, (byte)32, (byte)32}, 0, 5, 1, false);
+ xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)240, (byte)32, (byte)32, (byte)32}, 0, 4, 1, false);
+ xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)240, (byte)32, (byte)32}, 0, 3, 1, false);
+ xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)240, (byte)32}, 0, 2, 1, false);
+ xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)240}, 0, 1, 1, false);
+
+ xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)224, (byte)32, (byte)32, (byte)32}, 0, 4, 1, false);
+ xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)224, (byte)32, (byte)32}, 0, 3, 1, false);
+ xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)224, (byte)32}, 0, 2, 1, false);
+ xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)224}, 0, 1, 1, false);
+
+ xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)192, (byte)32, (byte)32}, 0, 3, 1, false);
+ xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)192, (byte)32}, 0, 2, 1, false);
+ xx("([^\\[\\]]+)".getBytes(), new byte[]{(byte)192}, 0, 1, 1, false);
+
+ super.test();
+ }
+}
diff --git a/test/org/joni/test/TestPerl.java b/test/org/joni/test/TestPerl.java
old mode 100644
new mode 100755
index 334f334..4b77fff
--- a/test/org/joni/test/TestPerl.java
+++ b/test/org/joni/test/TestPerl.java
@@ -25,28 +25,24 @@ import org.jcodings.Encoding;
import org.jcodings.specific.ASCIIEncoding;
public class TestPerl extends Test {
-
+ @Override
public int option() {
return Option.DEFAULT;
}
-
+ @Override
public Encoding encoding() {
return ASCIIEncoding.INSTANCE;
}
-
+ @Override
public String testEncoding() {
return "iso-8859-2";
}
-
+ @Override
public Syntax syntax() {
return Syntax.PerlNG;
}
-
- public void test() throws InterruptedException {
-
- }
-
- public static void main(String[] args) throws Throwable{
- new TestPerl().run();
+ @Override
+ public void test() throws Exception {
+ super.test();
}
}
diff --git a/test/org/joni/test/TestU.java b/test/org/joni/test/TestU.java
old mode 100644
new mode 100755
index 332de05..a578baf
--- a/test/org/joni/test/TestU.java
+++ b/test/org/joni/test/TestU.java
@@ -1,801 +1,799 @@
-/*
- * Permission is hereby granted, free of charge, to any person obtaining a copy of
- * this software and associated documentation files (the "Software"), to deal in
- * the Software without restriction, including without limitation the rights to
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
- * of the Software, and to permit persons to whom the Software is furnished to do
- * so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-package org.joni.test;
-
-import org.joni.Option;
-import org.joni.Syntax;
-import org.jcodings.Encoding;
-import org.jcodings.specific.UTF16BEEncoding;
-
-public class TestU extends Test {
-
- public int option() {
- return Option.DEFAULT;
- }
-
- public Encoding encoding() {
- return UTF16BEEncoding.INSTANCE;
- }
-
- public String testEncoding() {
- return "iso-8859-1";
- }
-
- public Syntax syntax() {
- return Syntax.DEFAULT;
- }
-
- private int ulen(byte[]bytes) {
- return encoding().strByteLengthNull(bytes, 0, bytes.length);
- }
-
- private String uconv(byte []bytes, int len) {
- StringBuilder sb = new StringBuilder();
-
- for (int i = 0; i < len; i += 2) {
- int c = bytes[i] & 0xff;
- // sb.append(String.format("\\%03o", c));
- if (c == 0) {
- c = bytes[i+1] & 0xff;
- if (c < 0x20 || c >= 0x7f || c == 0x5c || c == 0x22) {
- sb.append(String.format("\\%03o", c));
- } else {
- sb.append(new String(new byte[]{(byte)c}));
- }
- } else {
- sb.append(String.format("\\%03o", c));
- c = bytes[i+1] & 0xff;
- sb.append(String.format("\\%03o", c));
- }
- }
-
- return sb.toString();
- }
-
- protected String repr(byte[]bytes) {
- return uconv(bytes, ulen(bytes));
- }
-
- protected int length(byte[]bytes) {
- return ulen(bytes);
- }
-
- public void test() throws InterruptedException {
- x2s("\000\000", "\000\000", 0, 0);
- x2s("\000^\000\000", "\000\000", 0, 0);
- x2s("\000$\000\000", "\000\000", 0, 0);
- x2s("\000\134\000G\000\000", "\000\000", 0, 0);
- x2s("\000\134\000A\000\000", "\000\000", 0, 0);
- x2s("\000\134\000Z\000\000", "\000\000", 0, 0);
- x2s("\000\134\000z\000\000", "\000\000", 0, 0);
- x2s("\000^\000$\000\000", "\000\000", 0, 0);
- x2s("\000\134\000c\000a\000\000", "\000\001\000\000", 0, 2);
- x2s("\000\134\000C\000-\000b\000\000", "\000\002\000\000", 0, 2);
- x2s("\000\134\000c\000\134\000\134\000\000", "\000\034\000\000", 0, 2);
- x2s("\000q\000[\000\134\000c\000\134\000\134\000]\000\000", "\000q\000\034\000\000", 0, 4);
- x2s("\000\000", "\000a\000\000", 0, 0);
- x2s("\000a\000\000", "\000a\000\000", 0, 2);
- x2s("\000\134\000x\0000\0000\000\134\000x\0006\0001\000\000", "\000a\000\000", 0, 2);
- x2s("\000a\000a\000\000", "\000a\000a\000\000", 0, 4);
- x2s("\000a\000a\000a\000\000", "\000a\000a\000a\000\000", 0, 6);
- x2s("\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000\000", "\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000\000", 0, 70);
- x2s("\000a\000b\000\000", "\000a\000b\000\000", 0, 4);
- x2s("\000b\000\000", "\000a\000b\000\000", 2, 4);
- x2s("\000b\000c\000\000", "\000a\000b\000c\000\000", 2, 6);
- x2s("\000(\000?\000i\000:\000#\000R\000E\000T\000#\000)\000\000", "\000#\000I\000N\000S\000#\000#\000R\000E\000T\000#\000\000", 10, 20);
- x2s("\000\134\0000\0000\0000\000\134\0001\0007\000\000", "\000\017\000\000", 0, 2);
- x2s("\000\134\000x\0000\0000\000\134\000x\0001\000f\000\000", "\000\037\000\000", 0, 2);
- x2s("\000a\000(\000?\000#\000.\000.\000.\000.\000\134\000\134\000J\000J\000J\000J\000)\000b\000\000", "\000a\000b\000\000", 0, 4);
- x2s("\000(\000?\000x\000)\000 \000 \000G\000 \000(\000o\000 \000O\000(\000?\000-\000x\000)\000o\000O\000)\000 \000g\000 \000L\000\000", "\000G\000o\000O\000o\000O\000g\000L\000e\000\000", 0, 14);
- x2s("\000.\000\000", "\000a\000\000", 0, 2);
- ns("\000.\000\000", "\000\000");
- x2s("\000.\000.\000\000", "\000a\000b\000\000", 0, 4);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000w\000\000", "\000e\000\000", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) ns("\000\134\000W\000\000", "\000e\000\000");
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000s\000\000", "\000 \000\000", 0, 2);
- x2s("\000\134\000S\000\000", "\000b\000\000", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000d\000\000", "\0004\000\000", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) ns("\000\134\000D\000\000", "\0004\000\000");
- x2s("\000\134\000b\000\000", "\000z\000 \000\000", 0, 0);
- x2s("\000\134\000b\000\000", "\000 \000z\000\000", 2, 2);
- x2s("\000\134\000B\000\000", "\000z\000z\000 \000\000", 2, 2);
- x2s("\000\134\000B\000\000", "\000z\000 \000\000", 4, 4);
- x2s("\000\134\000B\000\000", "\000 \000z\000\000", 0, 0);
- x2s("\000[\000a\000b\000]\000\000", "\000b\000\000", 0, 2);
- ns("\000[\000a\000b\000]\000\000", "\000c\000\000");
- x2s("\000[\000a\000-\000z\000]\000\000", "\000t\000\000", 0, 2);
- ns("\000[\000^\000a\000]\000\000", "\000a\000\000");
- x2s("\000[\000^\000a\000]\000\000", "\000\012\000\000", 0, 2);
- x2s("\000[\000]\000]\000\000", "\000]\000\000", 0, 2);
- ns("\000[\000^\000]\000]\000\000", "\000]\000\000");
- x2s("\000[\000\134\000^\000]\000+\000\000", "\0000\000^\000^\0001\000\000", 2, 6);
- x2s("\000[\000b\000-\000]\000\000", "\000b\000\000", 0, 2);
- x2s("\000[\000b\000-\000]\000\000", "\000-\000\000", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000[\000\134\000w\000]\000\000", "\000z\000\000", 0, 2);
- ns("\000[\000\134\000w\000]\000\000", "\000 \000\000");
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000[\000\134\000W\000]\000\000", "\000b\000$\000\000", 2, 4);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000[\000\134\000d\000]\000\000", "\0005\000\000", 0, 2);
- ns("\000[\000\134\000d\000]\000\000", "\000e\000\000");
- x2s("\000[\000\134\000D\000]\000\000", "\000t\000\000", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) ns("\000[\000\134\000D\000]\000\000", "\0003\000\000");
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000[\000\134\000s\000]\000\000", "\000 \000\000", 0, 2);
- ns("\000[\000\134\000s\000]\000\000", "\000a\000\000");
- x2s("\000[\000\134\000S\000]\000\000", "\000b\000\000", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) ns("\000[\000\134\000S\000]\000\000", "\000 \000\000");
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000[\000\134\000w\000\134\000d\000]\000\000", "\0002\000\000", 0, 2);
- ns("\000[\000\134\000w\000\134\000d\000]\000\000", "\000 \000\000");
- x2s("\000[\000[\000:\000u\000p\000p\000e\000r\000:\000]\000]\000\000", "\000B\000\000", 0, 2);
- x2s("\000[\000*\000[\000:\000x\000d\000i\000g\000i\000t\000:\000]\000+\000]\000\000", "\000+\000\000", 0, 2);
- x2s("\000[\000*\000[\000:\000x\000d\000i\000g\000i\000t\000:\000]\000+\000]\000\000", "\000G\000H\000I\000K\000K\000-\0009\000+\000*\000\000", 12, 14);
- x2s("\000[\000*\000[\000:\000x\000d\000i\000g\000i\000t\000:\000]\000+\000]\000\000", "\000-\000@\000^\000+\000\000", 6, 8);
- ns("\000[\000[\000:\000u\000p\000p\000e\000r\000]\000]\000\000", "\000A\000\000");
- x2s("\000[\000[\000:\000u\000p\000p\000e\000r\000]\000]\000\000", "\000:\000\000", 0, 2);
- x2s("\000[\000\134\0000\0000\0000\000\134\0000\0004\0004\000-\000\134\0000\0000\0000\000\134\0000\0004\0007\000]\000\000", "\000&\000\000", 0, 2);
- x2s("\000[\000\134\000x\0000\0000\000\134\000x\0005\000a\000-\000\134\000x\0000\0000\000\134\000x\0005\000c\000]\000\000", "\000[\000\000", 0, 2);
- x2s("\000[\000\134\000x\0000\0000\000\134\000x\0006\000A\000-\000\134\000x\0000\0000\000\134\000x\0006\000D\000]\000\000", "\000l\000\000", 0, 2);
- ns("\000[\000\134\000x\0000\0000\000\134\000x\0006\000A\000-\000\134\000x\0000\0000\000\134\000x\0006\000D\000]\000\000", "\000n\000\000");
- ns("\000^\000[\0000\000-\0009\000A\000-\000F\000]\000+\000 \0000\000+\000 \000U\000N\000D\000E\000F\000 \000\000", "\0007\0005\000F\000 \0000\0000\0000\0000\0000\0000\0000\0000\000 \000S\000E\000C\000T\0001\0004\000A\000 \000n\000o\000t\000y\000p\000e\000 \000(\000)\000 \000 \000 \000 \000E\000x\000t\000e\000r\000n\000a\000l\000 \000 \000 \000 \000|\000 \000_\000r\000b\000_\000a\000p\000p\000l\000y\000\000");
- x2s("\000[\000\134\000[\000]\000\000", "\000[\000\000", 0, 2);
- x2s("\000[\000\134\000]\000]\000\000", "\000]\000\000", 0, 2);
- x2s("\000[\000&\000]\000\000", "\000&\000\000", 0, 2);
- x2s("\000[\000[\000a\000b\000]\000]\000\000", "\000b\000\000", 0, 2);
- x2s("\000[\000[\000a\000b\000]\000c\000]\000\000", "\000c\000\000", 0, 2);
- ns("\000[\000[\000^\000a\000]\000]\000\000", "\000a\000\000");
- ns("\000[\000^\000[\000a\000]\000]\000\000", "\000a\000\000");
- x2s("\000[\000[\000a\000b\000]\000&\000&\000b\000c\000]\000\000", "\000b\000\000", 0, 2);
- ns("\000[\000[\000a\000b\000]\000&\000&\000b\000c\000]\000\000", "\000a\000\000");
- ns("\000[\000[\000a\000b\000]\000&\000&\000b\000c\000]\000\000", "\000c\000\000");
- x2s("\000[\000a\000-\000z\000&\000&\000b\000-\000y\000&\000&\000c\000-\000x\000]\000\000", "\000w\000\000", 0, 2);
- ns("\000[\000^\000a\000-\000z\000&\000&\000b\000-\000y\000&\000&\000c\000-\000x\000]\000\000", "\000w\000\000");
- x2s("\000[\000[\000^\000a\000&\000&\000a\000]\000&\000&\000a\000-\000z\000]\000\000", "\000b\000\000", 0, 2);
- ns("\000[\000[\000^\000a\000&\000&\000a\000]\000&\000&\000a\000-\000z\000]\000\000", "\000a\000\000");
- x2s("\000[\000[\000^\000a\000-\000z\000&\000&\000b\000c\000d\000e\000f\000]\000&\000&\000[\000^\000c\000-\000g\000]\000]\000\000", "\000h\000\000", 0, 2);
- ns("\000[\000[\000^\000a\000-\000z\000&\000&\000b\000c\000d\000e\000f\000]\000&\000&\000[\000^\000c\000-\000g\000]\000]\000\000", "\000c\000\000");
- x2s("\000[\000^\000[\000^\000a\000b\000c\000]\000&\000&\000[\000^\000c\000d\000e\000]\000]\000\000", "\000c\000\000", 0, 2);
- x2s("\000[\000^\000[\000^\000a\000b\000c\000]\000&\000&\000[\000^\000c\000d\000e\000]\000]\000\000", "\000e\000\000", 0, 2);
- ns("\000[\000^\000[\000^\000a\000b\000c\000]\000&\000&\000[\000^\000c\000d\000e\000]\000]\000\000", "\000f\000\000");
- x2s("\000[\000a\000-\000&\000&\000-\000a\000]\000\000", "\000-\000\000", 0, 2);
- ns("\000[\000a\000\134\000-\000&\000&\000\134\000-\000a\000]\000\000", "\000&\000\000");
- ns("\000\134\000w\000a\000b\000c\000\000", "\000 \000a\000b\000c\000\000");
- x2s("\000a\000\134\000W\000b\000c\000\000", "\000a\000 \000b\000c\000\000", 0, 8);
- x2s("\000a\000.\000b\000.\000c\000\000", "\000a\000a\000b\000b\000c\000\000", 0, 10);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000.\000\134\000w\000b\000\134\000W\000.\000.\000c\000\000", "\000a\000b\000b\000 \000b\000c\000c\000\000", 0, 14);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000s\000\134\000w\000z\000z\000z\000\000", "\000 \000z\000z\000z\000z\000\000", 0, 10);
- x2s("\000a\000a\000.\000b\000\000", "\000a\000a\000b\000b\000\000", 0, 8);
- ns("\000.\000a\000\000", "\000a\000b\000\000");
- x2s("\000.\000a\000\000", "\000a\000a\000\000", 0, 4);
- x2s("\000^\000a\000\000", "\000a\000\000", 0, 2);
- x2s("\000^\000a\000$\000\000", "\000a\000\000", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000^\000\134\000w\000$\000\000", "\000a\000\000", 0, 2);
- ns("\000^\000\134\000w\000$\000\000", "\000 \000\000");
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000^\000\134\000w\000a\000b\000$\000\000", "\000z\000a\000b\000\000", 0, 6);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000^\000\134\000w\000a\000b\000c\000d\000e\000f\000$\000\000", "\000z\000a\000b\000c\000d\000e\000f\000\000", 0, 14);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000^\000\134\000w\000.\000.\000.\000d\000e\000f\000$\000\000", "\000z\000a\000b\000c\000d\000e\000f\000\000", 0, 14);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000w\000\134\000w\000\134\000s\000\134\000W\000a\000a\000a\000\134\000d\000\000", "\000a\000a\000 \000 \000a\000a\000a\0004\000\000", 0, 16);
- x2s("\000\134\000A\000\134\000Z\000\000", "\000\000", 0, 0);
- x2s("\000\134\000A\000x\000y\000z\000\000", "\000x\000y\000z\000\000", 0, 6);
- x2s("\000x\000y\000z\000\134\000Z\000\000", "\000x\000y\000z\000\000", 0, 6);
- x2s("\000x\000y\000z\000\134\000z\000\000", "\000x\000y\000z\000\000", 0, 6);
- x2s("\000a\000\134\000Z\000\000", "\000a\000\000", 0, 2);
- x2s("\000\134\000G\000a\000z\000\000", "\000a\000z\000\000", 0, 4);
- ns("\000\134\000G\000z\000\000", "\000b\000z\000a\000\000");
- ns("\000a\000z\000\134\000G\000\000", "\000a\000z\000\000");
- ns("\000a\000z\000\134\000A\000\000", "\000a\000z\000\000");
- ns("\000a\000\134\000A\000z\000\000", "\000a\000z\000\000");
- x2s("\000\134\000^\000\134\000$\000\000", "\000^\000$\000\000", 0, 4);
- x2s("\000^\000x\000?\000y\000\000", "\000x\000y\000\000", 0, 4);
- x2s("\000^\000(\000x\000?\000y\000)\000\000", "\000x\000y\000\000", 0, 4);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000w\000\000", "\000_\000\000", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) ns("\000\134\000W\000\000", "\000_\000\000");
- x2s("\000(\000?\000=\000z\000)\000z\000\000", "\000z\000\000", 0, 2);
- ns("\000(\000?\000=\000z\000)\000.\000\000", "\000a\000\000");
- x2s("\000(\000?\000!\000z\000)\000a\000\000", "\000a\000\000", 0, 2);
- ns("\000(\000?\000!\000z\000)\000a\000\000", "\000z\000\000");
- x2s("\000(\000?\000i\000:\000a\000)\000\000", "\000a\000\000", 0, 2);
- x2s("\000(\000?\000i\000:\000a\000)\000\000", "\000A\000\000", 0, 2);
- x2s("\000(\000?\000i\000:\000A\000)\000\000", "\000a\000\000", 0, 2);
- ns("\000(\000?\000i\000:\000A\000)\000\000", "\000b\000\000");
- x2s("\000(\000?\000i\000:\000[\000A\000-\000Z\000]\000)\000\000", "\000a\000\000", 0, 2);
- x2s("\000(\000?\000i\000:\000[\000f\000-\000m\000]\000)\000\000", "\000H\000\000", 0, 2);
- x2s("\000(\000?\000i\000:\000[\000f\000-\000m\000]\000)\000\000", "\000h\000\000", 0, 2);
- ns("\000(\000?\000i\000:\000[\000f\000-\000m\000]\000)\000\000", "\000e\000\000");
- x2s("\000(\000?\000i\000:\000[\000A\000-\000c\000]\000)\000\000", "\000D\000\000", 0, 2);
- ns("\000(\000?\000i\000:\000[\000^\000a\000-\000z\000]\000)\000\000", "\000A\000\000");
- ns("\000(\000?\000i\000:\000[\000^\000a\000-\000z\000]\000)\000\000", "\000a\000\000");
- x2s("\000(\000?\000i\000:\000[\000!\000-\000k\000]\000)\000\000", "\000Z\000\000", 0, 2);
- x2s("\000(\000?\000i\000:\000[\000!\000-\000k\000]\000)\000\000", "\0007\000\000", 0, 2);
- x2s("\000(\000?\000i\000:\000[\000T\000-\000}\000]\000)\000\000", "\000b\000\000", 0, 2);
- x2s("\000(\000?\000i\000:\000[\000T\000-\000}\000]\000)\000\000", "\000{\000\000", 0, 2);
- x2s("\000(\000?\000i\000:\000\134\000?\000a\000)\000\000", "\000?\000A\000\000", 0, 4);
- x2s("\000(\000?\000i\000:\000\134\000*\000A\000)\000\000", "\000*\000a\000\000", 0, 4);
- ns("\000.\000\000", "\000\012\000\000");
- x2s("\000(\000?\000m\000:\000.\000)\000\000", "\000\012\000\000", 0, 2);
- x2s("\000(\000?\000m\000:\000a\000.\000)\000\000", "\000a\000\012\000\000", 0, 4);
- x2s("\000(\000?\000m\000:\000.\000b\000)\000\000", "\000a\000\012\000b\000\000", 2, 6);
- x2s("\000.\000*\000a\000b\000c\000\000", "\000d\000d\000d\000a\000b\000d\000d\000\012\000d\000d\000a\000b\000c\000\000", 16, 26);
- x2s("\000(\000?\000m\000:\000.\000*\000a\000b\000c\000)\000\000", "\000d\000d\000d\000a\000b\000d\000d\000a\000b\000c\000\000", 0, 20);
- ns("\000(\000?\000i\000)\000(\000?\000-\000i\000)\000a\000\000", "\000A\000\000");
- ns("\000(\000?\000i\000)\000(\000?\000-\000i\000:\000a\000)\000\000", "\000A\000\000");
- x2s("\000a\000?\000\000", "\000\000", 0, 0);
- x2s("\000a\000?\000\000", "\000b\000\000", 0, 0);
- x2s("\000a\000?\000\000", "\000a\000\000", 0, 2);
- x2s("\000a\000*\000\000", "\000\000", 0, 0);
- x2s("\000a\000*\000\000", "\000a\000\000", 0, 2);
- x2s("\000a\000*\000\000", "\000a\000a\000a\000\000", 0, 6);
- x2s("\000a\000*\000\000", "\000b\000a\000a\000a\000a\000\000", 0, 0);
- ns("\000a\000+\000\000", "\000\000");
- x2s("\000a\000+\000\000", "\000a\000\000", 0, 2);
- x2s("\000a\000+\000\000", "\000a\000a\000a\000a\000\000", 0, 8);
- x2s("\000a\000+\000\000", "\000a\000a\000b\000b\000b\000\000", 0, 4);
- x2s("\000a\000+\000\000", "\000b\000a\000a\000a\000a\000\000", 2, 10);
- x2s("\000.\000?\000\000", "\000\000", 0, 0);
- x2s("\000.\000?\000\000", "\000f\000\000", 0, 2);
- x2s("\000.\000?\000\000", "\000\012\000\000", 0, 0);
- x2s("\000.\000*\000\000", "\000\000", 0, 0);
- x2s("\000.\000*\000\000", "\000a\000b\000c\000d\000e\000\000", 0, 10);
- x2s("\000.\000+\000\000", "\000z\000\000", 0, 2);
- x2s("\000.\000+\000\000", "\000z\000d\000s\000w\000e\000r\000\012\000\000", 0, 12);
- x2s("\000(\000.\000*\000)\000a\000\134\0001\000f\000\000", "\000b\000a\000b\000f\000b\000a\000c\000\000", 0, 8);
- x2s("\000(\000.\000*\000)\000a\000\134\0001\000f\000\000", "\000b\000a\000c\000b\000a\000b\000f\000\000", 6, 14);
- x2s("\000(\000(\000.\000*\000)\000a\000\134\0002\000f\000)\000\000", "\000b\000a\000c\000b\000a\000b\000f\000\000", 6, 14);
- x2s("\000(\000.\000*\000)\000a\000\134\0001\000f\000\000", "\000b\000a\000c\000z\000z\000z\000z\000z\000z\000\012\000b\000a\000z\000z\000\012\000z\000z\000z\000z\000b\000a\000b\000f\000\000", 38, 46);
- x2s("\000a\000|\000b\000\000", "\000a\000\000", 0, 2);
- x2s("\000a\000|\000b\000\000", "\000b\000\000", 0, 2);
- x2s("\000|\000a\000\000", "\000a\000\000", 0, 0);
- x2s("\000(\000|\000a\000)\000\000", "\000a\000\000", 0, 0);
- x2s("\000a\000b\000|\000b\000c\000\000", "\000a\000b\000\000", 0, 4);
- x2s("\000a\000b\000|\000b\000c\000\000", "\000b\000c\000\000", 0, 4);
- x2s("\000z\000(\000?\000:\000a\000b\000|\000b\000c\000)\000\000", "\000z\000b\000c\000\000", 0, 6);
- x2s("\000a\000(\000?\000:\000a\000b\000|\000b\000c\000)\000c\000\000", "\000a\000a\000b\000c\000\000", 0, 8);
- x2s("\000a\000b\000|\000(\000?\000:\000a\000c\000|\000a\000z\000)\000\000", "\000a\000z\000\000", 0, 4);
- x2s("\000a\000|\000b\000|\000c\000\000", "\000d\000c\000\000", 2, 4);
- x2s("\000a\000|\000b\000|\000c\000d\000|\000e\000f\000g\000|\000h\000|\000i\000j\000k\000|\000l\000m\000n\000|\000o\000|\000p\000q\000|\000r\000s\000t\000u\000v\000w\000x\000|\000y\000z\000\000", "\000p\000q\000r\000\000", 0, 4);
- ns("\000a\000|\000b\000|\000c\000d\000|\000e\000f\000g\000|\000h\000|\000i\000j\000k\000|\000l\000m\000n\000|\000o\000|\000p\000q\000|\000r\000s\000t\000u\000v\000w\000x\000|\000y\000z\000\000", "\000m\000n\000\000");
- x2s("\000a\000|\000^\000z\000\000", "\000b\000a\000\000", 2, 4);
- x2s("\000a\000|\000^\000z\000\000", "\000z\000a\000\000", 0, 2);
- x2s("\000a\000|\000\134\000G\000z\000\000", "\000b\000z\000a\000\000", 4, 6);
- x2s("\000a\000|\000\134\000G\000z\000\000", "\000z\000a\000\000", 0, 2);
- x2s("\000a\000|\000\134\000A\000z\000\000", "\000b\000z\000a\000\000", 4, 6);
- x2s("\000a\000|\000\134\000A\000z\000\000", "\000z\000a\000\000", 0, 2);
- x2s("\000a\000|\000b\000\134\000Z\000\000", "\000b\000a\000\000", 2, 4);
- x2s("\000a\000|\000b\000\134\000Z\000\000", "\000b\000\000", 0, 2);
- x2s("\000a\000|\000b\000\134\000z\000\000", "\000b\000a\000\000", 2, 4);
- x2s("\000a\000|\000b\000\134\000z\000\000", "\000b\000\000", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000w\000|\000\134\000s\000\000", "\000 \000\000", 0, 2);
- ns("\000\134\000w\000|\000\134\000w\000\000", "\000 \000\000");
- x2s("\000\134\000w\000|\000%\000\000", "\000%\000\000", 0, 2);
- x2s("\000\134\000w\000|\000[\000&\000$\000]\000\000", "\000&\000\000", 0, 2);
- x2s("\000[\000b\000-\000d\000]\000|\000[\000^\000e\000-\000z\000]\000\000", "\000a\000\000", 0, 2);
- x2s("\000(\000?\000:\000a\000|\000[\000c\000-\000f\000]\000)\000|\000b\000z\000\000", "\000d\000z\000\000", 0, 2);
- x2s("\000(\000?\000:\000a\000|\000[\000c\000-\000f\000]\000)\000|\000b\000z\000\000", "\000b\000z\000\000", 0, 4);
- x2s("\000a\000b\000c\000|\000(\000?\000=\000z\000z\000)\000.\000.\000f\000\000", "\000z\000z\000f\000\000", 0, 6);
- x2s("\000a\000b\000c\000|\000(\000?\000!\000z\000z\000)\000.\000.\000f\000\000", "\000a\000b\000f\000\000", 0, 6);
- x2s("\000(\000?\000=\000z\000a\000)\000.\000.\000a\000|\000(\000?\000=\000z\000z\000)\000.\000.\000a\000\000", "\000z\000z\000a\000\000", 0, 6);
- ns("\000(\000?\000>\000a\000|\000a\000b\000d\000)\000c\000\000", "\000a\000b\000d\000c\000\000");
- x2s("\000(\000?\000>\000a\000b\000d\000|\000a\000)\000c\000\000", "\000a\000b\000d\000c\000\000", 0, 8);
- x2s("\000a\000?\000|\000b\000\000", "\000a\000\000", 0, 2);
- x2s("\000a\000?\000|\000b\000\000", "\000b\000\000", 0, 0);
- x2s("\000a\000?\000|\000b\000\000", "\000\000", 0, 0);
- x2s("\000a\000*\000|\000b\000\000", "\000a\000a\000\000", 0, 4);
- x2s("\000a\000*\000|\000b\000*\000\000", "\000b\000a\000\000", 0, 0);
- x2s("\000a\000*\000|\000b\000*\000\000", "\000a\000b\000\000", 0, 2);
- x2s("\000a\000+\000|\000b\000*\000\000", "\000\000", 0, 0);
- x2s("\000a\000+\000|\000b\000*\000\000", "\000b\000b\000b\000\000", 0, 6);
- x2s("\000a\000+\000|\000b\000*\000\000", "\000a\000b\000b\000b\000\000", 0, 2);
- ns("\000a\000+\000|\000b\000+\000\000", "\000\000");
- x2s("\000(\000a\000|\000b\000)\000?\000\000", "\000b\000\000", 0, 2);
- x2s("\000(\000a\000|\000b\000)\000*\000\000", "\000b\000a\000\000", 0, 4);
- x2s("\000(\000a\000|\000b\000)\000+\000\000", "\000b\000a\000b\000\000", 0, 6);
- x2s("\000(\000a\000b\000|\000c\000a\000)\000+\000\000", "\000c\000a\000a\000b\000b\000c\000\000", 0, 8);
- x2s("\000(\000a\000b\000|\000c\000a\000)\000+\000\000", "\000a\000a\000b\000c\000a\000\000", 2, 10);
- x2s("\000(\000a\000b\000|\000c\000a\000)\000+\000\000", "\000a\000b\000z\000c\000a\000\000", 0, 4);
- x2s("\000(\000a\000|\000b\000a\000b\000)\000+\000\000", "\000a\000b\000a\000b\000a\000\000", 0, 10);
- x2s("\000(\000a\000|\000b\000a\000b\000)\000+\000\000", "\000b\000a\000\000", 2, 4);
- x2s("\000(\000a\000|\000b\000a\000b\000)\000+\000\000", "\000b\000a\000a\000a\000b\000a\000\000", 2, 8);
- x2s("\000(\000?\000:\000a\000|\000b\000)\000(\000?\000:\000a\000|\000b\000)\000\000", "\000a\000b\000\000", 0, 4);
- x2s("\000(\000?\000:\000a\000*\000|\000b\000*\000)\000(\000?\000:\000a\000*\000|\000b\000*\000)\000\000", "\000a\000a\000a\000b\000b\000b\000\000", 0, 6);
- x2s("\000(\000?\000:\000a\000*\000|\000b\000*\000)\000(\000?\000:\000a\000+\000|\000b\000+\000)\000\000", "\000a\000a\000a\000b\000b\000b\000\000", 0, 12);
- x2s("\000(\000?\000:\000a\000+\000|\000b\000+\000)\000{\0002\000}\000\000", "\000a\000a\000a\000b\000b\000b\000\000", 0, 12);
- x2s("\000h\000{\0000\000,\000}\000\000", "\000h\000h\000h\000h\000\000", 0, 8);
- x2s("\000(\000?\000:\000a\000+\000|\000b\000+\000)\000{\0001\000,\0002\000}\000\000", "\000a\000a\000a\000b\000b\000b\000\000", 0, 12);
- ns("\000a\000x\000{\0002\000}\000*\000a\000\000", "\0000\000a\000x\000x\000x\000a\0001\000\000");
- ns("\000a\000.\000{\0000\000,\0002\000}\000a\000\000", "\0000\000a\000X\000X\000X\000a\0000\000\000");
- ns("\000a\000.\000{\0000\000,\0002\000}\000?\000a\000\000", "\0000\000a\000X\000X\000X\000a\0000\000\000");
- ns("\000a\000.\000{\0000\000,\0002\000}\000?\000a\000\000", "\0000\000a\000X\000X\000X\000X\000a\0000\000\000");
- x2s("\000^\000a\000{\0002\000,\000}\000?\000a\000$\000\000", "\000a\000a\000a\000\000", 0, 6);
- x2s("\000^\000[\000a\000-\000z\000]\000{\0002\000,\000}\000?\000$\000\000", "\000a\000a\000a\000\000", 0, 6);
- x2s("\000(\000?\000:\000a\000+\000|\000\134\000A\000b\000*\000)\000c\000c\000\000", "\000c\000c\000\000", 0, 4);
- ns("\000(\000?\000:\000a\000+\000|\000\134\000A\000b\000*\000)\000c\000c\000\000", "\000a\000b\000c\000c\000\000");
- x2s("\000(\000?\000:\000^\000a\000+\000|\000b\000+\000)\000*\000c\000\000", "\000a\000a\000b\000b\000b\000a\000b\000c\000\000", 12, 16);
- x2s("\000(\000?\000:\000^\000a\000+\000|\000b\000+\000)\000*\000c\000\000", "\000a\000a\000b\000b\000b\000b\000c\000\000", 0, 14);
- x2s("\000a\000|\000(\000?\000i\000)\000c\000\000", "\000C\000\000", 0, 2);
- x2s("\000(\000?\000i\000)\000c\000|\000a\000\000", "\000C\000\000", 0, 2);
- x2s("\000(\000?\000i\000)\000c\000|\000a\000\000", "\000A\000\000", 0, 2);
- x2s("\000(\000?\000i\000:\000c\000)\000|\000a\000\000", "\000C\000\000", 0, 2);
- ns("\000(\000?\000i\000:\000c\000)\000|\000a\000\000", "\000A\000\000");
- x2s("\000[\000a\000b\000c\000]\000?\000\000", "\000a\000b\000c\000\000", 0, 2);
- x2s("\000[\000a\000b\000c\000]\000*\000\000", "\000a\000b\000c\000\000", 0, 6);
- x2s("\000[\000^\000a\000b\000c\000]\000*\000\000", "\000a\000b\000c\000\000", 0, 0);
- ns("\000[\000^\000a\000b\000c\000]\000+\000\000", "\000a\000b\000c\000\000");
- x2s("\000a\000?\000?\000\000", "\000a\000a\000a\000\000", 0, 0);
- x2s("\000b\000a\000?\000?\000b\000\000", "\000b\000a\000b\000\000", 0, 6);
- x2s("\000a\000*\000?\000\000", "\000a\000a\000a\000\000", 0, 0);
- x2s("\000b\000a\000*\000?\000\000", "\000b\000a\000a\000\000", 0, 2);
- x2s("\000b\000a\000*\000?\000b\000\000", "\000b\000a\000a\000b\000\000", 0, 8);
- x2s("\000a\000+\000?\000\000", "\000a\000a\000a\000\000", 0, 2);
- x2s("\000b\000a\000+\000?\000\000", "\000b\000a\000a\000\000", 0, 4);
- x2s("\000b\000a\000+\000?\000b\000\000", "\000b\000a\000a\000b\000\000", 0, 8);
- x2s("\000(\000?\000:\000a\000?\000)\000?\000?\000\000", "\000a\000\000", 0, 0);
- x2s("\000(\000?\000:\000a\000?\000?\000)\000?\000\000", "\000a\000\000", 0, 0);
- x2s("\000(\000?\000:\000a\000?\000)\000+\000?\000\000", "\000a\000a\000a\000\000", 0, 2);
- x2s("\000(\000?\000:\000a\000+\000)\000?\000?\000\000", "\000a\000a\000a\000\000", 0, 0);
- x2s("\000(\000?\000:\000a\000+\000)\000?\000?\000b\000\000", "\000a\000a\000a\000b\000\000", 0, 8);
- x2s("\000(\000?\000:\000a\000b\000)\000?\000{\0002\000}\000\000", "\000\000", 0, 0);
- x2s("\000(\000?\000:\000a\000b\000)\000?\000{\0002\000}\000\000", "\000a\000b\000a\000b\000a\000\000", 0, 8);
- x2s("\000(\000?\000:\000a\000b\000)\000*\000{\0000\000}\000\000", "\000a\000b\000a\000b\000a\000\000", 0, 0);
- x2s("\000(\000?\000:\000a\000b\000)\000{\0003\000,\000}\000\000", "\000a\000b\000a\000b\000a\000b\000a\000b\000\000", 0, 16);
- ns("\000(\000?\000:\000a\000b\000)\000{\0003\000,\000}\000\000", "\000a\000b\000a\000b\000\000");
- x2s("\000(\000?\000:\000a\000b\000)\000{\0002\000,\0004\000}\000\000", "\000a\000b\000a\000b\000a\000b\000\000", 0, 12);
- x2s("\000(\000?\000:\000a\000b\000)\000{\0002\000,\0004\000}\000\000", "\000a\000b\000a\000b\000a\000b\000a\000b\000a\000b\000\000", 0, 16);
- x2s("\000(\000?\000:\000a\000b\000)\000{\0002\000,\0004\000}\000?\000\000", "\000a\000b\000a\000b\000a\000b\000a\000b\000a\000b\000\000", 0, 8);
- x2s("\000(\000?\000:\000a\000b\000)\000{\000,\000}\000\000", "\000a\000b\000{\000,\000}\000\000", 0, 10);
- x2s("\000(\000?\000:\000a\000b\000c\000)\000+\000?\000{\0002\000}\000\000", "\000a\000b\000c\000a\000b\000c\000a\000b\000c\000\000", 0, 12);
- x2s("\000(\000?\000:\000X\000*\000)\000(\000?\000i\000:\000x\000a\000)\000\000", "\000X\000X\000X\000a\000\000", 0, 8);
- x2s("\000(\000d\000+\000)\000(\000[\000^\000a\000b\000c\000]\000z\000)\000\000", "\000d\000d\000d\000z\000\000", 0, 8);
- x2s("\000(\000[\000^\000a\000b\000c\000]\000*\000)\000(\000[\000^\000a\000b\000c\000]\000z\000)\000\000", "\000d\000d\000d\000z\000\000", 0, 8);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000(\000\134\000w\000+\000)\000(\000\134\000w\000z\000)\000\000", "\000d\000d\000d\000z\000\000", 0, 8);
- x3s("\000(\000a\000)\000\000", "\000a\000\000", 0, 2, 1);
- x3s("\000(\000a\000b\000)\000\000", "\000a\000b\000\000", 0, 4, 1);
- x2s("\000(\000(\000a\000b\000)\000)\000\000", "\000a\000b\000\000", 0, 4);
- x3s("\000(\000(\000a\000b\000)\000)\000\000", "\000a\000b\000\000", 0, 4, 1);
- x3s("\000(\000(\000a\000b\000)\000)\000\000", "\000a\000b\000\000", 0, 4, 2);
- x3s("\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000a\000b\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000\000", "\000a\000b\000\000", 0, 4, 20);
- x3s("\000(\000a\000b\000)\000(\000c\000d\000)\000\000", "\000a\000b\000c\000d\000\000", 0, 4, 1);
- x3s("\000(\000a\000b\000)\000(\000c\000d\000)\000\000", "\000a\000b\000c\000d\000\000", 4, 8, 2);
- x3s("\000(\000)\000(\000a\000)\000b\000c\000(\000d\000e\000f\000)\000g\000h\000i\000j\000k\000\000", "\000a\000b\000c\000d\000e\000f\000g\000h\000i\000j\000k\000\000", 6, 12, 3);
- x3s("\000(\000(\000)\000(\000a\000)\000b\000c\000(\000d\000e\000f\000)\000g\000h\000i\000j\000k\000)\000\000", "\000a\000b\000c\000d\000e\000f\000g\000h\000i\000j\000k\000\000", 6, 12, 4);
- x2s("\000(\000^\000a\000)\000\000", "\000a\000\000", 0, 2);
- x3s("\000(\000a\000)\000|\000(\000a\000)\000\000", "\000b\000a\000\000", 2, 4, 1);
- x3s("\000(\000^\000a\000)\000|\000(\000a\000)\000\000", "\000b\000a\000\000", 2, 4, 2);
- x3s("\000(\000a\000?\000)\000\000", "\000a\000a\000a\000\000", 0, 2, 1);
- x3s("\000(\000a\000*\000)\000\000", "\000a\000a\000a\000\000", 0, 6, 1);
- x3s("\000(\000a\000*\000)\000\000", "\000\000", 0, 0, 1);
- x3s("\000(\000a\000+\000)\000\000", "\000a\000a\000a\000a\000a\000a\000a\000\000", 0, 14, 1);
- x3s("\000(\000a\000+\000|\000b\000*\000)\000\000", "\000b\000b\000b\000a\000a\000\000", 0, 6, 1);
- x3s("\000(\000a\000+\000|\000b\000?\000)\000\000", "\000b\000b\000b\000a\000a\000\000", 0, 2, 1);
- x3s("\000(\000a\000b\000c\000)\000?\000\000", "\000a\000b\000c\000\000", 0, 6, 1);
- x3s("\000(\000a\000b\000c\000)\000*\000\000", "\000a\000b\000c\000\000", 0, 6, 1);
- x3s("\000(\000a\000b\000c\000)\000+\000\000", "\000a\000b\000c\000\000", 0, 6, 1);
- x3s("\000(\000x\000y\000z\000|\000a\000b\000c\000)\000+\000\000", "\000a\000b\000c\000\000", 0, 6, 1);
- x3s("\000(\000[\000x\000y\000z\000]\000[\000a\000b\000c\000]\000|\000a\000b\000c\000)\000+\000\000", "\000a\000b\000c\000\000", 0, 6, 1);
- x3s("\000(\000(\000?\000i\000:\000a\000b\000c\000)\000)\000\000", "\000A\000b\000C\000\000", 0, 6, 1);
- x2s("\000(\000a\000b\000c\000)\000(\000?\000i\000:\000\134\0001\000)\000\000", "\000a\000b\000c\000A\000B\000C\000\000", 0, 12);
- x3s("\000(\000(\000?\000m\000:\000a\000.\000c\000)\000)\000\000", "\000a\000\012\000c\000\000", 0, 6, 1);
- x3s("\000(\000(\000?\000=\000a\000z\000)\000a\000)\000\000", "\000a\000z\000b\000\000", 0, 2, 1);
- x3s("\000a\000b\000c\000|\000(\000.\000a\000b\000d\000)\000\000", "\000z\000a\000b\000d\000\000", 0, 8, 1);
- x2s("\000(\000?\000:\000a\000b\000c\000)\000|\000(\000A\000B\000C\000)\000\000", "\000a\000b\000c\000\000", 0, 6);
- x3s("\000(\000?\000i\000:\000(\000a\000b\000c\000)\000)\000|\000(\000z\000z\000z\000)\000\000", "\000A\000B\000C\000\000", 0, 6, 1);
- x3s("\000a\000*\000(\000.\000)\000\000", "\000a\000a\000a\000a\000z\000\000", 8, 10, 1);
- x3s("\000a\000*\000?\000(\000.\000)\000\000", "\000a\000a\000a\000a\000z\000\000", 0, 2, 1);
- x3s("\000a\000*\000?\000(\000c\000)\000\000", "\000a\000a\000a\000a\000c\000\000", 8, 10, 1);
- x3s("\000[\000b\000c\000d\000]\000a\000*\000(\000.\000)\000\000", "\000c\000a\000a\000a\000a\000z\000\000", 10, 12, 1);
- x3s("\000(\000\134\000A\000b\000b\000)\000c\000c\000\000", "\000b\000b\000c\000c\000\000", 0, 4, 1);
- ns("\000(\000\134\000A\000b\000b\000)\000c\000c\000\000", "\000z\000b\000b\000c\000c\000\000");
- x3s("\000(\000^\000b\000b\000)\000c\000c\000\000", "\000b\000b\000c\000c\000\000", 0, 4, 1);
- ns("\000(\000^\000b\000b\000)\000c\000c\000\000", "\000z\000b\000b\000c\000c\000\000");
- x3s("\000c\000c\000(\000b\000b\000$\000)\000\000", "\000c\000c\000b\000b\000\000", 4, 8, 1);
- ns("\000c\000c\000(\000b\000b\000$\000)\000\000", "\000c\000c\000b\000b\000b\000\000");
- ns("\000(\000\134\0001\000)\000\000", "\000\000");
- ns("\000\134\0001\000(\000a\000)\000\000", "\000a\000a\000\000");
- ns("\000(\000a\000(\000b\000)\000\134\0001\000)\000\134\0002\000+\000\000", "\000a\000b\000a\000b\000b\000\000");
- ns("\000(\000?\000:\000(\000?\000:\000\134\0001\000|\000z\000)\000(\000a\000)\000)\000+\000$\000\000", "\000z\000a\000a\000\000");
- x2s("\000(\000?\000:\000(\000?\000:\000\134\0001\000|\000z\000)\000(\000a\000)\000)\000+\000$\000\000", "\000z\000a\000a\000a\000\000", 0, 8);
- x2s("\000(\000a\000)\000(\000?\000=\000\134\0001\000)\000\000", "\000a\000a\000\000", 0, 2);
- ns("\000(\000a\000)\000$\000|\000\134\0001\000\000", "\000a\000z\000\000");
- x2s("\000(\000a\000)\000\134\0001\000\000", "\000a\000a\000\000", 0, 4);
- ns("\000(\000a\000)\000\134\0001\000\000", "\000a\000b\000\000");
- x2s("\000(\000a\000?\000)\000\134\0001\000\000", "\000a\000a\000\000", 0, 4);
- x2s("\000(\000a\000?\000?\000)\000\134\0001\000\000", "\000a\000a\000\000", 0, 0);
- x2s("\000(\000a\000*\000)\000\134\0001\000\000", "\000a\000a\000a\000a\000a\000\000", 0, 8);
- x3s("\000(\000a\000*\000)\000\134\0001\000\000", "\000a\000a\000a\000a\000a\000\000", 0, 4, 1);
- x2s("\000a\000(\000b\000*\000)\000\134\0001\000\000", "\000a\000b\000b\000b\000b\000\000", 0, 10);
- x2s("\000a\000(\000b\000*\000)\000\134\0001\000\000", "\000a\000b\000\000", 0, 2);
- x2s("\000(\000a\000*\000)\000(\000b\000*\000)\000\134\0001\000\134\0002\000\000", "\000a\000a\000a\000b\000b\000a\000a\000a\000b\000b\000\000", 0, 20);
- x2s("\000(\000a\000*\000)\000(\000b\000*\000)\000\134\0002\000\000", "\000a\000a\000a\000b\000b\000b\000b\000\000", 0, 14);
- x2s("\000(\000(\000(\000(\000(\000(\000(\000a\000*\000)\000b\000)\000)\000)\000)\000)\000)\000c\000\134\0007\000\000", "\000a\000a\000a\000b\000c\000a\000a\000a\000\000", 0, 16);
- x3s("\000(\000(\000(\000(\000(\000(\000(\000a\000*\000)\000b\000)\000)\000)\000)\000)\000)\000c\000\134\0007\000\000", "\000a\000a\000a\000b\000c\000a\000a\000a\000\000", 0, 6, 7);
- x2s("\000(\000a\000)\000(\000b\000)\000(\000c\000)\000\134\0002\000\134\0001\000\134\0003\000\000", "\000a\000b\000c\000b\000a\000c\000\000", 0, 12);
- x2s("\000(\000[\000a\000-\000d\000]\000)\000\134\0001\000\000", "\000c\000c\000\000", 0, 4);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000(\000\134\000w\000\134\000d\000\134\000s\000)\000\134\0001\000\000", "\000f\0005\000 \000f\0005\000 \000\000", 0, 12);
- ns("\000(\000\134\000w\000\134\000d\000\134\000s\000)\000\134\0001\000\000", "\000f\0005\000 \000f\0005\000\000");
- x2s("\000(\000w\000h\000o\000|\000[\000a\000-\000c\000]\000{\0003\000}\000)\000\134\0001\000\000", "\000w\000h\000o\000w\000h\000o\000\000", 0, 12);
- x2s("\000.\000.\000.\000(\000w\000h\000o\000|\000[\000a\000-\000c\000]\000{\0003\000}\000)\000\134\0001\000\000", "\000a\000b\000c\000w\000h\000o\000w\000h\000o\000\000", 0, 18);
- x2s("\000(\000w\000h\000o\000|\000[\000a\000-\000c\000]\000{\0003\000}\000)\000\134\0001\000\000", "\000c\000b\000c\000c\000b\000c\000\000", 0, 12);
- x2s("\000(\000^\000a\000)\000\134\0001\000\000", "\000a\000a\000\000", 0, 4);
- ns("\000(\000^\000a\000)\000\134\0001\000\000", "\000b\000a\000a\000\000");
- ns("\000(\000a\000$\000)\000\134\0001\000\000", "\000a\000a\000\000");
- ns("\000(\000a\000b\000\134\000Z\000)\000\134\0001\000\000", "\000a\000b\000\000");
- x2s("\000(\000a\000*\000\134\000Z\000)\000\134\0001\000\000", "\000a\000\000", 2, 2);
- x2s("\000.\000(\000a\000*\000\134\000Z\000)\000\134\0001\000\000", "\000b\000a\000\000", 2, 4);
- x3s("\000(\000.\000(\000a\000b\000c\000)\000\134\0002\000)\000\000", "\000z\000a\000b\000c\000a\000b\000c\000\000", 0, 14, 1);
- if (!org.joni.Config.NON_UNICODE_SDW) x3s("\000(\000.\000(\000.\000.\000\134\000d\000.\000)\000\134\0002\000)\000\000", "\000z\0001\0002\0003\0004\0001\0002\0003\0004\000\000", 0, 18, 1);
- x2s("\000(\000(\000?\000i\000:\000a\000z\000)\000)\000\134\0001\000\000", "\000A\000z\000A\000z\000\000", 0, 8);
- ns("\000(\000(\000?\000i\000:\000a\000z\000)\000)\000\134\0001\000\000", "\000A\000z\000a\000z\000\000");
- x2s("\000(\000?\000<\000=\000a\000)\000b\000\000", "\000a\000b\000\000", 2, 4);
- ns("\000(\000?\000<\000=\000a\000)\000b\000\000", "\000b\000b\000\000");
- x2s("\000(\000?\000<\000=\000a\000|\000b\000)\000b\000\000", "\000b\000b\000\000", 2, 4);
- x2s("\000(\000?\000<\000=\000a\000|\000b\000c\000)\000b\000\000", "\000b\000c\000b\000\000", 4, 6);
- x2s("\000(\000?\000<\000=\000a\000|\000b\000c\000)\000b\000\000", "\000a\000b\000\000", 2, 4);
- x2s("\000(\000?\000<\000=\000a\000|\000b\000c\000|\000|\000d\000e\000f\000g\000h\000i\000j\000|\000k\000l\000m\000n\000o\000p\000q\000|\000r\000)\000z\000\000", "\000r\000z\000\000", 2, 4);
- x2s("\000(\000a\000)\000\134\000g\000<\0001\000>\000\000", "\000a\000a\000\000", 0, 4);
- x2s("\000(\000?\000<\000!\000a\000)\000b\000\000", "\000c\000b\000\000", 2, 4);
- ns("\000(\000?\000<\000!\000a\000)\000b\000\000", "\000a\000b\000\000");
- x2s("\000(\000?\000<\000!\000a\000|\000b\000c\000)\000b\000\000", "\000b\000b\000b\000\000", 0, 2);
- ns("\000(\000?\000<\000!\000a\000|\000b\000c\000)\000z\000\000", "\000b\000c\000z\000\000");
- x2s("\000(\000?\000<\000n\000a\000m\000e\0001\000>\000a\000)\000\000", "\000a\000\000", 0, 2);
- x2s("\000(\000?\000<\000n\000a\000m\000e\000_\0002\000>\000a\000b\000)\000\134\000g\000<\000n\000a\000m\000e\000_\0002\000>\000\000", "\000a\000b\000a\000b\000\000", 0, 8);
- x2s("\000(\000?\000<\000n\000a\000m\000e\000_\0003\000>\000.\000z\000v\000.\000)\000\134\000k\000<\000n\000a\000m\000e\000_\0003\000>\000\000", "\000a\000z\000v\000b\000a\000z\000v\000b\000\000", 0, 16);
- x2s("\000(\000?\000<\000=\000\134\000g\000<\000a\000b\000>\000)\000|\000-\000\134\000z\000E\000N\000D\000 \000(\000?\000<\000a\000b\000>\000X\000y\000Z\000)\000\000", "\000X\000y\000Z\000\000", 6, 6);
- x2s("\000(\000?\000<\000n\000>\000|\000a\000\134\000g\000<\000n\000>\000)\000+\000\000", "\000\000", 0, 0);
- x2s("\000(\000?\000<\000n\000>\000|\000\134\000(\000\134\000g\000<\000n\000>\000\134\000)\000)\000+\000$\000\000", "\000(\000)\000(\000(\000)\000)\000\000", 0, 12);
- x3s("\000\134\000g\000<\000n\000>\000(\000?\000<\000n\000>\000.\000)\000{\0000\000}\000\000", "\000X\000\000", 0, 2, 1);
- x2s("\000\134\000g\000<\000n\000>\000(\000a\000b\000c\000|\000d\000f\000(\000?\000<\000n\000>\000.\000Y\000Z\000)\000{\0002\000,\0008\000}\000)\000{\0000\000}\000\000", "\000X\000Y\000Z\000\000", 0, 6);
- x2s("\000\134\000A\000(\000?\000<\000n\000>\000(\000a\000\134\000g\000<\000n\000>\000)\000|\000)\000\134\000z\000\000", "\000a\000a\000a\000a\000\000", 0, 8);
- x2s("\000(\000?\000<\000n\000>\000|\000\134\000g\000<\000m\000>\000\134\000g\000<\000n\000>\000)\000\134\000z\000|\000\134\000z\000E\000N\000D\000 \000(\000?\000<\000m\000>\000a\000|\000(\000b\000)\000\134\000g\000<\000m\000>\000)\000\000", "\000b\000b\000b\000b\000a\000b\000b\000a\000\000", 0, 16);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000(\000?\000<\000n\000a\000m\000e\0001\0002\0004\0000\000>\000\134\000w\000+\000\134\000s\000x\000)\000a\000+\000\134\000k\000<\000n\000a\000m\000e\0001\0002\0004\0000\000>\000\000", "\000 \000 \000f\000g\000 \000x\000a\000a\000a\000a\000a\000a\000a\000a\000f\000g\000 \000x\000\000", 4, 36);
- x3s("\000(\000z\000)\000(\000)\000(\000)\000(\000?\000<\000_\0009\000>\000a\000)\000\134\000g\000<\000_\0009\000>\000\000", "\000z\000a\000a\000\000", 4, 6, 1);
- x2s("\000(\000.\000)\000(\000(\000(\000?\000<\000_\000>\000a\000)\000)\000)\000\134\000k\000<\000_\000>\000\000", "\000z\000a\000a\000\000", 0, 6);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000(\000(\000?\000<\000n\000a\000m\000e\0001\000>\000\134\000d\000)\000|\000(\000?\000<\000n\000a\000m\000e\0002\000>\000\134\000w\000)\000)\000(\000\134\000k\000<\000n\000a\000m\000e\0001\000>\000|\000\134\000k\000<\000n\000a\000m\000e\0002\000>\000)\000\000", "\000f\000f\000\000", 0, 4);
- x2s("\000(\000?\000:\000(\000?\000<\000x\000>\000)\000|\000(\000?\000<\000x\000>\000e\000f\000g\000)\000)\000\134\000k\000<\000x\000>\000\000", "\000\000", 0, 0);
- x2s("\000(\000?\000:\000(\000?\000<\000x\000>\000a\000b\000c\000)\000|\000(\000?\000<\000x\000>\000e\000f\000g\000)\000)\000\134\000k\000<\000x\000>\000\000", "\000a\000b\000c\000e\000f\000g\000e\000f\000g\000\000", 6, 18);
- ns("\000(\000?\000:\000(\000?\000<\000x\000>\000a\000b\000c\000)\000|\000(\000?\000<\000x\000>\000e\000f\000g\000)\000)\000\134\000k\000<\000x\000>\000\000", "\000a\000b\000c\000e\000f\000g\000\000");
- x2s("\000(\000?\000:\000(\000?\000<\000n\0001\000>\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000 [...]
- x3s("\000(\000?\000:\000(\000?\000<\000n\0001\000>\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000 [...]
- x3s("\000(\000?\000<\000n\000a\000m\000e\0001\000>\000)\000(\000?\000<\000n\000a\000m\000e\0002\000>\000)\000(\000?\000<\000n\000a\000m\000e\0003\000>\000)\000(\000?\000<\000n\000a\000m\000e\0004\000>\000)\000(\000?\000<\000n\000a\000m\000e\0005\000>\000)\000(\000?\000<\000n\000a\000m\000e\0006\000>\000)\000(\000?\000<\000n\000a\000m\000e\0007\000>\000)\000(\000?\000<\000n\000a\000m\000e\0008\000>\000)\000(\000?\000<\000n\000a\000m\000e\0009\000>\000)\000(\000?\000<\000n\000a\000 [...]
- x2s("\000(\000?\000<\000f\000o\000o\000>\000a\000|\000\134\000(\000\134\000g\000<\000f\000o\000o\000>\000\134\000)\000)\000\000", "\000a\000\000", 0, 2);
- x2s("\000(\000?\000<\000f\000o\000o\000>\000a\000|\000\134\000(\000\134\000g\000<\000f\000o\000o\000>\000\134\000)\000)\000\000", "\000(\000(\000(\000(\000(\000(\000a\000)\000)\000)\000)\000)\000)\000\000", 0, 26);
- x3s("\000(\000?\000<\000f\000o\000o\000>\000a\000|\000\134\000(\000\134\000g\000<\000f\000o\000o\000>\000\134\000)\000)\000\000", "\000(\000(\000(\000(\000(\000(\000(\000(\000a\000)\000)\000)\000)\000)\000)\000)\000)\000\000", 0, 34, 1);
- x2s("\000\134\000g\000<\000b\000a\000r\000>\000|\000\134\000z\000E\000N\000D\000(\000?\000<\000b\000a\000r\000>\000.\000*\000a\000b\000c\000$\000)\000\000", "\000a\000b\000c\000x\000x\000x\000a\000b\000c\000\000", 0, 18);
- x2s("\000\134\000g\000<\0001\000>\000|\000\134\000z\000E\000N\000D\000(\000.\000a\000.\000)\000\000", "\000b\000a\000c\000\000", 0, 6);
- x3s("\000\134\000g\000<\000_\000A\000>\000\134\000g\000<\000_\000A\000>\000|\000\134\000z\000E\000N\000D\000(\000.\000a\000.\000)\000(\000?\000<\000_\000A\000>\000.\000b\000.\000)\000\000", "\000x\000b\000x\000y\000b\000y\000\000", 6, 12, 1);
- x2s("\000\134\000A\000(\000?\000:\000\134\000g\000<\000p\000o\000n\000>\000|\000\134\000g\000<\000p\000a\000n\000>\000|\000\134\000z\000E\000N\000D\000 \000 \000(\000?\000<\000p\000a\000n\000>\000a\000|\000c\000\134\000g\000<\000p\000o\000n\000>\000c\000)\000(\000?\000<\000p\000o\000n\000>\000b\000|\000d\000\134\000g\000<\000p\000a\000n\000>\000d\000)\000)\000$\000\000", "\000c\000d\000c\000b\000c\000d\000c\000\000", 0, 14);
- x2s("\000\134\000A\000(\000?\000<\000n\000>\000|\000a\000\134\000g\000<\000m\000>\000)\000\134\000z\000|\000\134\000z\000E\000N\000D\000 \000(\000?\000<\000m\000>\000\134\000g\000<\000n\000>\000)\000\000", "\000a\000a\000a\000a\000\000", 0, 8);
- x2s("\000(\000?\000<\000n\000>\000(\000a\000|\000b\000\134\000g\000<\000n\000>\000c\000)\000{\0003\000,\0005\000}\000)\000\000", "\000b\000a\000a\000a\000a\000c\000a\000\000", 2, 10);
- x2s("\000(\000?\000<\000n\000>\000(\000a\000|\000b\000\134\000g\000<\000n\000>\000c\000)\000{\0003\000,\0005\000}\000)\000\000", "\000b\000a\000a\000a\000a\000c\000a\000a\000a\000a\000a\000\000", 0, 20);
- x2s("\000(\000?\000<\000p\000a\000r\000e\000>\000\134\000(\000(\000[\000^\000\134\000(\000\134\000)\000]\000+\000+\000|\000\134\000g\000<\000p\000a\000r\000e\000>\000)\000*\000+\000\134\000)\000)\000\000", "\000(\000(\000a\000)\000)\000\000", 0, 10);
- x2s("\000(\000)\000*\000\134\0001\000\000", "\000\000", 0, 0);
- x2s("\000(\000?\000:\000(\000)\000|\000(\000)\000)\000*\000\134\0001\000\134\0002\000\000", "\000\000", 0, 0);
- x3s("\000(\000?\000:\000\134\0001\000a\000|\000(\000)\000)\000*\000\000", "\000a\000\000", 0, 0, 1);
- x2s("\000x\000(\000(\000.\000)\000*\000)\000*\000x\000\000", "\0000\000x\0001\000x\0002\000x\0003\000\000", 2, 12);
- x2s("\000x\000(\000(\000.\000)\000*\000)\000*\000x\000(\000?\000i\000:\000\134\0001\000)\000\134\000Z\000\000", "\0000\000x\0001\000x\0002\000x\0001\000X\0002\000\000", 2, 18);
- x2s("\000(\000?\000:\000(\000)\000|\000(\000)\000|\000(\000)\000|\000(\000)\000|\000(\000)\000|\000(\000)\000)\000*\000\134\0002\000\134\0005\000\000", "\000\000", 0, 0);
- x2s("\000(\000?\000:\000(\000)\000|\000(\000)\000|\000(\000)\000|\000(\000x\000)\000|\000(\000)\000|\000(\000)\000)\000*\000\134\0002\000b\000\134\0005\000\000", "\000b\000\000", 0, 2);
- x2s("\217\372\000\000", "\217\372\000\000", 0, 2);
- x2s("\000\000", "0B\000\000", 0, 0);
- x2s("0B\000\000", "0B\000\000", 0, 2);
- ns("0D\000\000", "0B\000\000");
- x2s("0F0F\000\000", "0F0F\000\000", 0, 4);
- x2s("0B0D0F\000\000", "0B0D0F\000\000", 0, 6);
- x2s("0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S\000\000", "0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S\000\000", 0, 70);
- x2s("0B\000\000", "0D0B\000\000", 2, 4);
- x2s("0D0F\000\000", "0B0D0F\000\000", 2, 6);
- x2s("e\207\000\000", "e\207\000\000", 0, 2);
- x2s("\000.\000\000", "0B\000\000", 0, 2);
- x2s("\000.\000.\000\000", "0K0M\000\000", 0, 4);
- x2s("\000\134\000w\000\000", "0J\000\000", 0, 2);
- ns("\000\134\000W\000\000", "0B\000\000");
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000[\000\134\000W\000]\000\000", "0F\000$\000\000", 2, 4);
- x2s("\000\134\000S\000\000", "0]\000\000", 0, 2);
- x2s("\000\134\000S\000\000", "o\042\000\000", 0, 2);
- x2s("\000\134\000b\000\000", "l\027\000 \000\000", 0, 0);
- x2s("\000\134\000b\000\000", "\000 0{\000\000", 2, 2);
- x2s("\000\134\000B\000\000", "0[0]\000 \000\000", 2, 2);
- x2s("\000\134\000B\000\000", "0F\000 \000\000", 4, 4);
- x2s("\000\134\000B\000\000", "\000 0D\000\000", 0, 0);
- x2s("\000[0_0a\000]\000\000", "0a\000\000", 0, 2);
- ns("\000[0j0k\000]\000\000", "0l\000\000");
- x2s("\000[0F\000-0J\000]\000\000", "0H\000\000", 0, 2);
- ns("\000[\000^0Q\000]\000\000", "0Q\000\000");
- x2s("\000[\000\134\000w\000]\000\000", "0m\000\000", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) ns("\000[\000\134\000d\000]\000\000", "0u\000\000");
- x2s("\000[\000\134\000D\000]\000\000", "0o\000\000", 0, 2);
- ns("\000[\000\134\000s\000]\000\000", "0O\000\000");
- x2s("\000[\000\134\000S\000]\000\000", "0x\000\000", 0, 2);
- x2s("\000[\000\134\000w\000\134\000d\000]\000\000", "0\210\000\000", 0, 2);
- x2s("\000[\000\134\000w\000\134\000d\000]\000\000", "\000 \000 \000 0\210\000\000", 6, 8);
- ns("\000\134\000w\233<\216\312\000\000", "\000 \233<\216\312\000\000");
- x2s("\233<\000\134\000W\216\312\000\000", "\233<\000 \216\312\000\000", 0, 6);
- x2s("0B\000.0D\000.0F\000\000", "0B0B0D0D0F\000\000", 0, 10);
- x2s("\000.\000\134\000w0F\000\134\000W\000.\000.0^\000\000", "0H0F0F\000 0F0^0^\000\000", 0, 14);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000s\000\134\000w0S0S0S\000\000", "\000 0S0S0S0S\000\000", 0, 10);
- x2s("0B0B\000.0Q\000\000", "0B0B0Q0Q\000\000", 0, 8);
- ns("\000.0D\000\000", "0D0H\000\000");
- x2s("\000.0J\000\000", "0J0J\000\000", 0, 4);
- x2s("\000^0B\000\000", "0B\000\000", 0, 2);
- x2s("\000^0\200\000$\000\000", "0\200\000\000", 0, 2);
- x2s("\000^\000\134\000w\000$\000\000", "0k\000\000", 0, 2);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000^\000\134\000w0K0M0O0Q0S\000$\000\000", "\000z0K0M0O0Q0S\000\000", 0, 12);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000^\000\134\000w\000.\000.\000.0F0H0J\000$\000\000", "\000z0B0D0F0F0H0J\000\000", 0, 14);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000w\000\134\000w\000\134\000s\000\134\000W0J0J0J\000\134\000d\000\000", "\000a0J\000 \000 0J0J0J\0004\000\000", 0, 16);
- x2s("\000\134\000A0_0a0d\000\000", "0_0a0d\000\000", 0, 6);
- x2s("0\2000\2010\202\000\134\000Z\000\000", "0\2000\2010\202\000\000", 0, 6);
- x2s("0K0M0O\000\134\000z\000\000", "0K0M0O\000\000", 0, 6);
- x2s("0K0M0O\000\134\000Z\000\000", "0K0M0O\000\012\000\000", 0, 6);
- x2s("\000\134\000G0}0t\000\000", "0}0t\000\000", 0, 4);
- ns("\000\134\000G0H\000\000", "0F0H0J\000\000");
- ns("0h0f\000\134\000G\000\000", "0h0f\000\000");
- ns("0~0\177\000\134\000A\000\000", "0~0\177\000\000");
- ns("0~\000\134\000A0\177\000\000", "0~0\177\000\000");
- x2s("\000(\000?\000=0[\000)0[\000\000", "0[\000\000", 0, 2);
- ns("\000(\000?\000=0F\000)\000.\000\000", "0D\000\000");
- x2s("\000(\000?\000!0F\000)0K\000\000", "0K\000\000", 0, 2);
- ns("\000(\000?\000!0h\000)0B\000\000", "0h\000\000");
- x2s("\000(\000?\000i\000:0B\000)\000\000", "0B\000\000", 0, 2);
- x2s("\000(\000?\000i\000:0v0y\000)\000\000", "0v0y\000\000", 0, 4);
- ns("\000(\000?\000i\000:0D\000)\000\000", "0F\000\000");
- x2s("\000(\000?\000m\000:0\210\000.\000)\000\000", "0\210\000\012\000\000", 0, 4);
- x2s("\000(\000?\000m\000:\000.0\201\000)\000\000", "0~\000\0120\201\000\000", 2, 6);
- x2s("0B\000?\000\000", "\000\000", 0, 0);
- x2s("Y\011\000?\000\000", "S\026\000\000", 0, 0);
- x2s("Y\011\000?\000\000", "Y\011\000\000", 0, 2);
- x2s("\221\317\000*\000\000", "\000\000", 0, 0);
- x2s("\221\317\000*\000\000", "\221\317\000\000", 0, 2);
- x2s("[P\000*\000\000", "[P[P[P\000\000", 0, 6);
- x2s("\231\254\000*\000\000", "\236\177\231\254\231\254\231\254\231\254\000\000", 0, 0);
- ns("\134q\000+\000\000", "\000\000");
- x2s("l\263\000+\000\000", "l\263\000\000", 0, 2);
- x2s("fB\000+\000\000", "fBfBfBfB\000\000", 0, 8);
- x2s("0H\000+\000\000", "0H0H0F0F0F\000\000", 0, 4);
- x2s("0F\000+\000\000", "0J0F0F0F0F\000\000", 2, 10);
- x2s("\000.\000?\000\000", "0_\000\000", 0, 2);
- x2s("\000.\000*\000\000", "0q0t0w0z\000\000", 0, 8);
- x2s("\000.\000+\000\000", "0\215\000\000", 0, 2);
- x2s("\000.\000+\000\000", "0D0F0H0K\000\012\000\000", 0, 8);
- x2s("0B\000|0D\000\000", "0B\000\000", 0, 2);
- x2s("0B\000|0D\000\000", "0D\000\000", 0, 2);
- x2s("0B0D\000|0D0F\000\000", "0B0D\000\000", 0, 4);
- x2s("0B0D\000|0D0F\000\000", "0D0F\000\000", 0, 4);
- x2s("0\222\000(\000?\000:0K0M\000|0M0O\000)\000\000", "0\2220K0M\000\000", 0, 6);
- x2s("0\222\000(\000?\000:0K0M\000|0M0O\000)0Q\000\000", "0\2220M0O0Q\000\000", 0, 8);
- x2s("0B0D\000|\000(\000?\000:0B0F\000|0B0\222\000)\000\000", "0B0\222\000\000", 0, 4);
- x2s("0B\000|0D\000|0F\000\000", "0H0F\000\000", 2, 4);
- x2s("0B\000|0D\000|0F0H\000|0J0K0M\000|0O\000|0Q0S0U\000|0W0Y0[\000|0]\000|0_0a\000|0d0f0h0j0k\000|0l0m\000\000", "0W0Y0[\000\000", 0, 6);
- ns("0B\000|0D\000|0F0H\000|0J0K0M\000|0O\000|0Q0S0U\000|0W0Y0[\000|0]\000|0_0a\000|0d0f0h0j0k\000|0l0m\000\000", "0Y0[\000\000");
- x2s("0B\000|\000^0\217\000\000", "0v0B\000\000", 2, 4);
- x2s("0B\000|\000^0\222\000\000", "0\2220B\000\000", 0, 2);
- x2s("\233<\000|\000\134\000G\216\312\000\000", "0Q\216\312\233<\000\000", 4, 6);
- x2s("\233<\000|\000\134\000G\216\312\000\000", "\216\312\233<\000\000", 0, 2);
- x2s("\233<\000|\000\134\000A\216\312\000\000", "\000b\216\312\233<\000\000", 4, 6);
- x2s("\233<\000|\000\134\000A\216\312\000\000", "\216\312\000\000", 0, 2);
- x2s("\233<\000|\216\312\000\134\000Z\000\000", "\216\312\233<\000\000", 2, 4);
- x2s("\233<\000|\216\312\000\134\000Z\000\000", "\216\312\000\000", 0, 2);
- x2s("\233<\000|\216\312\000\134\000Z\000\000", "\216\312\000\012\000\000", 0, 2);
- x2s("\233<\000|\216\312\000\134\000z\000\000", "\216\312\233<\000\000", 2, 4);
- x2s("\233<\000|\216\312\000\134\000z\000\000", "\216\312\000\000", 0, 2);
- x2s("\000\134\000w\000|\000\134\000s\000\000", "0J\000\000", 0, 2);
- x2s("\000\134\000w\000|\000%\000\000", "\000%0J\000\000", 0, 2);
- x2s("\000\134\000w\000|\000[\000&\000$\000]\000\000", "0F\000&\000\000", 0, 2);
- x2s("\000[0D\000-0Q\000]\000\000", "0F\000\000", 0, 2);
- x2s("\000[0D\000-0Q\000]\000|\000[\000^0K\000-0S\000]\000\000", "0B\000\000", 0, 2);
- x2s("\000[0D\000-0Q\000]\000|\000[\000^0K\000-0S\000]\000\000", "0K\000\000", 0, 2);
- x2s("\000[\000^0B\000]\000\000", "\000\012\000\000", 0, 2);
- x2s("\000(\000?\000:0B\000|\000[0F\000-0M\000]\000)\000|0D0\222\000\000", "0F0\222\000\000", 0, 2);
- x2s("\000(\000?\000:0B\000|\000[0F\000-0M\000]\000)\000|0D0\222\000\000", "0D0\222\000\000", 0, 4);
- x2s("0B0D0F\000|\000(\000?\000=0Q0Q\000)\000.\000.0{\000\000", "0Q0Q0{\000\000", 0, 6);
- x2s("0B0D0F\000|\000(\000?\000!0Q0Q\000)\000.\000.0{\000\000", "0B0D0{\000\000", 0, 6);
- x2s("\000(\000?\000=0\2220B\000)\000.\000.0B\000|\000(\000?\000=0\2220\222\000)\000.\000.0B\000\000", "0\2220\2220B\000\000", 0, 6);
- x2s("\000(\000?\000<\000=0B\000|0D0F\000)0D\000\000", "0D0F0D\000\000", 4, 6);
- ns("\000(\000?\000>0B\000|0B0D0H\000)0F\000\000", "0B0D0H0F\000\000");
- x2s("\000(\000?\000>0B0D0H\000|0B\000)0F\000\000", "0B0D0H0F\000\000", 0, 8);
- x2s("0B\000?\000|0D\000\000", "0B\000\000", 0, 2);
- x2s("0B\000?\000|0D\000\000", "0D\000\000", 0, 0);
- x2s("0B\000?\000|0D\000\000", "\000\000", 0, 0);
- x2s("0B\000*\000|0D\000\000", "0B0B\000\000", 0, 4);
- x2s("0B\000*\000|0D\000*\000\000", "0D0B\000\000", 0, 0);
- x2s("0B\000*\000|0D\000*\000\000", "0B0D\000\000", 0, 2);
- x2s("\000[\000a0B\000]\000*\000|0D\000*\000\000", "\000a0B0D0D0D\000\000", 0, 4);
- x2s("0B\000+\000|0D\000*\000\000", "\000\000", 0, 0);
- x2s("0B\000+\000|0D\000*\000\000", "0D0D0D\000\000", 0, 6);
- x2s("0B\000+\000|0D\000*\000\000", "0B0D0D0D\000\000", 0, 2);
- x2s("0B\000+\000|0D\000*\000\000", "\000a0B0D0D0D\000\000", 0, 0);
- ns("0B\000+\000|0D\000+\000\000", "\000\000");
- x2s("\000(0B\000|0D\000)\000?\000\000", "0D\000\000", 0, 2);
- x2s("\000(0B\000|0D\000)\000*\000\000", "0D0B\000\000", 0, 4);
- x2s("\000(0B\000|0D\000)\000+\000\000", "0D0B0D\000\000", 0, 6);
- x2s("\000(0B0D\000|0F0B\000)\000+\000\000", "0F0B0B0D0F0H\000\000", 0, 8);
- x2s("\000(0B0D\000|0F0H\000)\000+\000\000", "0F0B0B0D0F0H\000\000", 4, 12);
- x2s("\000(0B0D\000|0F0B\000)\000+\000\000", "0B0B0D0F0B\000\000", 2, 10);
- x2s("\000(0B0D\000|0F0B\000)\000+\000\000", "0B0D0\2220F0B\000\000", 0, 4);
- x2s("\000(0B0D\000|0F0B\000)\000+\000\000", "\000$\000$\000z\000z\000z\000z0B0D0\2220F0B\000\000", 12, 16);
- x2s("\000(0B\000|0D0B0D\000)\000+\000\000", "0B0D0B0D0B\000\000", 0, 10);
- x2s("\000(0B\000|0D0B0D\000)\000+\000\000", "0D0B\000\000", 2, 4);
- x2s("\000(0B\000|0D0B0D\000)\000+\000\000", "0D0B0B0B0D0B\000\000", 2, 8);
- x2s("\000(\000?\000:0B\000|0D\000)\000(\000?\000:0B\000|0D\000)\000\000", "0B0D\000\000", 0, 4);
- x2s("\000(\000?\000:0B\000*\000|0D\000*\000)\000(\000?\000:0B\000*\000|0D\000*\000)\000\000", "0B0B0B0D0D0D\000\000", 0, 6);
- x2s("\000(\000?\000:0B\000*\000|0D\000*\000)\000(\000?\000:0B\000+\000|0D\000+\000)\000\000", "0B0B0B0D0D0D\000\000", 0, 12);
- x2s("\000(\000?\000:0B\000+\000|0D\000+\000)\000{\0002\000}\000\000", "0B0B0B0D0D0D\000\000", 0, 12);
- x2s("\000(\000?\000:0B\000+\000|0D\000+\000)\000{\0001\000,\0002\000}\000\000", "0B0B0B0D0D0D\000\000", 0, 12);
- x2s("\000(\000?\000:0B\000+\000|\000\134\000A0D\000*\000)0F0F\000\000", "0F0F\000\000", 0, 4);
- ns("\000(\000?\000:0B\000+\000|\000\134\000A0D\000*\000)0F0F\000\000", "0B0D0F0F\000\000");
- x2s("\000(\000?\000:\000^0B\000+\000|0D\000+\000)\000*0F\000\000", "0B0B0D0D0D0B0D0F\000\000", 12, 16);
- x2s("\000(\000?\000:\000^0B\000+\000|0D\000+\000)\000*0F\000\000", "0B0B0D0D0D0D0F\000\000", 0, 14);
- x2s("0F\000{\0000\000,\000}\000\000", "0F0F0F0F\000\000", 0, 8);
- x2s("0B\000|\000(\000?\000i\000)\000c\000\000", "\000C\000\000", 0, 2);
- x2s("\000(\000?\000i\000)\000c\000|0B\000\000", "\000C\000\000", 0, 2);
- x2s("\000(\000?\000i\000:0B\000)\000|\000a\000\000", "\000a\000\000", 0, 2);
- ns("\000(\000?\000i\000:0B\000)\000|\000a\000\000", "\000A\000\000");
- x2s("\000[0B0D0F\000]\000?\000\000", "0B0D0F\000\000", 0, 2);
- x2s("\000[0B0D0F\000]\000*\000\000", "0B0D0F\000\000", 0, 6);
- x2s("\000[\000^0B0D0F\000]\000*\000\000", "0B0D0F\000\000", 0, 0);
- ns("\000[\000^0B0D0F\000]\000+\000\000", "0B0D0F\000\000");
- x2s("0B\000?\000?\000\000", "0B0B0B\000\000", 0, 0);
- x2s("0D0B\000?\000?0D\000\000", "0D0B0D\000\000", 0, 6);
- x2s("0B\000*\000?\000\000", "0B0B0B\000\000", 0, 0);
- x2s("0D0B\000*\000?\000\000", "0D0B0B\000\000", 0, 2);
- x2s("0D0B\000*\000?0D\000\000", "0D0B0B0D\000\000", 0, 8);
- x2s("0B\000+\000?\000\000", "0B0B0B\000\000", 0, 2);
- x2s("0D0B\000+\000?\000\000", "0D0B0B\000\000", 0, 4);
- x2s("0D0B\000+\000?0D\000\000", "0D0B0B0D\000\000", 0, 8);
- x2s("\000(\000?\000:Y)\000?\000)\000?\000?\000\000", "Y)\000\000", 0, 0);
- x2s("\000(\000?\000:Y)\000?\000?\000)\000?\000\000", "Y)\000\000", 0, 0);
- x2s("\000(\000?\000:Y\042\000?\000)\000+\000?\000\000", "Y\042Y\042Y\042\000\000", 0, 2);
- x2s("\000(\000?\000:\230\250\000+\000)\000?\000?\000\000", "\230\250\230\250\230\250\000\000", 0, 0);
- x2s("\000(\000?\000:\226\352\000+\000)\000?\000?\227\034\000\000", "\226\352\226\352\226\352\227\034\000\000", 0, 8);
- x2s("\000(\000?\000:0B0D\000)\000?\000{\0002\000}\000\000", "\000\000", 0, 0);
- x2s("\000(\000?\000:\233<\216\312\000)\000?\000{\0002\000}\000\000", "\233<\216\312\233<\216\312\233<\000\000", 0, 8);
- x2s("\000(\000?\000:\233<\216\312\000)\000*\000{\0000\000}\000\000", "\233<\216\312\233<\216\312\233<\000\000", 0, 0);
- x2s("\000(\000?\000:\233<\216\312\000)\000{\0003\000,\000}\000\000", "\233<\216\312\233<\216\312\233<\216\312\233<\216\312\000\000", 0, 16);
- ns("\000(\000?\000:\233<\216\312\000)\000{\0003\000,\000}\000\000", "\233<\216\312\233<\216\312\000\000");
- x2s("\000(\000?\000:\233<\216\312\000)\000{\0002\000,\0004\000}\000\000", "\233<\216\312\233<\216\312\233<\216\312\000\000", 0, 12);
- x2s("\000(\000?\000:\233<\216\312\000)\000{\0002\000,\0004\000}\000\000", "\233<\216\312\233<\216\312\233<\216\312\233<\216\312\233<\216\312\000\000", 0, 16);
- x2s("\000(\000?\000:\233<\216\312\000)\000{\0002\000,\0004\000}\000?\000\000", "\233<\216\312\233<\216\312\233<\216\312\233<\216\312\233<\216\312\000\000", 0, 8);
- x2s("\000(\000?\000:\233<\216\312\000)\000{\000,\000}\000\000", "\233<\216\312\000{\000,\000}\000\000", 0, 10);
- x2s("\000(\000?\000:0K0M0O\000)\000+\000?\000{\0002\000}\000\000", "0K0M0O0K0M0O0K0M0O\000\000", 0, 12);
- x3s("\000(pk\000)\000\000", "pk\000\000", 0, 2, 1);
- x3s("\000(pkl4\000)\000\000", "pkl4\000\000", 0, 4, 1);
- x2s("\000(\000(fB\225\223\000)\000)\000\000", "fB\225\223\000\000", 0, 4);
- x3s("\000(\000(\230\250l4\000)\000)\000\000", "\230\250l4\000\000", 0, 4, 1);
- x3s("\000(\000(f(e\345\000)\000)\000\000", "f(e\345\000\000", 0, 4, 2);
- x3s("\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\221\317[P\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000\000", "\221\317[P\000\000", 0, 4, 20);
- x3s("\000(0B0D\000)\000(0F0H\000)\000\000", "0B0D0F0H\000\000", 0, 4, 1);
- x3s("\000(0B0D\000)\000(0F0H\000)\000\000", "0B0D0F0H\000\000", 4, 8, 2);
- x3s("\000(\000)\000(0B\000)0D0F\000(0H0J0K\000)0M0O0Q0S\000\000", "0B0D0F0H0J0K0M0O0Q0S\000\000", 6, 12, 3);
- x3s("\000(\000(\000)\000(0B\000)0D0F\000(0H0J0K\000)0M0O0Q0S\000)\000\000", "0B0D0F0H0J0K0M0O0Q0S\000\000", 6, 12, 4);
- x3s("\000.\000*\000(0\3250\251\000)0\3630\3730\336\000(0\363\000(\000)0\2670\3450\277\000)0\2440\363\000\000", "0\3250\2510\3630\3730\3360\3630\2670\3450\2770\2440\363\000\000", 10, 18, 2);
- x2s("\000(\000^0B\000)\000\000", "0B\000\000", 0, 2);
- x3s("\000(0B\000)\000|\000(0B\000)\000\000", "0D0B\000\000", 2, 4, 1);
- x3s("\000(\000^0B\000)\000|\000(0B\000)\000\000", "0D0B\000\000", 2, 4, 2);
- x3s("\000(0B\000?\000)\000\000", "0B0B0B\000\000", 0, 2, 1);
- x3s("\000(0~\000*\000)\000\000", "0~0~0~\000\000", 0, 6, 1);
- x3s("\000(0h\000*\000)\000\000", "\000\000", 0, 0, 1);
- x3s("\000(0\213\000+\000)\000\000", "0\2130\2130\2130\2130\2130\2130\213\000\000", 0, 14, 1);
- x3s("\000(0u\000+\000|0x\000*\000)\000\000", "0u0u0u0x0x\000\000", 0, 6, 1);
- x3s("\000(0B\000+\000|0D\000?\000)\000\000", "0D0D0D0B0B\000\000", 0, 2, 1);
- x3s("\000(0B0D0F\000)\000?\000\000", "0B0D0F\000\000", 0, 6, 1);
- x3s("\000(0B0D0F\000)\000*\000\000", "0B0D0F\000\000", 0, 6, 1);
- x3s("\000(0B0D0F\000)\000+\000\000", "0B0D0F\000\000", 0, 6, 1);
- x3s("\000(0U0W0Y\000|0B0D0F\000)\000+\000\000", "0B0D0F\000\000", 0, 6, 1);
- x3s("\000(\000[0j0k0l\000]\000[0K0M0O\000]\000|0K0M0O\000)\000+\000\000", "0K0M0O\000\000", 0, 6, 1);
- x3s("\000(\000(\000?\000i\000:0B0D0F\000)\000)\000\000", "0B0D0F\000\000", 0, 6, 1);
- x3s("\000(\000(\000?\000m\000:0B\000.0F\000)\000)\000\000", "0B\000\0120F\000\000", 0, 6, 1);
- x3s("\000(\000(\000?\000=0B0\223\000)0B\000)\000\000", "0B0\2230D\000\000", 0, 2, 1);
- x3s("0B0D0F\000|\000(\000.0B0D0H\000)\000\000", "0\2230B0D0H\000\000", 0, 8, 1);
- x3s("0B\000*\000(\000.\000)\000\000", "0B0B0B0B0\223\000\000", 8, 10, 1);
- x3s("0B\000*\000?\000(\000.\000)\000\000", "0B0B0B0B0\223\000\000", 0, 2, 1);
- x3s("0B\000*\000?\000(0\223\000)\000\000", "0B0B0B0B0\223\000\000", 8, 10, 1);
- x3s("\000[0D0F0H\000]0B\000*\000(\000.\000)\000\000", "0H0B0B0B0B0\223\000\000", 10, 12, 1);
- x3s("\000(\000\134\000A0D0D\000)0F0F\000\000", "0D0D0F0F\000\000", 0, 4, 1);
- ns("\000(\000\134\000A0D0D\000)0F0F\000\000", "0\2230D0D0F0F\000\000");
- x3s("\000(\000^0D0D\000)0F0F\000\000", "0D0D0F0F\000\000", 0, 4, 1);
- ns("\000(\000^0D0D\000)0F0F\000\000", "0\2230D0D0F0F\000\000");
- x3s("0\2150\215\000(0\2130\213\000$\000)\000\000", "0\2150\2150\2130\213\000\000", 4, 8, 1);
- ns("0\2150\215\000(0\2130\213\000$\000)\000\000", "0\2150\2150\2130\2130\213\000\000");
- x2s("\000(q!\000)\000\134\0001\000\000", "q!q!\000\000", 0, 4);
- ns("\000(q!\000)\000\134\0001\000\000", "q!kf\000\000");
- x2s("\000(zz\000?\000)\000\134\0001\000\000", "zzzz\000\000", 0, 4);
- x2s("\000(zz\000?\000?\000)\000\134\0001\000\000", "zzzz\000\000", 0, 0);
- x2s("\000(zz\000*\000)\000\134\0001\000\000", "zzzzzzzzzz\000\000", 0, 8);
- x3s("\000(zz\000*\000)\000\134\0001\000\000", "zzzzzzzzzz\000\000", 0, 4, 1);
- x2s("0B\000(0D\000*\000)\000\134\0001\000\000", "0B0D0D0D0D\000\000", 0, 10);
- x2s("0B\000(0D\000*\000)\000\134\0001\000\000", "0B0D\000\000", 0, 2);
- x2s("\000(0B\000*\000)\000(0D\000*\000)\000\134\0001\000\134\0002\000\000", "0B0B0B0D0D0B0B0B0D0D\000\000", 0, 20);
- x2s("\000(0B\000*\000)\000(0D\000*\000)\000\134\0002\000\000", "0B0B0B0D0D0D0D\000\000", 0, 14);
- x3s("\000(0B\000*\000)\000(0D\000*\000)\000\134\0002\000\000", "0B0B0B0D0D0D0D\000\000", 6, 10, 2);
- x2s("\000(\000(\000(\000(\000(\000(\000(0}\000*\000)0z\000)\000)\000)\000)\000)\000)0t\000\134\0007\000\000", "0}0}0}0z0t0}0}0}\000\000", 0, 16);
- x3s("\000(\000(\000(\000(\000(\000(\000(0}\000*\000)0z\000)\000)\000)\000)\000)\000)0t\000\134\0007\000\000", "0}0}0}0z0t0}0}0}\000\000", 0, 6, 7);
- x2s("\000(0o\000)\000(0r\000)\000(0u\000)\000\134\0002\000\134\0001\000\134\0003\000\000", "0o0r0u0r0o0u\000\000", 0, 12);
- x2s("\000(\000[0M\000-0Q\000]\000)\000\134\0001\000\000", "0O0O\000\000", 0, 4);
- if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000(\000\134\000w\000\134\000d\000\134\000s\000)\000\134\0001\000\000", "0B\0005\000 0B\0005\000 \000\000", 0, 12);
- ns("\000(\000\134\000w\000\134\000d\000\134\000s\000)\000\134\0001\000\000", "0B\0005\000 0B\0005\000\000");
- x2s("\000(\212\260\377\037\000|\000[0B\000-0F\000]\000{\0003\000}\000)\000\134\0001\000\000", "\212\260\377\037\212\260\377\037\000\000", 0, 8);
- x2s("\000.\000.\000.\000(\212\260\377\037\000|\000[0B\000-0F\000]\000{\0003\000}\000)\000\134\0001\000\000", "0B\000a0B\212\260\377\037\212\260\377\037\000\000", 0, 14);
- x2s("\000(\212\260\377\037\000|\000[0B\000-0F\000]\000{\0003\000}\000)\000\134\0001\000\000", "0F0D0F0F0D0F\000\000", 0, 12);
- x2s("\000(\000^0S\000)\000\134\0001\000\000", "0S0S\000\000", 0, 4);
- ns("\000(\000^0\200\000)\000\134\0001\000\000", "0\2010\2000\200\000\000");
- ns("\000(0B\000$\000)\000\134\0001\000\000", "0B0B\000\000");
- ns("\000(0B0D\000\134\000Z\000)\000\134\0001\000\000", "0B0D\000\000");
- x2s("\000(0B\000*\000\134\000Z\000)\000\134\0001\000\000", "0B\000\000", 2, 2);
- x2s("\000.\000(0B\000*\000\134\000Z\000)\000\134\0001\000\000", "0D0B\000\000", 2, 4);
- x3s("\000(\000.\000(0\2040D0\206\000)\000\134\0002\000)\000\000", "\000z0\2040D0\2060\2040D0\206\000\000", 0, 14, 1);
- if (!org.joni.Config.NON_UNICODE_SDW) x3s("\000(\000.\000(\000.\000.\000\134\000d\000.\000)\000\134\0002\000)\000\000", "0B\0001\0002\0003\0004\0001\0002\0003\0004\000\000", 0, 18, 1);
- x2s("\000(\000(\000?\000i\000:0B\000v0Z\000)\000)\000\134\0001\000\000", "0B\000v0Z0B\000v0Z\000\000", 0, 12);
- x2s("\000(\000?\000<a\0320K\000>Y\011\000|\000\134\000(\000\134\000g\000<a\0320K\000>\000\134\000)\000)\000\000", "\000(\000(\000(\000(\000(\000(Y\011\000)\000)\000)\000)\000)\000)\000\000", 0, 26);
- x2s("\000\134\000A\000(\000?\000:\000\134\000g\000<\226?\000_\0001\000>\000|\000\134\000g\000<N\221\000_\0002\000>\000|\000\134\000z}BN\206\000 \000 \000(\000?\000<\226?\000_\0001\000>\211\263\000|\201\352\000\134\000g\000<N\221\000_\0002\000>\201\352\000)\000(\000?\000<N\221\000_\0002\000>W(\000|\203\351\205\251\000\134\000g\000<\226?\000_\0001\000>\203\351\205\251\000)\000)\000$\000\000", "\203\351\205\251\201\352\203\351\205\251\201\352W(\201\352\203\351\205\251\201\352\203\35 [...]
- x2s("\000[\000[0r0u\000]\000]\000\000", "0u\000\000", 0, 2);
- x2s("\000[\000[0D0J0F\000]0K\000]\000\000", "0K\000\000", 0, 2);
- ns("\000[\000[\000^0B\000]\000]\000\000", "0B\000\000");
- ns("\000[\000^\000[0B\000]\000]\000\000", "0B\000\000");
- x2s("\000[\000^\000[\000^0B\000]\000]\000\000", "0B\000\000", 0, 2);
- x2s("\000[\000[0K0M0O\000]\000&\000&0M0O\000]\000\000", "0O\000\000", 0, 2);
- ns("\000[\000[0K0M0O\000]\000&\000&0M0O\000]\000\000", "0K\000\000");
- ns("\000[\000[0K0M0O\000]\000&\000&0M0O\000]\000\000", "0Q\000\000");
- x2s("\000[0B\000-0\223\000&\000&0D\000-0\222\000&\000&0F\000-0\221\000]\000\000", "0\221\000\000", 0, 2);
- ns("\000[\000^0B\000-0\223\000&\000&0D\000-0\222\000&\000&0F\000-0\221\000]\000\000", "0\221\000\000");
- x2s("\000[\000[\000^0B\000&\000&0B\000]\000&\000&0B\000-0\223\000]\000\000", "0D\000\000", 0, 2);
- ns("\000[\000[\000^0B\000&\000&0B\000]\000&\000&0B\000-0\223\000]\000\000", "0B\000\000");
- x2s("\000[\000[\000^0B\000-0\223\000&\000&0D0F0H0J\000]\000&\000&\000[\000^0F\000-0K\000]\000]\000\000", "0M\000\000", 0, 2);
- ns("\000[\000[\000^0B\000-0\223\000&\000&0D0F0H0J\000]\000&\000&\000[\000^0F\000-0K\000]\000]\000\000", "0D\000\000");
- x2s("\000[\000^\000[\000^0B0D0F\000]\000&\000&\000[\000^0F0H0J\000]\000]\000\000", "0F\000\000", 0, 2);
- x2s("\000[\000^\000[\000^0B0D0F\000]\000&\000&\000[\000^0F0H0J\000]\000]\000\000", "0H\000\000", 0, 2);
- ns("\000[\000^\000[\000^0B0D0F\000]\000&\000&\000[\000^0F0H0J\000]\000]\000\000", "0K\000\000");
- x2s("\000[0B\000-\000&\000&\000-0B\000]\000\000", "\000-\000\000", 0, 2);
- x2s("\000[\000^\000[\000^\000a\000-\000z0B0D0F\000]\000&\000&\000[\000^\000b\000c\000d\000e\000f\000g0F0H0J\000]\000q\000-\000w\000]\000\000", "0H\000\000", 0, 2);
- x2s("\000[\000^\000[\000^\000a\000-\000z0B0D0F\000]\000&\000&\000[\000^\000b\000c\000d\000e\000f\000g0F0H0J\000]\000g\000-\000w\000]\000\000", "\000f\000\000", 0, 2);
- x2s("\000[\000^\000[\000^\000a\000-\000z0B0D0F\000]\000&\000&\000[\000^\000b\000c\000d\000e\000f\000g0F0H0J\000]\000g\000-\000w\000]\000\000", "\000g\000\000", 0, 2);
- ns("\000[\000^\000[\000^\000a\000-\000z0B0D0F\000]\000&\000&\000[\000^\000b\000c\000d\000e\000f\000g0F0H0J\000]\000g\000-\000w\000]\000\000", "\0002\000\000");
- x2s("\000a\000<\000b\000>0\3200\3740\2700\3470\3630n0\3000\2460\3630\3550\3740\311\000<\000\134\000/\000b\000>\000\000", "\000a\000<\000b\000>0\3200\3740\2700\3470\3630n0\3000\2460\3630\3550\3740\311\000<\000/\000b\000>\000\000", 0, 40);
- x2s("\000.\000<\000b\000>0\3200\3740\2700\3470\3630n0\3000\2460\3630\3550\3740\311\000<\000\134\000/\000b\000>\000\000", "\000a\000<\000b\000>0\3200\3740\2700\3470\3630n0\3000\2460\3630\3550\3740\311\000<\000/\000b\000>\000\000", 0, 40);
-
- // Unicode case folding tests
- // common case folding: u+0041 and u+0061
- x2s("\u0000\u0041\000\000", "\u0000\u0061\000\000", 0, 2, Option.IGNORECASE);
- x2s("\u0000\u0061\000\000", "\u0000\u0041\000\000", 0, 2, Option.IGNORECASE);
- // common case folding: u+00C0 and u+00E0
- x2s("\u0000\u00C0\000\000", "\u0000\u00E0\000\000", 0, 2, Option.IGNORECASE);
- x2s("\u0000\u00E0\000\000", "\u0000\u00C0\000\000", 0, 2, Option.IGNORECASE);
- // common case folding: u+00B5 and u+03BC
- x2s("\u0000\u00B5\000\000", "\u0003\u00BC\000\000", 0, 2, Option.IGNORECASE);
- x2s("\u0003\u00BC\000\000", "\u0000\u00B5\000\000", 0, 2, Option.IGNORECASE);
- // common case folding: u+0073 and u+017F
- x2s("\u0000\u0073\000\000", "\u0001\u007F\000\000", 0, 2, Option.IGNORECASE);
- x2s("\u0001\u007F\000\000", "\u0000\u0073\000\000", 0, 2, Option.IGNORECASE);
- // full case folding: u+1FA0 and u+1F60 u+03B9
- x2s("\u001F\u00A0\000\000", "\u001F\u0060\u0003\u00B9\000\000", 0, 4, Option.IGNORECASE);
- x2s("\u001F\u0060\u0003\u00B9\000\000", "\u001F\u00A0\000\000", 0, 2, Option.IGNORECASE);
- // full case folding: u+1FA8 and u+1F60 u+03B9
- x2s("\u001F\u00A8\000\000", "\u001F\u0060\u0003\u00B9\000\000", 0, 4, Option.IGNORECASE);
- x2s("\u001F\u0060\u0003\u00B9\000\000", "\u001F\u00A8\000\000", 0, 2, Option.IGNORECASE);
- // simple case folding: u+1FA8 and u+1FA0
- x2s("\u001F\u00A8\000\000", "\u001F\u00A0\000\000", 0, 2, Option.IGNORECASE);
- x2s("\u001F\u00A0\000\000", "\u001F\u00A8\000\000", 0, 2, Option.IGNORECASE);
- // FIXME: Case folding for 'LATIN CAPITAL LETTER SHARP S' not supported
- // full case folding: u+1E9E and u+0073 u+0073
- // x2s("\u001E\u009E\000\000", "\u0000\u0073\u0000\u0073\000\000", 0, 4, Option.IGNORECASE);
- // simple case folding: u+1E9E and u+00DF
- // x2s("\u001E\u009E\000\000", "\u0000\u00DF\000\000", 0, 2, Option.IGNORECASE);
-
- // Case fold exceeding Analyser#THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION (= 8)
- x2s("\u0000\u0041\u0000\u0041\u0000\u0041\u0000\u0041\000\000", "\u0000\u0061\u0000\u0061\u0000\u0061\u0000\u0061\000\000", 0, 8, Option.IGNORECASE);
- }
-
- public static void main(String[] args) throws Throwable {
- new TestU().run();
- }
-}
+/*
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+ * of the Software, and to permit persons to whom the Software is furnished to do
+ * so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+package org.joni.test;
+
+import org.joni.Option;
+import org.joni.Syntax;
+import org.jcodings.Encoding;
+import org.jcodings.specific.UTF16BEEncoding;
+
+public class TestU extends Test {
+ @Override
+ public int option() {
+ return Option.DEFAULT;
+ }
+ @Override
+ public Encoding encoding() {
+ return UTF16BEEncoding.INSTANCE;
+ }
+ @Override
+ public String testEncoding() {
+ return "iso-8859-1";
+ }
+ @Override
+ public Syntax syntax() {
+ return Syntax.DEFAULT;
+ }
+
+ private int ulen(byte[]bytes) {
+ return encoding().strByteLengthNull(bytes, 0, bytes.length);
+ }
+
+ private String uconv(byte []bytes, int len) {
+ StringBuilder sb = new StringBuilder();
+
+ for (int i = 0; i < len; i += 2) {
+ int c = bytes[i] & 0xff;
+ // sb.append(String.format("\\%03o", c));
+ if (c == 0) {
+ c = bytes[i+1] & 0xff;
+ if (c < 0x20 || c >= 0x7f || c == 0x5c || c == 0x22) {
+ sb.append(String.format("\\%03o", c));
+ } else {
+ sb.append(new String(new byte[]{(byte)c}));
+ }
+ } else {
+ sb.append(String.format("\\%03o", c));
+ c = bytes[i+1] & 0xff;
+ sb.append(String.format("\\%03o", c));
+ }
+ }
+
+ return sb.toString();
+ }
+
+ protected String repr(byte[]bytes) {
+ return uconv(bytes, ulen(bytes));
+ }
+
+ protected int length(byte[]bytes) {
+ return ulen(bytes);
+ }
+ @Override
+ public void test() throws Exception {
+ x2s("\000\000", "\000\000", 0, 0);
+ x2s("\000^\000\000", "\000\000", 0, 0);
+ x2s("\000$\000\000", "\000\000", 0, 0);
+ x2s("\000\134\000G\000\000", "\000\000", 0, 0);
+ x2s("\000\134\000A\000\000", "\000\000", 0, 0);
+ x2s("\000\134\000Z\000\000", "\000\000", 0, 0);
+ x2s("\000\134\000z\000\000", "\000\000", 0, 0);
+ x2s("\000^\000$\000\000", "\000\000", 0, 0);
+ x2s("\000\134\000c\000a\000\000", "\000\001\000\000", 0, 2);
+ x2s("\000\134\000C\000-\000b\000\000", "\000\002\000\000", 0, 2);
+ x2s("\000\134\000c\000\134\000\134\000\000", "\000\034\000\000", 0, 2);
+ x2s("\000q\000[\000\134\000c\000\134\000\134\000]\000\000", "\000q\000\034\000\000", 0, 4);
+ x2s("\000\000", "\000a\000\000", 0, 0);
+ x2s("\000a\000\000", "\000a\000\000", 0, 2);
+ x2s("\000\134\000x\0000\0000\000\134\000x\0006\0001\000\000", "\000a\000\000", 0, 2);
+ x2s("\000a\000a\000\000", "\000a\000a\000\000", 0, 4);
+ x2s("\000a\000a\000a\000\000", "\000a\000a\000a\000\000", 0, 6);
+ x2s("\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000\000", "\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000\000", 0, 70);
+ x2s("\000a\000b\000\000", "\000a\000b\000\000", 0, 4);
+ x2s("\000b\000\000", "\000a\000b\000\000", 2, 4);
+ x2s("\000b\000c\000\000", "\000a\000b\000c\000\000", 2, 6);
+ x2s("\000(\000?\000i\000:\000#\000R\000E\000T\000#\000)\000\000", "\000#\000I\000N\000S\000#\000#\000R\000E\000T\000#\000\000", 10, 20);
+ x2s("\000\134\0000\0000\0000\000\134\0001\0007\000\000", "\000\017\000\000", 0, 2);
+ x2s("\000\134\000x\0000\0000\000\134\000x\0001\000f\000\000", "\000\037\000\000", 0, 2);
+ x2s("\000a\000(\000?\000#\000.\000.\000.\000.\000\134\000\134\000J\000J\000J\000J\000)\000b\000\000", "\000a\000b\000\000", 0, 4);
+ x2s("\000(\000?\000x\000)\000 \000 \000G\000 \000(\000o\000 \000O\000(\000?\000-\000x\000)\000o\000O\000)\000 \000g\000 \000L\000\000", "\000G\000o\000O\000o\000O\000g\000L\000e\000\000", 0, 14);
+ x2s("\000.\000\000", "\000a\000\000", 0, 2);
+ ns("\000.\000\000", "\000\000");
+ x2s("\000.\000.\000\000", "\000a\000b\000\000", 0, 4);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000w\000\000", "\000e\000\000", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) ns("\000\134\000W\000\000", "\000e\000\000");
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000s\000\000", "\000 \000\000", 0, 2);
+ x2s("\000\134\000S\000\000", "\000b\000\000", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000d\000\000", "\0004\000\000", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) ns("\000\134\000D\000\000", "\0004\000\000");
+ x2s("\000\134\000b\000\000", "\000z\000 \000\000", 0, 0);
+ x2s("\000\134\000b\000\000", "\000 \000z\000\000", 2, 2);
+ x2s("\000\134\000B\000\000", "\000z\000z\000 \000\000", 2, 2);
+ x2s("\000\134\000B\000\000", "\000z\000 \000\000", 4, 4);
+ x2s("\000\134\000B\000\000", "\000 \000z\000\000", 0, 0);
+ x2s("\000[\000a\000b\000]\000\000", "\000b\000\000", 0, 2);
+ ns("\000[\000a\000b\000]\000\000", "\000c\000\000");
+ x2s("\000[\000a\000-\000z\000]\000\000", "\000t\000\000", 0, 2);
+ ns("\000[\000^\000a\000]\000\000", "\000a\000\000");
+ x2s("\000[\000^\000a\000]\000\000", "\000\012\000\000", 0, 2);
+ x2s("\000[\000]\000]\000\000", "\000]\000\000", 0, 2);
+ ns("\000[\000^\000]\000]\000\000", "\000]\000\000");
+ x2s("\000[\000\134\000^\000]\000+\000\000", "\0000\000^\000^\0001\000\000", 2, 6);
+ x2s("\000[\000b\000-\000]\000\000", "\000b\000\000", 0, 2);
+ x2s("\000[\000b\000-\000]\000\000", "\000-\000\000", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000[\000\134\000w\000]\000\000", "\000z\000\000", 0, 2);
+ ns("\000[\000\134\000w\000]\000\000", "\000 \000\000");
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000[\000\134\000W\000]\000\000", "\000b\000$\000\000", 2, 4);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000[\000\134\000d\000]\000\000", "\0005\000\000", 0, 2);
+ ns("\000[\000\134\000d\000]\000\000", "\000e\000\000");
+ x2s("\000[\000\134\000D\000]\000\000", "\000t\000\000", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) ns("\000[\000\134\000D\000]\000\000", "\0003\000\000");
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000[\000\134\000s\000]\000\000", "\000 \000\000", 0, 2);
+ ns("\000[\000\134\000s\000]\000\000", "\000a\000\000");
+ x2s("\000[\000\134\000S\000]\000\000", "\000b\000\000", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) ns("\000[\000\134\000S\000]\000\000", "\000 \000\000");
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000[\000\134\000w\000\134\000d\000]\000\000", "\0002\000\000", 0, 2);
+ ns("\000[\000\134\000w\000\134\000d\000]\000\000", "\000 \000\000");
+ x2s("\000[\000[\000:\000u\000p\000p\000e\000r\000:\000]\000]\000\000", "\000B\000\000", 0, 2);
+ x2s("\000[\000*\000[\000:\000x\000d\000i\000g\000i\000t\000:\000]\000+\000]\000\000", "\000+\000\000", 0, 2);
+ x2s("\000[\000*\000[\000:\000x\000d\000i\000g\000i\000t\000:\000]\000+\000]\000\000", "\000G\000H\000I\000K\000K\000-\0009\000+\000*\000\000", 12, 14);
+ x2s("\000[\000*\000[\000:\000x\000d\000i\000g\000i\000t\000:\000]\000+\000]\000\000", "\000-\000@\000^\000+\000\000", 6, 8);
+ ns("\000[\000[\000:\000u\000p\000p\000e\000r\000]\000]\000\000", "\000A\000\000");
+ x2s("\000[\000[\000:\000u\000p\000p\000e\000r\000]\000]\000\000", "\000:\000\000", 0, 2);
+ x2s("\000[\000\134\0000\0000\0000\000\134\0000\0004\0004\000-\000\134\0000\0000\0000\000\134\0000\0004\0007\000]\000\000", "\000&\000\000", 0, 2);
+ x2s("\000[\000\134\000x\0000\0000\000\134\000x\0005\000a\000-\000\134\000x\0000\0000\000\134\000x\0005\000c\000]\000\000", "\000[\000\000", 0, 2);
+ x2s("\000[\000\134\000x\0000\0000\000\134\000x\0006\000A\000-\000\134\000x\0000\0000\000\134\000x\0006\000D\000]\000\000", "\000l\000\000", 0, 2);
+ ns("\000[\000\134\000x\0000\0000\000\134\000x\0006\000A\000-\000\134\000x\0000\0000\000\134\000x\0006\000D\000]\000\000", "\000n\000\000");
+ ns("\000^\000[\0000\000-\0009\000A\000-\000F\000]\000+\000 \0000\000+\000 \000U\000N\000D\000E\000F\000 \000\000", "\0007\0005\000F\000 \0000\0000\0000\0000\0000\0000\0000\0000\000 \000S\000E\000C\000T\0001\0004\000A\000 \000n\000o\000t\000y\000p\000e\000 \000(\000)\000 \000 \000 \000 \000E\000x\000t\000e\000r\000n\000a\000l\000 \000 \000 \000 \000|\000 \000_\000r\000b\000_\000a\000p\000p\000l\000y\000\000");
+ x2s("\000[\000\134\000[\000]\000\000", "\000[\000\000", 0, 2);
+ x2s("\000[\000\134\000]\000]\000\000", "\000]\000\000", 0, 2);
+ x2s("\000[\000&\000]\000\000", "\000&\000\000", 0, 2);
+ x2s("\000[\000[\000a\000b\000]\000]\000\000", "\000b\000\000", 0, 2);
+ x2s("\000[\000[\000a\000b\000]\000c\000]\000\000", "\000c\000\000", 0, 2);
+ ns("\000[\000[\000^\000a\000]\000]\000\000", "\000a\000\000");
+ ns("\000[\000^\000[\000a\000]\000]\000\000", "\000a\000\000");
+ x2s("\000[\000[\000a\000b\000]\000&\000&\000b\000c\000]\000\000", "\000b\000\000", 0, 2);
+ ns("\000[\000[\000a\000b\000]\000&\000&\000b\000c\000]\000\000", "\000a\000\000");
+ ns("\000[\000[\000a\000b\000]\000&\000&\000b\000c\000]\000\000", "\000c\000\000");
+ x2s("\000[\000a\000-\000z\000&\000&\000b\000-\000y\000&\000&\000c\000-\000x\000]\000\000", "\000w\000\000", 0, 2);
+ ns("\000[\000^\000a\000-\000z\000&\000&\000b\000-\000y\000&\000&\000c\000-\000x\000]\000\000", "\000w\000\000");
+ x2s("\000[\000[\000^\000a\000&\000&\000a\000]\000&\000&\000a\000-\000z\000]\000\000", "\000b\000\000", 0, 2);
+ ns("\000[\000[\000^\000a\000&\000&\000a\000]\000&\000&\000a\000-\000z\000]\000\000", "\000a\000\000");
+ x2s("\000[\000[\000^\000a\000-\000z\000&\000&\000b\000c\000d\000e\000f\000]\000&\000&\000[\000^\000c\000-\000g\000]\000]\000\000", "\000h\000\000", 0, 2);
+ ns("\000[\000[\000^\000a\000-\000z\000&\000&\000b\000c\000d\000e\000f\000]\000&\000&\000[\000^\000c\000-\000g\000]\000]\000\000", "\000c\000\000");
+ x2s("\000[\000^\000[\000^\000a\000b\000c\000]\000&\000&\000[\000^\000c\000d\000e\000]\000]\000\000", "\000c\000\000", 0, 2);
+ x2s("\000[\000^\000[\000^\000a\000b\000c\000]\000&\000&\000[\000^\000c\000d\000e\000]\000]\000\000", "\000e\000\000", 0, 2);
+ ns("\000[\000^\000[\000^\000a\000b\000c\000]\000&\000&\000[\000^\000c\000d\000e\000]\000]\000\000", "\000f\000\000");
+ x2s("\000[\000a\000-\000&\000&\000-\000a\000]\000\000", "\000-\000\000", 0, 2);
+ ns("\000[\000a\000\134\000-\000&\000&\000\134\000-\000a\000]\000\000", "\000&\000\000");
+ ns("\000\134\000w\000a\000b\000c\000\000", "\000 \000a\000b\000c\000\000");
+ x2s("\000a\000\134\000W\000b\000c\000\000", "\000a\000 \000b\000c\000\000", 0, 8);
+ x2s("\000a\000.\000b\000.\000c\000\000", "\000a\000a\000b\000b\000c\000\000", 0, 10);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000.\000\134\000w\000b\000\134\000W\000.\000.\000c\000\000", "\000a\000b\000b\000 \000b\000c\000c\000\000", 0, 14);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000s\000\134\000w\000z\000z\000z\000\000", "\000 \000z\000z\000z\000z\000\000", 0, 10);
+ x2s("\000a\000a\000.\000b\000\000", "\000a\000a\000b\000b\000\000", 0, 8);
+ ns("\000.\000a\000\000", "\000a\000b\000\000");
+ x2s("\000.\000a\000\000", "\000a\000a\000\000", 0, 4);
+ x2s("\000^\000a\000\000", "\000a\000\000", 0, 2);
+ x2s("\000^\000a\000$\000\000", "\000a\000\000", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000^\000\134\000w\000$\000\000", "\000a\000\000", 0, 2);
+ ns("\000^\000\134\000w\000$\000\000", "\000 \000\000");
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000^\000\134\000w\000a\000b\000$\000\000", "\000z\000a\000b\000\000", 0, 6);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000^\000\134\000w\000a\000b\000c\000d\000e\000f\000$\000\000", "\000z\000a\000b\000c\000d\000e\000f\000\000", 0, 14);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000^\000\134\000w\000.\000.\000.\000d\000e\000f\000$\000\000", "\000z\000a\000b\000c\000d\000e\000f\000\000", 0, 14);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000w\000\134\000w\000\134\000s\000\134\000W\000a\000a\000a\000\134\000d\000\000", "\000a\000a\000 \000 \000a\000a\000a\0004\000\000", 0, 16);
+ x2s("\000\134\000A\000\134\000Z\000\000", "\000\000", 0, 0);
+ x2s("\000\134\000A\000x\000y\000z\000\000", "\000x\000y\000z\000\000", 0, 6);
+ x2s("\000x\000y\000z\000\134\000Z\000\000", "\000x\000y\000z\000\000", 0, 6);
+ x2s("\000x\000y\000z\000\134\000z\000\000", "\000x\000y\000z\000\000", 0, 6);
+ x2s("\000a\000\134\000Z\000\000", "\000a\000\000", 0, 2);
+ x2s("\000\134\000G\000a\000z\000\000", "\000a\000z\000\000", 0, 4);
+ ns("\000\134\000G\000z\000\000", "\000b\000z\000a\000\000");
+ ns("\000a\000z\000\134\000G\000\000", "\000a\000z\000\000");
+ ns("\000a\000z\000\134\000A\000\000", "\000a\000z\000\000");
+ ns("\000a\000\134\000A\000z\000\000", "\000a\000z\000\000");
+ x2s("\000\134\000^\000\134\000$\000\000", "\000^\000$\000\000", 0, 4);
+ x2s("\000^\000x\000?\000y\000\000", "\000x\000y\000\000", 0, 4);
+ x2s("\000^\000(\000x\000?\000y\000)\000\000", "\000x\000y\000\000", 0, 4);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000w\000\000", "\000_\000\000", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) ns("\000\134\000W\000\000", "\000_\000\000");
+ x2s("\000(\000?\000=\000z\000)\000z\000\000", "\000z\000\000", 0, 2);
+ ns("\000(\000?\000=\000z\000)\000.\000\000", "\000a\000\000");
+ x2s("\000(\000?\000!\000z\000)\000a\000\000", "\000a\000\000", 0, 2);
+ ns("\000(\000?\000!\000z\000)\000a\000\000", "\000z\000\000");
+ x2s("\000(\000?\000i\000:\000a\000)\000\000", "\000a\000\000", 0, 2);
+ x2s("\000(\000?\000i\000:\000a\000)\000\000", "\000A\000\000", 0, 2);
+ x2s("\000(\000?\000i\000:\000A\000)\000\000", "\000a\000\000", 0, 2);
+ ns("\000(\000?\000i\000:\000A\000)\000\000", "\000b\000\000");
+ x2s("\000(\000?\000i\000:\000[\000A\000-\000Z\000]\000)\000\000", "\000a\000\000", 0, 2);
+ x2s("\000(\000?\000i\000:\000[\000f\000-\000m\000]\000)\000\000", "\000H\000\000", 0, 2);
+ x2s("\000(\000?\000i\000:\000[\000f\000-\000m\000]\000)\000\000", "\000h\000\000", 0, 2);
+ ns("\000(\000?\000i\000:\000[\000f\000-\000m\000]\000)\000\000", "\000e\000\000");
+ x2s("\000(\000?\000i\000:\000[\000A\000-\000c\000]\000)\000\000", "\000D\000\000", 0, 2);
+ ns("\000(\000?\000i\000:\000[\000^\000a\000-\000z\000]\000)\000\000", "\000A\000\000");
+ ns("\000(\000?\000i\000:\000[\000^\000a\000-\000z\000]\000)\000\000", "\000a\000\000");
+ x2s("\000(\000?\000i\000:\000[\000!\000-\000k\000]\000)\000\000", "\000Z\000\000", 0, 2);
+ x2s("\000(\000?\000i\000:\000[\000!\000-\000k\000]\000)\000\000", "\0007\000\000", 0, 2);
+ x2s("\000(\000?\000i\000:\000[\000T\000-\000}\000]\000)\000\000", "\000b\000\000", 0, 2);
+ x2s("\000(\000?\000i\000:\000[\000T\000-\000}\000]\000)\000\000", "\000{\000\000", 0, 2);
+ x2s("\000(\000?\000i\000:\000\134\000?\000a\000)\000\000", "\000?\000A\000\000", 0, 4);
+ x2s("\000(\000?\000i\000:\000\134\000*\000A\000)\000\000", "\000*\000a\000\000", 0, 4);
+ ns("\000.\000\000", "\000\012\000\000");
+ x2s("\000(\000?\000m\000:\000.\000)\000\000", "\000\012\000\000", 0, 2);
+ x2s("\000(\000?\000m\000:\000a\000.\000)\000\000", "\000a\000\012\000\000", 0, 4);
+ x2s("\000(\000?\000m\000:\000.\000b\000)\000\000", "\000a\000\012\000b\000\000", 2, 6);
+ x2s("\000.\000*\000a\000b\000c\000\000", "\000d\000d\000d\000a\000b\000d\000d\000\012\000d\000d\000a\000b\000c\000\000", 16, 26);
+ x2s("\000(\000?\000m\000:\000.\000*\000a\000b\000c\000)\000\000", "\000d\000d\000d\000a\000b\000d\000d\000a\000b\000c\000\000", 0, 20);
+ ns("\000(\000?\000i\000)\000(\000?\000-\000i\000)\000a\000\000", "\000A\000\000");
+ ns("\000(\000?\000i\000)\000(\000?\000-\000i\000:\000a\000)\000\000", "\000A\000\000");
+ x2s("\000a\000?\000\000", "\000\000", 0, 0);
+ x2s("\000a\000?\000\000", "\000b\000\000", 0, 0);
+ x2s("\000a\000?\000\000", "\000a\000\000", 0, 2);
+ x2s("\000a\000*\000\000", "\000\000", 0, 0);
+ x2s("\000a\000*\000\000", "\000a\000\000", 0, 2);
+ x2s("\000a\000*\000\000", "\000a\000a\000a\000\000", 0, 6);
+ x2s("\000a\000*\000\000", "\000b\000a\000a\000a\000a\000\000", 0, 0);
+ ns("\000a\000+\000\000", "\000\000");
+ x2s("\000a\000+\000\000", "\000a\000\000", 0, 2);
+ x2s("\000a\000+\000\000", "\000a\000a\000a\000a\000\000", 0, 8);
+ x2s("\000a\000+\000\000", "\000a\000a\000b\000b\000b\000\000", 0, 4);
+ x2s("\000a\000+\000\000", "\000b\000a\000a\000a\000a\000\000", 2, 10);
+ x2s("\000.\000?\000\000", "\000\000", 0, 0);
+ x2s("\000.\000?\000\000", "\000f\000\000", 0, 2);
+ x2s("\000.\000?\000\000", "\000\012\000\000", 0, 0);
+ x2s("\000.\000*\000\000", "\000\000", 0, 0);
+ x2s("\000.\000*\000\000", "\000a\000b\000c\000d\000e\000\000", 0, 10);
+ x2s("\000.\000+\000\000", "\000z\000\000", 0, 2);
+ x2s("\000.\000+\000\000", "\000z\000d\000s\000w\000e\000r\000\012\000\000", 0, 12);
+ x2s("\000(\000.\000*\000)\000a\000\134\0001\000f\000\000", "\000b\000a\000b\000f\000b\000a\000c\000\000", 0, 8);
+ x2s("\000(\000.\000*\000)\000a\000\134\0001\000f\000\000", "\000b\000a\000c\000b\000a\000b\000f\000\000", 6, 14);
+ x2s("\000(\000(\000.\000*\000)\000a\000\134\0002\000f\000)\000\000", "\000b\000a\000c\000b\000a\000b\000f\000\000", 6, 14);
+ x2s("\000(\000.\000*\000)\000a\000\134\0001\000f\000\000", "\000b\000a\000c\000z\000z\000z\000z\000z\000z\000\012\000b\000a\000z\000z\000\012\000z\000z\000z\000z\000b\000a\000b\000f\000\000", 38, 46);
+ x2s("\000a\000|\000b\000\000", "\000a\000\000", 0, 2);
+ x2s("\000a\000|\000b\000\000", "\000b\000\000", 0, 2);
+ x2s("\000|\000a\000\000", "\000a\000\000", 0, 0);
+ x2s("\000(\000|\000a\000)\000\000", "\000a\000\000", 0, 0);
+ x2s("\000a\000b\000|\000b\000c\000\000", "\000a\000b\000\000", 0, 4);
+ x2s("\000a\000b\000|\000b\000c\000\000", "\000b\000c\000\000", 0, 4);
+ x2s("\000z\000(\000?\000:\000a\000b\000|\000b\000c\000)\000\000", "\000z\000b\000c\000\000", 0, 6);
+ x2s("\000a\000(\000?\000:\000a\000b\000|\000b\000c\000)\000c\000\000", "\000a\000a\000b\000c\000\000", 0, 8);
+ x2s("\000a\000b\000|\000(\000?\000:\000a\000c\000|\000a\000z\000)\000\000", "\000a\000z\000\000", 0, 4);
+ x2s("\000a\000|\000b\000|\000c\000\000", "\000d\000c\000\000", 2, 4);
+ x2s("\000a\000|\000b\000|\000c\000d\000|\000e\000f\000g\000|\000h\000|\000i\000j\000k\000|\000l\000m\000n\000|\000o\000|\000p\000q\000|\000r\000s\000t\000u\000v\000w\000x\000|\000y\000z\000\000", "\000p\000q\000r\000\000", 0, 4);
+ ns("\000a\000|\000b\000|\000c\000d\000|\000e\000f\000g\000|\000h\000|\000i\000j\000k\000|\000l\000m\000n\000|\000o\000|\000p\000q\000|\000r\000s\000t\000u\000v\000w\000x\000|\000y\000z\000\000", "\000m\000n\000\000");
+ x2s("\000a\000|\000^\000z\000\000", "\000b\000a\000\000", 2, 4);
+ x2s("\000a\000|\000^\000z\000\000", "\000z\000a\000\000", 0, 2);
+ x2s("\000a\000|\000\134\000G\000z\000\000", "\000b\000z\000a\000\000", 4, 6);
+ x2s("\000a\000|\000\134\000G\000z\000\000", "\000z\000a\000\000", 0, 2);
+ x2s("\000a\000|\000\134\000A\000z\000\000", "\000b\000z\000a\000\000", 4, 6);
+ x2s("\000a\000|\000\134\000A\000z\000\000", "\000z\000a\000\000", 0, 2);
+ x2s("\000a\000|\000b\000\134\000Z\000\000", "\000b\000a\000\000", 2, 4);
+ x2s("\000a\000|\000b\000\134\000Z\000\000", "\000b\000\000", 0, 2);
+ x2s("\000a\000|\000b\000\134\000z\000\000", "\000b\000a\000\000", 2, 4);
+ x2s("\000a\000|\000b\000\134\000z\000\000", "\000b\000\000", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000w\000|\000\134\000s\000\000", "\000 \000\000", 0, 2);
+ ns("\000\134\000w\000|\000\134\000w\000\000", "\000 \000\000");
+ x2s("\000\134\000w\000|\000%\000\000", "\000%\000\000", 0, 2);
+ x2s("\000\134\000w\000|\000[\000&\000$\000]\000\000", "\000&\000\000", 0, 2);
+ x2s("\000[\000b\000-\000d\000]\000|\000[\000^\000e\000-\000z\000]\000\000", "\000a\000\000", 0, 2);
+ x2s("\000(\000?\000:\000a\000|\000[\000c\000-\000f\000]\000)\000|\000b\000z\000\000", "\000d\000z\000\000", 0, 2);
+ x2s("\000(\000?\000:\000a\000|\000[\000c\000-\000f\000]\000)\000|\000b\000z\000\000", "\000b\000z\000\000", 0, 4);
+ x2s("\000a\000b\000c\000|\000(\000?\000=\000z\000z\000)\000.\000.\000f\000\000", "\000z\000z\000f\000\000", 0, 6);
+ x2s("\000a\000b\000c\000|\000(\000?\000!\000z\000z\000)\000.\000.\000f\000\000", "\000a\000b\000f\000\000", 0, 6);
+ x2s("\000(\000?\000=\000z\000a\000)\000.\000.\000a\000|\000(\000?\000=\000z\000z\000)\000.\000.\000a\000\000", "\000z\000z\000a\000\000", 0, 6);
+ ns("\000(\000?\000>\000a\000|\000a\000b\000d\000)\000c\000\000", "\000a\000b\000d\000c\000\000");
+ x2s("\000(\000?\000>\000a\000b\000d\000|\000a\000)\000c\000\000", "\000a\000b\000d\000c\000\000", 0, 8);
+ x2s("\000a\000?\000|\000b\000\000", "\000a\000\000", 0, 2);
+ x2s("\000a\000?\000|\000b\000\000", "\000b\000\000", 0, 0);
+ x2s("\000a\000?\000|\000b\000\000", "\000\000", 0, 0);
+ x2s("\000a\000*\000|\000b\000\000", "\000a\000a\000\000", 0, 4);
+ x2s("\000a\000*\000|\000b\000*\000\000", "\000b\000a\000\000", 0, 0);
+ x2s("\000a\000*\000|\000b\000*\000\000", "\000a\000b\000\000", 0, 2);
+ x2s("\000a\000+\000|\000b\000*\000\000", "\000\000", 0, 0);
+ x2s("\000a\000+\000|\000b\000*\000\000", "\000b\000b\000b\000\000", 0, 6);
+ x2s("\000a\000+\000|\000b\000*\000\000", "\000a\000b\000b\000b\000\000", 0, 2);
+ ns("\000a\000+\000|\000b\000+\000\000", "\000\000");
+ x2s("\000(\000a\000|\000b\000)\000?\000\000", "\000b\000\000", 0, 2);
+ x2s("\000(\000a\000|\000b\000)\000*\000\000", "\000b\000a\000\000", 0, 4);
+ x2s("\000(\000a\000|\000b\000)\000+\000\000", "\000b\000a\000b\000\000", 0, 6);
+ x2s("\000(\000a\000b\000|\000c\000a\000)\000+\000\000", "\000c\000a\000a\000b\000b\000c\000\000", 0, 8);
+ x2s("\000(\000a\000b\000|\000c\000a\000)\000+\000\000", "\000a\000a\000b\000c\000a\000\000", 2, 10);
+ x2s("\000(\000a\000b\000|\000c\000a\000)\000+\000\000", "\000a\000b\000z\000c\000a\000\000", 0, 4);
+ x2s("\000(\000a\000|\000b\000a\000b\000)\000+\000\000", "\000a\000b\000a\000b\000a\000\000", 0, 10);
+ x2s("\000(\000a\000|\000b\000a\000b\000)\000+\000\000", "\000b\000a\000\000", 2, 4);
+ x2s("\000(\000a\000|\000b\000a\000b\000)\000+\000\000", "\000b\000a\000a\000a\000b\000a\000\000", 2, 8);
+ x2s("\000(\000?\000:\000a\000|\000b\000)\000(\000?\000:\000a\000|\000b\000)\000\000", "\000a\000b\000\000", 0, 4);
+ x2s("\000(\000?\000:\000a\000*\000|\000b\000*\000)\000(\000?\000:\000a\000*\000|\000b\000*\000)\000\000", "\000a\000a\000a\000b\000b\000b\000\000", 0, 6);
+ x2s("\000(\000?\000:\000a\000*\000|\000b\000*\000)\000(\000?\000:\000a\000+\000|\000b\000+\000)\000\000", "\000a\000a\000a\000b\000b\000b\000\000", 0, 12);
+ x2s("\000(\000?\000:\000a\000+\000|\000b\000+\000)\000{\0002\000}\000\000", "\000a\000a\000a\000b\000b\000b\000\000", 0, 12);
+ x2s("\000h\000{\0000\000,\000}\000\000", "\000h\000h\000h\000h\000\000", 0, 8);
+ x2s("\000(\000?\000:\000a\000+\000|\000b\000+\000)\000{\0001\000,\0002\000}\000\000", "\000a\000a\000a\000b\000b\000b\000\000", 0, 12);
+ ns("\000a\000x\000{\0002\000}\000*\000a\000\000", "\0000\000a\000x\000x\000x\000a\0001\000\000");
+ ns("\000a\000.\000{\0000\000,\0002\000}\000a\000\000", "\0000\000a\000X\000X\000X\000a\0000\000\000");
+ ns("\000a\000.\000{\0000\000,\0002\000}\000?\000a\000\000", "\0000\000a\000X\000X\000X\000a\0000\000\000");
+ ns("\000a\000.\000{\0000\000,\0002\000}\000?\000a\000\000", "\0000\000a\000X\000X\000X\000X\000a\0000\000\000");
+ x2s("\000^\000a\000{\0002\000,\000}\000?\000a\000$\000\000", "\000a\000a\000a\000\000", 0, 6);
+ x2s("\000^\000[\000a\000-\000z\000]\000{\0002\000,\000}\000?\000$\000\000", "\000a\000a\000a\000\000", 0, 6);
+ x2s("\000(\000?\000:\000a\000+\000|\000\134\000A\000b\000*\000)\000c\000c\000\000", "\000c\000c\000\000", 0, 4);
+ ns("\000(\000?\000:\000a\000+\000|\000\134\000A\000b\000*\000)\000c\000c\000\000", "\000a\000b\000c\000c\000\000");
+ x2s("\000(\000?\000:\000^\000a\000+\000|\000b\000+\000)\000*\000c\000\000", "\000a\000a\000b\000b\000b\000a\000b\000c\000\000", 12, 16);
+ x2s("\000(\000?\000:\000^\000a\000+\000|\000b\000+\000)\000*\000c\000\000", "\000a\000a\000b\000b\000b\000b\000c\000\000", 0, 14);
+ x2s("\000a\000|\000(\000?\000i\000)\000c\000\000", "\000C\000\000", 0, 2);
+ x2s("\000(\000?\000i\000)\000c\000|\000a\000\000", "\000C\000\000", 0, 2);
+ x2s("\000(\000?\000i\000)\000c\000|\000a\000\000", "\000A\000\000", 0, 2);
+ x2s("\000(\000?\000i\000:\000c\000)\000|\000a\000\000", "\000C\000\000", 0, 2);
+ ns("\000(\000?\000i\000:\000c\000)\000|\000a\000\000", "\000A\000\000");
+ x2s("\000[\000a\000b\000c\000]\000?\000\000", "\000a\000b\000c\000\000", 0, 2);
+ x2s("\000[\000a\000b\000c\000]\000*\000\000", "\000a\000b\000c\000\000", 0, 6);
+ x2s("\000[\000^\000a\000b\000c\000]\000*\000\000", "\000a\000b\000c\000\000", 0, 0);
+ ns("\000[\000^\000a\000b\000c\000]\000+\000\000", "\000a\000b\000c\000\000");
+ x2s("\000a\000?\000?\000\000", "\000a\000a\000a\000\000", 0, 0);
+ x2s("\000b\000a\000?\000?\000b\000\000", "\000b\000a\000b\000\000", 0, 6);
+ x2s("\000a\000*\000?\000\000", "\000a\000a\000a\000\000", 0, 0);
+ x2s("\000b\000a\000*\000?\000\000", "\000b\000a\000a\000\000", 0, 2);
+ x2s("\000b\000a\000*\000?\000b\000\000", "\000b\000a\000a\000b\000\000", 0, 8);
+ x2s("\000a\000+\000?\000\000", "\000a\000a\000a\000\000", 0, 2);
+ x2s("\000b\000a\000+\000?\000\000", "\000b\000a\000a\000\000", 0, 4);
+ x2s("\000b\000a\000+\000?\000b\000\000", "\000b\000a\000a\000b\000\000", 0, 8);
+ x2s("\000(\000?\000:\000a\000?\000)\000?\000?\000\000", "\000a\000\000", 0, 0);
+ x2s("\000(\000?\000:\000a\000?\000?\000)\000?\000\000", "\000a\000\000", 0, 0);
+ x2s("\000(\000?\000:\000a\000?\000)\000+\000?\000\000", "\000a\000a\000a\000\000", 0, 2);
+ x2s("\000(\000?\000:\000a\000+\000)\000?\000?\000\000", "\000a\000a\000a\000\000", 0, 0);
+ x2s("\000(\000?\000:\000a\000+\000)\000?\000?\000b\000\000", "\000a\000a\000a\000b\000\000", 0, 8);
+ x2s("\000(\000?\000:\000a\000b\000)\000?\000{\0002\000}\000\000", "\000\000", 0, 0);
+ x2s("\000(\000?\000:\000a\000b\000)\000?\000{\0002\000}\000\000", "\000a\000b\000a\000b\000a\000\000", 0, 8);
+ x2s("\000(\000?\000:\000a\000b\000)\000*\000{\0000\000}\000\000", "\000a\000b\000a\000b\000a\000\000", 0, 0);
+ x2s("\000(\000?\000:\000a\000b\000)\000{\0003\000,\000}\000\000", "\000a\000b\000a\000b\000a\000b\000a\000b\000\000", 0, 16);
+ ns("\000(\000?\000:\000a\000b\000)\000{\0003\000,\000}\000\000", "\000a\000b\000a\000b\000\000");
+ x2s("\000(\000?\000:\000a\000b\000)\000{\0002\000,\0004\000}\000\000", "\000a\000b\000a\000b\000a\000b\000\000", 0, 12);
+ x2s("\000(\000?\000:\000a\000b\000)\000{\0002\000,\0004\000}\000\000", "\000a\000b\000a\000b\000a\000b\000a\000b\000a\000b\000\000", 0, 16);
+ x2s("\000(\000?\000:\000a\000b\000)\000{\0002\000,\0004\000}\000?\000\000", "\000a\000b\000a\000b\000a\000b\000a\000b\000a\000b\000\000", 0, 8);
+ x2s("\000(\000?\000:\000a\000b\000)\000{\000,\000}\000\000", "\000a\000b\000{\000,\000}\000\000", 0, 10);
+ x2s("\000(\000?\000:\000a\000b\000c\000)\000+\000?\000{\0002\000}\000\000", "\000a\000b\000c\000a\000b\000c\000a\000b\000c\000\000", 0, 12);
+ x2s("\000(\000?\000:\000X\000*\000)\000(\000?\000i\000:\000x\000a\000)\000\000", "\000X\000X\000X\000a\000\000", 0, 8);
+ x2s("\000(\000d\000+\000)\000(\000[\000^\000a\000b\000c\000]\000z\000)\000\000", "\000d\000d\000d\000z\000\000", 0, 8);
+ x2s("\000(\000[\000^\000a\000b\000c\000]\000*\000)\000(\000[\000^\000a\000b\000c\000]\000z\000)\000\000", "\000d\000d\000d\000z\000\000", 0, 8);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000(\000\134\000w\000+\000)\000(\000\134\000w\000z\000)\000\000", "\000d\000d\000d\000z\000\000", 0, 8);
+ x3s("\000(\000a\000)\000\000", "\000a\000\000", 0, 2, 1);
+ x3s("\000(\000a\000b\000)\000\000", "\000a\000b\000\000", 0, 4, 1);
+ x2s("\000(\000(\000a\000b\000)\000)\000\000", "\000a\000b\000\000", 0, 4);
+ x3s("\000(\000(\000a\000b\000)\000)\000\000", "\000a\000b\000\000", 0, 4, 1);
+ x3s("\000(\000(\000a\000b\000)\000)\000\000", "\000a\000b\000\000", 0, 4, 2);
+ x3s("\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000a\000b\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000\000", "\000a\000b\000\000", 0, 4, 20);
+ x3s("\000(\000a\000b\000)\000(\000c\000d\000)\000\000", "\000a\000b\000c\000d\000\000", 0, 4, 1);
+ x3s("\000(\000a\000b\000)\000(\000c\000d\000)\000\000", "\000a\000b\000c\000d\000\000", 4, 8, 2);
+ x3s("\000(\000)\000(\000a\000)\000b\000c\000(\000d\000e\000f\000)\000g\000h\000i\000j\000k\000\000", "\000a\000b\000c\000d\000e\000f\000g\000h\000i\000j\000k\000\000", 6, 12, 3);
+ x3s("\000(\000(\000)\000(\000a\000)\000b\000c\000(\000d\000e\000f\000)\000g\000h\000i\000j\000k\000)\000\000", "\000a\000b\000c\000d\000e\000f\000g\000h\000i\000j\000k\000\000", 6, 12, 4);
+ x2s("\000(\000^\000a\000)\000\000", "\000a\000\000", 0, 2);
+ x3s("\000(\000a\000)\000|\000(\000a\000)\000\000", "\000b\000a\000\000", 2, 4, 1);
+ x3s("\000(\000^\000a\000)\000|\000(\000a\000)\000\000", "\000b\000a\000\000", 2, 4, 2);
+ x3s("\000(\000a\000?\000)\000\000", "\000a\000a\000a\000\000", 0, 2, 1);
+ x3s("\000(\000a\000*\000)\000\000", "\000a\000a\000a\000\000", 0, 6, 1);
+ x3s("\000(\000a\000*\000)\000\000", "\000\000", 0, 0, 1);
+ x3s("\000(\000a\000+\000)\000\000", "\000a\000a\000a\000a\000a\000a\000a\000\000", 0, 14, 1);
+ x3s("\000(\000a\000+\000|\000b\000*\000)\000\000", "\000b\000b\000b\000a\000a\000\000", 0, 6, 1);
+ x3s("\000(\000a\000+\000|\000b\000?\000)\000\000", "\000b\000b\000b\000a\000a\000\000", 0, 2, 1);
+ x3s("\000(\000a\000b\000c\000)\000?\000\000", "\000a\000b\000c\000\000", 0, 6, 1);
+ x3s("\000(\000a\000b\000c\000)\000*\000\000", "\000a\000b\000c\000\000", 0, 6, 1);
+ x3s("\000(\000a\000b\000c\000)\000+\000\000", "\000a\000b\000c\000\000", 0, 6, 1);
+ x3s("\000(\000x\000y\000z\000|\000a\000b\000c\000)\000+\000\000", "\000a\000b\000c\000\000", 0, 6, 1);
+ x3s("\000(\000[\000x\000y\000z\000]\000[\000a\000b\000c\000]\000|\000a\000b\000c\000)\000+\000\000", "\000a\000b\000c\000\000", 0, 6, 1);
+ x3s("\000(\000(\000?\000i\000:\000a\000b\000c\000)\000)\000\000", "\000A\000b\000C\000\000", 0, 6, 1);
+ x2s("\000(\000a\000b\000c\000)\000(\000?\000i\000:\000\134\0001\000)\000\000", "\000a\000b\000c\000A\000B\000C\000\000", 0, 12);
+ x3s("\000(\000(\000?\000m\000:\000a\000.\000c\000)\000)\000\000", "\000a\000\012\000c\000\000", 0, 6, 1);
+ x3s("\000(\000(\000?\000=\000a\000z\000)\000a\000)\000\000", "\000a\000z\000b\000\000", 0, 2, 1);
+ x3s("\000a\000b\000c\000|\000(\000.\000a\000b\000d\000)\000\000", "\000z\000a\000b\000d\000\000", 0, 8, 1);
+ x2s("\000(\000?\000:\000a\000b\000c\000)\000|\000(\000A\000B\000C\000)\000\000", "\000a\000b\000c\000\000", 0, 6);
+ x3s("\000(\000?\000i\000:\000(\000a\000b\000c\000)\000)\000|\000(\000z\000z\000z\000)\000\000", "\000A\000B\000C\000\000", 0, 6, 1);
+ x3s("\000a\000*\000(\000.\000)\000\000", "\000a\000a\000a\000a\000z\000\000", 8, 10, 1);
+ x3s("\000a\000*\000?\000(\000.\000)\000\000", "\000a\000a\000a\000a\000z\000\000", 0, 2, 1);
+ x3s("\000a\000*\000?\000(\000c\000)\000\000", "\000a\000a\000a\000a\000c\000\000", 8, 10, 1);
+ x3s("\000[\000b\000c\000d\000]\000a\000*\000(\000.\000)\000\000", "\000c\000a\000a\000a\000a\000z\000\000", 10, 12, 1);
+ x3s("\000(\000\134\000A\000b\000b\000)\000c\000c\000\000", "\000b\000b\000c\000c\000\000", 0, 4, 1);
+ ns("\000(\000\134\000A\000b\000b\000)\000c\000c\000\000", "\000z\000b\000b\000c\000c\000\000");
+ x3s("\000(\000^\000b\000b\000)\000c\000c\000\000", "\000b\000b\000c\000c\000\000", 0, 4, 1);
+ ns("\000(\000^\000b\000b\000)\000c\000c\000\000", "\000z\000b\000b\000c\000c\000\000");
+ x3s("\000c\000c\000(\000b\000b\000$\000)\000\000", "\000c\000c\000b\000b\000\000", 4, 8, 1);
+ ns("\000c\000c\000(\000b\000b\000$\000)\000\000", "\000c\000c\000b\000b\000b\000\000");
+ ns("\000(\000\134\0001\000)\000\000", "\000\000");
+ ns("\000\134\0001\000(\000a\000)\000\000", "\000a\000a\000\000");
+ ns("\000(\000a\000(\000b\000)\000\134\0001\000)\000\134\0002\000+\000\000", "\000a\000b\000a\000b\000b\000\000");
+ ns("\000(\000?\000:\000(\000?\000:\000\134\0001\000|\000z\000)\000(\000a\000)\000)\000+\000$\000\000", "\000z\000a\000a\000\000");
+ x2s("\000(\000?\000:\000(\000?\000:\000\134\0001\000|\000z\000)\000(\000a\000)\000)\000+\000$\000\000", "\000z\000a\000a\000a\000\000", 0, 8);
+ x2s("\000(\000a\000)\000(\000?\000=\000\134\0001\000)\000\000", "\000a\000a\000\000", 0, 2);
+ ns("\000(\000a\000)\000$\000|\000\134\0001\000\000", "\000a\000z\000\000");
+ x2s("\000(\000a\000)\000\134\0001\000\000", "\000a\000a\000\000", 0, 4);
+ ns("\000(\000a\000)\000\134\0001\000\000", "\000a\000b\000\000");
+ x2s("\000(\000a\000?\000)\000\134\0001\000\000", "\000a\000a\000\000", 0, 4);
+ x2s("\000(\000a\000?\000?\000)\000\134\0001\000\000", "\000a\000a\000\000", 0, 0);
+ x2s("\000(\000a\000*\000)\000\134\0001\000\000", "\000a\000a\000a\000a\000a\000\000", 0, 8);
+ x3s("\000(\000a\000*\000)\000\134\0001\000\000", "\000a\000a\000a\000a\000a\000\000", 0, 4, 1);
+ x2s("\000a\000(\000b\000*\000)\000\134\0001\000\000", "\000a\000b\000b\000b\000b\000\000", 0, 10);
+ x2s("\000a\000(\000b\000*\000)\000\134\0001\000\000", "\000a\000b\000\000", 0, 2);
+ x2s("\000(\000a\000*\000)\000(\000b\000*\000)\000\134\0001\000\134\0002\000\000", "\000a\000a\000a\000b\000b\000a\000a\000a\000b\000b\000\000", 0, 20);
+ x2s("\000(\000a\000*\000)\000(\000b\000*\000)\000\134\0002\000\000", "\000a\000a\000a\000b\000b\000b\000b\000\000", 0, 14);
+ x2s("\000(\000(\000(\000(\000(\000(\000(\000a\000*\000)\000b\000)\000)\000)\000)\000)\000)\000c\000\134\0007\000\000", "\000a\000a\000a\000b\000c\000a\000a\000a\000\000", 0, 16);
+ x3s("\000(\000(\000(\000(\000(\000(\000(\000a\000*\000)\000b\000)\000)\000)\000)\000)\000)\000c\000\134\0007\000\000", "\000a\000a\000a\000b\000c\000a\000a\000a\000\000", 0, 6, 7);
+ x2s("\000(\000a\000)\000(\000b\000)\000(\000c\000)\000\134\0002\000\134\0001\000\134\0003\000\000", "\000a\000b\000c\000b\000a\000c\000\000", 0, 12);
+ x2s("\000(\000[\000a\000-\000d\000]\000)\000\134\0001\000\000", "\000c\000c\000\000", 0, 4);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000(\000\134\000w\000\134\000d\000\134\000s\000)\000\134\0001\000\000", "\000f\0005\000 \000f\0005\000 \000\000", 0, 12);
+ ns("\000(\000\134\000w\000\134\000d\000\134\000s\000)\000\134\0001\000\000", "\000f\0005\000 \000f\0005\000\000");
+ x2s("\000(\000w\000h\000o\000|\000[\000a\000-\000c\000]\000{\0003\000}\000)\000\134\0001\000\000", "\000w\000h\000o\000w\000h\000o\000\000", 0, 12);
+ x2s("\000.\000.\000.\000(\000w\000h\000o\000|\000[\000a\000-\000c\000]\000{\0003\000}\000)\000\134\0001\000\000", "\000a\000b\000c\000w\000h\000o\000w\000h\000o\000\000", 0, 18);
+ x2s("\000(\000w\000h\000o\000|\000[\000a\000-\000c\000]\000{\0003\000}\000)\000\134\0001\000\000", "\000c\000b\000c\000c\000b\000c\000\000", 0, 12);
+ x2s("\000(\000^\000a\000)\000\134\0001\000\000", "\000a\000a\000\000", 0, 4);
+ ns("\000(\000^\000a\000)\000\134\0001\000\000", "\000b\000a\000a\000\000");
+ ns("\000(\000a\000$\000)\000\134\0001\000\000", "\000a\000a\000\000");
+ ns("\000(\000a\000b\000\134\000Z\000)\000\134\0001\000\000", "\000a\000b\000\000");
+ x2s("\000(\000a\000*\000\134\000Z\000)\000\134\0001\000\000", "\000a\000\000", 2, 2);
+ x2s("\000.\000(\000a\000*\000\134\000Z\000)\000\134\0001\000\000", "\000b\000a\000\000", 2, 4);
+ x3s("\000(\000.\000(\000a\000b\000c\000)\000\134\0002\000)\000\000", "\000z\000a\000b\000c\000a\000b\000c\000\000", 0, 14, 1);
+ if (!org.joni.Config.NON_UNICODE_SDW) x3s("\000(\000.\000(\000.\000.\000\134\000d\000.\000)\000\134\0002\000)\000\000", "\000z\0001\0002\0003\0004\0001\0002\0003\0004\000\000", 0, 18, 1);
+ x2s("\000(\000(\000?\000i\000:\000a\000z\000)\000)\000\134\0001\000\000", "\000A\000z\000A\000z\000\000", 0, 8);
+ ns("\000(\000(\000?\000i\000:\000a\000z\000)\000)\000\134\0001\000\000", "\000A\000z\000a\000z\000\000");
+ x2s("\000(\000?\000<\000=\000a\000)\000b\000\000", "\000a\000b\000\000", 2, 4);
+ ns("\000(\000?\000<\000=\000a\000)\000b\000\000", "\000b\000b\000\000");
+ x2s("\000(\000?\000<\000=\000a\000|\000b\000)\000b\000\000", "\000b\000b\000\000", 2, 4);
+ x2s("\000(\000?\000<\000=\000a\000|\000b\000c\000)\000b\000\000", "\000b\000c\000b\000\000", 4, 6);
+ x2s("\000(\000?\000<\000=\000a\000|\000b\000c\000)\000b\000\000", "\000a\000b\000\000", 2, 4);
+ x2s("\000(\000?\000<\000=\000a\000|\000b\000c\000|\000|\000d\000e\000f\000g\000h\000i\000j\000|\000k\000l\000m\000n\000o\000p\000q\000|\000r\000)\000z\000\000", "\000r\000z\000\000", 2, 4);
+ x2s("\000(\000a\000)\000\134\000g\000<\0001\000>\000\000", "\000a\000a\000\000", 0, 4);
+ x2s("\000(\000?\000<\000!\000a\000)\000b\000\000", "\000c\000b\000\000", 2, 4);
+ ns("\000(\000?\000<\000!\000a\000)\000b\000\000", "\000a\000b\000\000");
+ x2s("\000(\000?\000<\000!\000a\000|\000b\000c\000)\000b\000\000", "\000b\000b\000b\000\000", 0, 2);
+ ns("\000(\000?\000<\000!\000a\000|\000b\000c\000)\000z\000\000", "\000b\000c\000z\000\000");
+ x2s("\000(\000?\000<\000n\000a\000m\000e\0001\000>\000a\000)\000\000", "\000a\000\000", 0, 2);
+ x2s("\000(\000?\000<\000n\000a\000m\000e\000_\0002\000>\000a\000b\000)\000\134\000g\000<\000n\000a\000m\000e\000_\0002\000>\000\000", "\000a\000b\000a\000b\000\000", 0, 8);
+ x2s("\000(\000?\000<\000n\000a\000m\000e\000_\0003\000>\000.\000z\000v\000.\000)\000\134\000k\000<\000n\000a\000m\000e\000_\0003\000>\000\000", "\000a\000z\000v\000b\000a\000z\000v\000b\000\000", 0, 16);
+ x2s("\000(\000?\000<\000=\000\134\000g\000<\000a\000b\000>\000)\000|\000-\000\134\000z\000E\000N\000D\000 \000(\000?\000<\000a\000b\000>\000X\000y\000Z\000)\000\000", "\000X\000y\000Z\000\000", 6, 6);
+ x2s("\000(\000?\000<\000n\000>\000|\000a\000\134\000g\000<\000n\000>\000)\000+\000\000", "\000\000", 0, 0);
+ x2s("\000(\000?\000<\000n\000>\000|\000\134\000(\000\134\000g\000<\000n\000>\000\134\000)\000)\000+\000$\000\000", "\000(\000)\000(\000(\000)\000)\000\000", 0, 12);
+ x3s("\000\134\000g\000<\000n\000>\000(\000?\000<\000n\000>\000.\000)\000{\0000\000}\000\000", "\000X\000\000", 0, 2, 1);
+ x2s("\000\134\000g\000<\000n\000>\000(\000a\000b\000c\000|\000d\000f\000(\000?\000<\000n\000>\000.\000Y\000Z\000)\000{\0002\000,\0008\000}\000)\000{\0000\000}\000\000", "\000X\000Y\000Z\000\000", 0, 6);
+ x2s("\000\134\000A\000(\000?\000<\000n\000>\000(\000a\000\134\000g\000<\000n\000>\000)\000|\000)\000\134\000z\000\000", "\000a\000a\000a\000a\000\000", 0, 8);
+ x2s("\000(\000?\000<\000n\000>\000|\000\134\000g\000<\000m\000>\000\134\000g\000<\000n\000>\000)\000\134\000z\000|\000\134\000z\000E\000N\000D\000 \000(\000?\000<\000m\000>\000a\000|\000(\000b\000)\000\134\000g\000<\000m\000>\000)\000\000", "\000b\000b\000b\000b\000a\000b\000b\000a\000\000", 0, 16);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000(\000?\000<\000n\000a\000m\000e\0001\0002\0004\0000\000>\000\134\000w\000+\000\134\000s\000x\000)\000a\000+\000\134\000k\000<\000n\000a\000m\000e\0001\0002\0004\0000\000>\000\000", "\000 \000 \000f\000g\000 \000x\000a\000a\000a\000a\000a\000a\000a\000a\000f\000g\000 \000x\000\000", 4, 36);
+ x3s("\000(\000z\000)\000(\000)\000(\000)\000(\000?\000<\000_\0009\000>\000a\000)\000\134\000g\000<\000_\0009\000>\000\000", "\000z\000a\000a\000\000", 4, 6, 1);
+ x2s("\000(\000.\000)\000(\000(\000(\000?\000<\000_\000>\000a\000)\000)\000)\000\134\000k\000<\000_\000>\000\000", "\000z\000a\000a\000\000", 0, 6);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000(\000(\000?\000<\000n\000a\000m\000e\0001\000>\000\134\000d\000)\000|\000(\000?\000<\000n\000a\000m\000e\0002\000>\000\134\000w\000)\000)\000(\000\134\000k\000<\000n\000a\000m\000e\0001\000>\000|\000\134\000k\000<\000n\000a\000m\000e\0002\000>\000)\000\000", "\000f\000f\000\000", 0, 4);
+ x2s("\000(\000?\000:\000(\000?\000<\000x\000>\000)\000|\000(\000?\000<\000x\000>\000e\000f\000g\000)\000)\000\134\000k\000<\000x\000>\000\000", "\000\000", 0, 0);
+ x2s("\000(\000?\000:\000(\000?\000<\000x\000>\000a\000b\000c\000)\000|\000(\000?\000<\000x\000>\000e\000f\000g\000)\000)\000\134\000k\000<\000x\000>\000\000", "\000a\000b\000c\000e\000f\000g\000e\000f\000g\000\000", 6, 18);
+ ns("\000(\000?\000:\000(\000?\000<\000x\000>\000a\000b\000c\000)\000|\000(\000?\000<\000x\000>\000e\000f\000g\000)\000)\000\134\000k\000<\000x\000>\000\000", "\000a\000b\000c\000e\000f\000g\000\000");
+ x2s("\000(\000?\000:\000(\000?\000<\000n\0001\000>\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000 [...]
+ x3s("\000(\000?\000:\000(\000?\000<\000n\0001\000>\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000.\000.\000.\000.\000.\000)\000|\000(\000?\000<\000n\0001\000>\000.\000.\000 [...]
+ x3s("\000(\000?\000<\000n\000a\000m\000e\0001\000>\000)\000(\000?\000<\000n\000a\000m\000e\0002\000>\000)\000(\000?\000<\000n\000a\000m\000e\0003\000>\000)\000(\000?\000<\000n\000a\000m\000e\0004\000>\000)\000(\000?\000<\000n\000a\000m\000e\0005\000>\000)\000(\000?\000<\000n\000a\000m\000e\0006\000>\000)\000(\000?\000<\000n\000a\000m\000e\0007\000>\000)\000(\000?\000<\000n\000a\000m\000e\0008\000>\000)\000(\000?\000<\000n\000a\000m\000e\0009\000>\000)\000(\000?\000<\000n\000a\000 [...]
+ x2s("\000(\000?\000<\000f\000o\000o\000>\000a\000|\000\134\000(\000\134\000g\000<\000f\000o\000o\000>\000\134\000)\000)\000\000", "\000a\000\000", 0, 2);
+ x2s("\000(\000?\000<\000f\000o\000o\000>\000a\000|\000\134\000(\000\134\000g\000<\000f\000o\000o\000>\000\134\000)\000)\000\000", "\000(\000(\000(\000(\000(\000(\000a\000)\000)\000)\000)\000)\000)\000\000", 0, 26);
+ x3s("\000(\000?\000<\000f\000o\000o\000>\000a\000|\000\134\000(\000\134\000g\000<\000f\000o\000o\000>\000\134\000)\000)\000\000", "\000(\000(\000(\000(\000(\000(\000(\000(\000a\000)\000)\000)\000)\000)\000)\000)\000)\000\000", 0, 34, 1);
+ x2s("\000\134\000g\000<\000b\000a\000r\000>\000|\000\134\000z\000E\000N\000D\000(\000?\000<\000b\000a\000r\000>\000.\000*\000a\000b\000c\000$\000)\000\000", "\000a\000b\000c\000x\000x\000x\000a\000b\000c\000\000", 0, 18);
+ x2s("\000\134\000g\000<\0001\000>\000|\000\134\000z\000E\000N\000D\000(\000.\000a\000.\000)\000\000", "\000b\000a\000c\000\000", 0, 6);
+ x3s("\000\134\000g\000<\000_\000A\000>\000\134\000g\000<\000_\000A\000>\000|\000\134\000z\000E\000N\000D\000(\000.\000a\000.\000)\000(\000?\000<\000_\000A\000>\000.\000b\000.\000)\000\000", "\000x\000b\000x\000y\000b\000y\000\000", 6, 12, 1);
+ x2s("\000\134\000A\000(\000?\000:\000\134\000g\000<\000p\000o\000n\000>\000|\000\134\000g\000<\000p\000a\000n\000>\000|\000\134\000z\000E\000N\000D\000 \000 \000(\000?\000<\000p\000a\000n\000>\000a\000|\000c\000\134\000g\000<\000p\000o\000n\000>\000c\000)\000(\000?\000<\000p\000o\000n\000>\000b\000|\000d\000\134\000g\000<\000p\000a\000n\000>\000d\000)\000)\000$\000\000", "\000c\000d\000c\000b\000c\000d\000c\000\000", 0, 14);
+ x2s("\000\134\000A\000(\000?\000<\000n\000>\000|\000a\000\134\000g\000<\000m\000>\000)\000\134\000z\000|\000\134\000z\000E\000N\000D\000 \000(\000?\000<\000m\000>\000\134\000g\000<\000n\000>\000)\000\000", "\000a\000a\000a\000a\000\000", 0, 8);
+ x2s("\000(\000?\000<\000n\000>\000(\000a\000|\000b\000\134\000g\000<\000n\000>\000c\000)\000{\0003\000,\0005\000}\000)\000\000", "\000b\000a\000a\000a\000a\000c\000a\000\000", 2, 10);
+ x2s("\000(\000?\000<\000n\000>\000(\000a\000|\000b\000\134\000g\000<\000n\000>\000c\000)\000{\0003\000,\0005\000}\000)\000\000", "\000b\000a\000a\000a\000a\000c\000a\000a\000a\000a\000a\000\000", 0, 20);
+ x2s("\000(\000?\000<\000p\000a\000r\000e\000>\000\134\000(\000(\000[\000^\000\134\000(\000\134\000)\000]\000+\000+\000|\000\134\000g\000<\000p\000a\000r\000e\000>\000)\000*\000+\000\134\000)\000)\000\000", "\000(\000(\000a\000)\000)\000\000", 0, 10);
+ x2s("\000(\000)\000*\000\134\0001\000\000", "\000\000", 0, 0);
+ x2s("\000(\000?\000:\000(\000)\000|\000(\000)\000)\000*\000\134\0001\000\134\0002\000\000", "\000\000", 0, 0);
+ x3s("\000(\000?\000:\000\134\0001\000a\000|\000(\000)\000)\000*\000\000", "\000a\000\000", 0, 0, 1);
+ x2s("\000x\000(\000(\000.\000)\000*\000)\000*\000x\000\000", "\0000\000x\0001\000x\0002\000x\0003\000\000", 2, 12);
+ x2s("\000x\000(\000(\000.\000)\000*\000)\000*\000x\000(\000?\000i\000:\000\134\0001\000)\000\134\000Z\000\000", "\0000\000x\0001\000x\0002\000x\0001\000X\0002\000\000", 2, 18);
+ x2s("\000(\000?\000:\000(\000)\000|\000(\000)\000|\000(\000)\000|\000(\000)\000|\000(\000)\000|\000(\000)\000)\000*\000\134\0002\000\134\0005\000\000", "\000\000", 0, 0);
+ x2s("\000(\000?\000:\000(\000)\000|\000(\000)\000|\000(\000)\000|\000(\000x\000)\000|\000(\000)\000|\000(\000)\000)\000*\000\134\0002\000b\000\134\0005\000\000", "\000b\000\000", 0, 2);
+ x2s("\217\372\000\000", "\217\372\000\000", 0, 2);
+ x2s("\000\000", "0B\000\000", 0, 0);
+ x2s("0B\000\000", "0B\000\000", 0, 2);
+ ns("0D\000\000", "0B\000\000");
+ x2s("0F0F\000\000", "0F0F\000\000", 0, 4);
+ x2s("0B0D0F\000\000", "0B0D0F\000\000", 0, 6);
+ x2s("0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S\000\000", "0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S0S\000\000", 0, 70);
+ x2s("0B\000\000", "0D0B\000\000", 2, 4);
+ x2s("0D0F\000\000", "0B0D0F\000\000", 2, 6);
+ x2s("e\207\000\000", "e\207\000\000", 0, 2);
+ x2s("\000.\000\000", "0B\000\000", 0, 2);
+ x2s("\000.\000.\000\000", "0K0M\000\000", 0, 4);
+ x2s("\000\134\000w\000\000", "0J\000\000", 0, 2);
+ ns("\000\134\000W\000\000", "0B\000\000");
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000[\000\134\000W\000]\000\000", "0F\000$\000\000", 2, 4);
+ x2s("\000\134\000S\000\000", "0]\000\000", 0, 2);
+ x2s("\000\134\000S\000\000", "o\042\000\000", 0, 2);
+ x2s("\000\134\000b\000\000", "l\027\000 \000\000", 0, 0);
+ x2s("\000\134\000b\000\000", "\000 0{\000\000", 2, 2);
+ x2s("\000\134\000B\000\000", "0[0]\000 \000\000", 2, 2);
+ x2s("\000\134\000B\000\000", "0F\000 \000\000", 4, 4);
+ x2s("\000\134\000B\000\000", "\000 0D\000\000", 0, 0);
+ x2s("\000[0_0a\000]\000\000", "0a\000\000", 0, 2);
+ ns("\000[0j0k\000]\000\000", "0l\000\000");
+ x2s("\000[0F\000-0J\000]\000\000", "0H\000\000", 0, 2);
+ ns("\000[\000^0Q\000]\000\000", "0Q\000\000");
+ x2s("\000[\000\134\000w\000]\000\000", "0m\000\000", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) ns("\000[\000\134\000d\000]\000\000", "0u\000\000");
+ x2s("\000[\000\134\000D\000]\000\000", "0o\000\000", 0, 2);
+ ns("\000[\000\134\000s\000]\000\000", "0O\000\000");
+ x2s("\000[\000\134\000S\000]\000\000", "0x\000\000", 0, 2);
+ x2s("\000[\000\134\000w\000\134\000d\000]\000\000", "0\210\000\000", 0, 2);
+ x2s("\000[\000\134\000w\000\134\000d\000]\000\000", "\000 \000 \000 0\210\000\000", 6, 8);
+ ns("\000\134\000w\233<\216\312\000\000", "\000 \233<\216\312\000\000");
+ x2s("\233<\000\134\000W\216\312\000\000", "\233<\000 \216\312\000\000", 0, 6);
+ x2s("0B\000.0D\000.0F\000\000", "0B0B0D0D0F\000\000", 0, 10);
+ x2s("\000.\000\134\000w0F\000\134\000W\000.\000.0^\000\000", "0H0F0F\000 0F0^0^\000\000", 0, 14);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000s\000\134\000w0S0S0S\000\000", "\000 0S0S0S0S\000\000", 0, 10);
+ x2s("0B0B\000.0Q\000\000", "0B0B0Q0Q\000\000", 0, 8);
+ ns("\000.0D\000\000", "0D0H\000\000");
+ x2s("\000.0J\000\000", "0J0J\000\000", 0, 4);
+ x2s("\000^0B\000\000", "0B\000\000", 0, 2);
+ x2s("\000^0\200\000$\000\000", "0\200\000\000", 0, 2);
+ x2s("\000^\000\134\000w\000$\000\000", "0k\000\000", 0, 2);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000^\000\134\000w0K0M0O0Q0S\000$\000\000", "\000z0K0M0O0Q0S\000\000", 0, 12);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000^\000\134\000w\000.\000.\000.0F0H0J\000$\000\000", "\000z0B0D0F0F0H0J\000\000", 0, 14);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000\134\000w\000\134\000w\000\134\000s\000\134\000W0J0J0J\000\134\000d\000\000", "\000a0J\000 \000 0J0J0J\0004\000\000", 0, 16);
+ x2s("\000\134\000A0_0a0d\000\000", "0_0a0d\000\000", 0, 6);
+ x2s("0\2000\2010\202\000\134\000Z\000\000", "0\2000\2010\202\000\000", 0, 6);
+ x2s("0K0M0O\000\134\000z\000\000", "0K0M0O\000\000", 0, 6);
+ x2s("0K0M0O\000\134\000Z\000\000", "0K0M0O\000\012\000\000", 0, 6);
+ x2s("\000\134\000G0}0t\000\000", "0}0t\000\000", 0, 4);
+ ns("\000\134\000G0H\000\000", "0F0H0J\000\000");
+ ns("0h0f\000\134\000G\000\000", "0h0f\000\000");
+ ns("0~0\177\000\134\000A\000\000", "0~0\177\000\000");
+ ns("0~\000\134\000A0\177\000\000", "0~0\177\000\000");
+ x2s("\000(\000?\000=0[\000)0[\000\000", "0[\000\000", 0, 2);
+ ns("\000(\000?\000=0F\000)\000.\000\000", "0D\000\000");
+ x2s("\000(\000?\000!0F\000)0K\000\000", "0K\000\000", 0, 2);
+ ns("\000(\000?\000!0h\000)0B\000\000", "0h\000\000");
+ x2s("\000(\000?\000i\000:0B\000)\000\000", "0B\000\000", 0, 2);
+ x2s("\000(\000?\000i\000:0v0y\000)\000\000", "0v0y\000\000", 0, 4);
+ ns("\000(\000?\000i\000:0D\000)\000\000", "0F\000\000");
+ x2s("\000(\000?\000m\000:0\210\000.\000)\000\000", "0\210\000\012\000\000", 0, 4);
+ x2s("\000(\000?\000m\000:\000.0\201\000)\000\000", "0~\000\0120\201\000\000", 2, 6);
+ x2s("0B\000?\000\000", "\000\000", 0, 0);
+ x2s("Y\011\000?\000\000", "S\026\000\000", 0, 0);
+ x2s("Y\011\000?\000\000", "Y\011\000\000", 0, 2);
+ x2s("\221\317\000*\000\000", "\000\000", 0, 0);
+ x2s("\221\317\000*\000\000", "\221\317\000\000", 0, 2);
+ x2s("[P\000*\000\000", "[P[P[P\000\000", 0, 6);
+ x2s("\231\254\000*\000\000", "\236\177\231\254\231\254\231\254\231\254\000\000", 0, 0);
+ ns("\134q\000+\000\000", "\000\000");
+ x2s("l\263\000+\000\000", "l\263\000\000", 0, 2);
+ x2s("fB\000+\000\000", "fBfBfBfB\000\000", 0, 8);
+ x2s("0H\000+\000\000", "0H0H0F0F0F\000\000", 0, 4);
+ x2s("0F\000+\000\000", "0J0F0F0F0F\000\000", 2, 10);
+ x2s("\000.\000?\000\000", "0_\000\000", 0, 2);
+ x2s("\000.\000*\000\000", "0q0t0w0z\000\000", 0, 8);
+ x2s("\000.\000+\000\000", "0\215\000\000", 0, 2);
+ x2s("\000.\000+\000\000", "0D0F0H0K\000\012\000\000", 0, 8);
+ x2s("0B\000|0D\000\000", "0B\000\000", 0, 2);
+ x2s("0B\000|0D\000\000", "0D\000\000", 0, 2);
+ x2s("0B0D\000|0D0F\000\000", "0B0D\000\000", 0, 4);
+ x2s("0B0D\000|0D0F\000\000", "0D0F\000\000", 0, 4);
+ x2s("0\222\000(\000?\000:0K0M\000|0M0O\000)\000\000", "0\2220K0M\000\000", 0, 6);
+ x2s("0\222\000(\000?\000:0K0M\000|0M0O\000)0Q\000\000", "0\2220M0O0Q\000\000", 0, 8);
+ x2s("0B0D\000|\000(\000?\000:0B0F\000|0B0\222\000)\000\000", "0B0\222\000\000", 0, 4);
+ x2s("0B\000|0D\000|0F\000\000", "0H0F\000\000", 2, 4);
+ x2s("0B\000|0D\000|0F0H\000|0J0K0M\000|0O\000|0Q0S0U\000|0W0Y0[\000|0]\000|0_0a\000|0d0f0h0j0k\000|0l0m\000\000", "0W0Y0[\000\000", 0, 6);
+ ns("0B\000|0D\000|0F0H\000|0J0K0M\000|0O\000|0Q0S0U\000|0W0Y0[\000|0]\000|0_0a\000|0d0f0h0j0k\000|0l0m\000\000", "0Y0[\000\000");
+ x2s("0B\000|\000^0\217\000\000", "0v0B\000\000", 2, 4);
+ x2s("0B\000|\000^0\222\000\000", "0\2220B\000\000", 0, 2);
+ x2s("\233<\000|\000\134\000G\216\312\000\000", "0Q\216\312\233<\000\000", 4, 6);
+ x2s("\233<\000|\000\134\000G\216\312\000\000", "\216\312\233<\000\000", 0, 2);
+ x2s("\233<\000|\000\134\000A\216\312\000\000", "\000b\216\312\233<\000\000", 4, 6);
+ x2s("\233<\000|\000\134\000A\216\312\000\000", "\216\312\000\000", 0, 2);
+ x2s("\233<\000|\216\312\000\134\000Z\000\000", "\216\312\233<\000\000", 2, 4);
+ x2s("\233<\000|\216\312\000\134\000Z\000\000", "\216\312\000\000", 0, 2);
+ x2s("\233<\000|\216\312\000\134\000Z\000\000", "\216\312\000\012\000\000", 0, 2);
+ x2s("\233<\000|\216\312\000\134\000z\000\000", "\216\312\233<\000\000", 2, 4);
+ x2s("\233<\000|\216\312\000\134\000z\000\000", "\216\312\000\000", 0, 2);
+ x2s("\000\134\000w\000|\000\134\000s\000\000", "0J\000\000", 0, 2);
+ x2s("\000\134\000w\000|\000%\000\000", "\000%0J\000\000", 0, 2);
+ x2s("\000\134\000w\000|\000[\000&\000$\000]\000\000", "0F\000&\000\000", 0, 2);
+ x2s("\000[0D\000-0Q\000]\000\000", "0F\000\000", 0, 2);
+ x2s("\000[0D\000-0Q\000]\000|\000[\000^0K\000-0S\000]\000\000", "0B\000\000", 0, 2);
+ x2s("\000[0D\000-0Q\000]\000|\000[\000^0K\000-0S\000]\000\000", "0K\000\000", 0, 2);
+ x2s("\000[\000^0B\000]\000\000", "\000\012\000\000", 0, 2);
+ x2s("\000(\000?\000:0B\000|\000[0F\000-0M\000]\000)\000|0D0\222\000\000", "0F0\222\000\000", 0, 2);
+ x2s("\000(\000?\000:0B\000|\000[0F\000-0M\000]\000)\000|0D0\222\000\000", "0D0\222\000\000", 0, 4);
+ x2s("0B0D0F\000|\000(\000?\000=0Q0Q\000)\000.\000.0{\000\000", "0Q0Q0{\000\000", 0, 6);
+ x2s("0B0D0F\000|\000(\000?\000!0Q0Q\000)\000.\000.0{\000\000", "0B0D0{\000\000", 0, 6);
+ x2s("\000(\000?\000=0\2220B\000)\000.\000.0B\000|\000(\000?\000=0\2220\222\000)\000.\000.0B\000\000", "0\2220\2220B\000\000", 0, 6);
+ x2s("\000(\000?\000<\000=0B\000|0D0F\000)0D\000\000", "0D0F0D\000\000", 4, 6);
+ ns("\000(\000?\000>0B\000|0B0D0H\000)0F\000\000", "0B0D0H0F\000\000");
+ x2s("\000(\000?\000>0B0D0H\000|0B\000)0F\000\000", "0B0D0H0F\000\000", 0, 8);
+ x2s("0B\000?\000|0D\000\000", "0B\000\000", 0, 2);
+ x2s("0B\000?\000|0D\000\000", "0D\000\000", 0, 0);
+ x2s("0B\000?\000|0D\000\000", "\000\000", 0, 0);
+ x2s("0B\000*\000|0D\000\000", "0B0B\000\000", 0, 4);
+ x2s("0B\000*\000|0D\000*\000\000", "0D0B\000\000", 0, 0);
+ x2s("0B\000*\000|0D\000*\000\000", "0B0D\000\000", 0, 2);
+ x2s("\000[\000a0B\000]\000*\000|0D\000*\000\000", "\000a0B0D0D0D\000\000", 0, 4);
+ x2s("0B\000+\000|0D\000*\000\000", "\000\000", 0, 0);
+ x2s("0B\000+\000|0D\000*\000\000", "0D0D0D\000\000", 0, 6);
+ x2s("0B\000+\000|0D\000*\000\000", "0B0D0D0D\000\000", 0, 2);
+ x2s("0B\000+\000|0D\000*\000\000", "\000a0B0D0D0D\000\000", 0, 0);
+ ns("0B\000+\000|0D\000+\000\000", "\000\000");
+ x2s("\000(0B\000|0D\000)\000?\000\000", "0D\000\000", 0, 2);
+ x2s("\000(0B\000|0D\000)\000*\000\000", "0D0B\000\000", 0, 4);
+ x2s("\000(0B\000|0D\000)\000+\000\000", "0D0B0D\000\000", 0, 6);
+ x2s("\000(0B0D\000|0F0B\000)\000+\000\000", "0F0B0B0D0F0H\000\000", 0, 8);
+ x2s("\000(0B0D\000|0F0H\000)\000+\000\000", "0F0B0B0D0F0H\000\000", 4, 12);
+ x2s("\000(0B0D\000|0F0B\000)\000+\000\000", "0B0B0D0F0B\000\000", 2, 10);
+ x2s("\000(0B0D\000|0F0B\000)\000+\000\000", "0B0D0\2220F0B\000\000", 0, 4);
+ x2s("\000(0B0D\000|0F0B\000)\000+\000\000", "\000$\000$\000z\000z\000z\000z0B0D0\2220F0B\000\000", 12, 16);
+ x2s("\000(0B\000|0D0B0D\000)\000+\000\000", "0B0D0B0D0B\000\000", 0, 10);
+ x2s("\000(0B\000|0D0B0D\000)\000+\000\000", "0D0B\000\000", 2, 4);
+ x2s("\000(0B\000|0D0B0D\000)\000+\000\000", "0D0B0B0B0D0B\000\000", 2, 8);
+ x2s("\000(\000?\000:0B\000|0D\000)\000(\000?\000:0B\000|0D\000)\000\000", "0B0D\000\000", 0, 4);
+ x2s("\000(\000?\000:0B\000*\000|0D\000*\000)\000(\000?\000:0B\000*\000|0D\000*\000)\000\000", "0B0B0B0D0D0D\000\000", 0, 6);
+ x2s("\000(\000?\000:0B\000*\000|0D\000*\000)\000(\000?\000:0B\000+\000|0D\000+\000)\000\000", "0B0B0B0D0D0D\000\000", 0, 12);
+ x2s("\000(\000?\000:0B\000+\000|0D\000+\000)\000{\0002\000}\000\000", "0B0B0B0D0D0D\000\000", 0, 12);
+ x2s("\000(\000?\000:0B\000+\000|0D\000+\000)\000{\0001\000,\0002\000}\000\000", "0B0B0B0D0D0D\000\000", 0, 12);
+ x2s("\000(\000?\000:0B\000+\000|\000\134\000A0D\000*\000)0F0F\000\000", "0F0F\000\000", 0, 4);
+ ns("\000(\000?\000:0B\000+\000|\000\134\000A0D\000*\000)0F0F\000\000", "0B0D0F0F\000\000");
+ x2s("\000(\000?\000:\000^0B\000+\000|0D\000+\000)\000*0F\000\000", "0B0B0D0D0D0B0D0F\000\000", 12, 16);
+ x2s("\000(\000?\000:\000^0B\000+\000|0D\000+\000)\000*0F\000\000", "0B0B0D0D0D0D0F\000\000", 0, 14);
+ x2s("0F\000{\0000\000,\000}\000\000", "0F0F0F0F\000\000", 0, 8);
+ x2s("0B\000|\000(\000?\000i\000)\000c\000\000", "\000C\000\000", 0, 2);
+ x2s("\000(\000?\000i\000)\000c\000|0B\000\000", "\000C\000\000", 0, 2);
+ x2s("\000(\000?\000i\000:0B\000)\000|\000a\000\000", "\000a\000\000", 0, 2);
+ ns("\000(\000?\000i\000:0B\000)\000|\000a\000\000", "\000A\000\000");
+ x2s("\000[0B0D0F\000]\000?\000\000", "0B0D0F\000\000", 0, 2);
+ x2s("\000[0B0D0F\000]\000*\000\000", "0B0D0F\000\000", 0, 6);
+ x2s("\000[\000^0B0D0F\000]\000*\000\000", "0B0D0F\000\000", 0, 0);
+ ns("\000[\000^0B0D0F\000]\000+\000\000", "0B0D0F\000\000");
+ x2s("0B\000?\000?\000\000", "0B0B0B\000\000", 0, 0);
+ x2s("0D0B\000?\000?0D\000\000", "0D0B0D\000\000", 0, 6);
+ x2s("0B\000*\000?\000\000", "0B0B0B\000\000", 0, 0);
+ x2s("0D0B\000*\000?\000\000", "0D0B0B\000\000", 0, 2);
+ x2s("0D0B\000*\000?0D\000\000", "0D0B0B0D\000\000", 0, 8);
+ x2s("0B\000+\000?\000\000", "0B0B0B\000\000", 0, 2);
+ x2s("0D0B\000+\000?\000\000", "0D0B0B\000\000", 0, 4);
+ x2s("0D0B\000+\000?0D\000\000", "0D0B0B0D\000\000", 0, 8);
+ x2s("\000(\000?\000:Y)\000?\000)\000?\000?\000\000", "Y)\000\000", 0, 0);
+ x2s("\000(\000?\000:Y)\000?\000?\000)\000?\000\000", "Y)\000\000", 0, 0);
+ x2s("\000(\000?\000:Y\042\000?\000)\000+\000?\000\000", "Y\042Y\042Y\042\000\000", 0, 2);
+ x2s("\000(\000?\000:\230\250\000+\000)\000?\000?\000\000", "\230\250\230\250\230\250\000\000", 0, 0);
+ x2s("\000(\000?\000:\226\352\000+\000)\000?\000?\227\034\000\000", "\226\352\226\352\226\352\227\034\000\000", 0, 8);
+ x2s("\000(\000?\000:0B0D\000)\000?\000{\0002\000}\000\000", "\000\000", 0, 0);
+ x2s("\000(\000?\000:\233<\216\312\000)\000?\000{\0002\000}\000\000", "\233<\216\312\233<\216\312\233<\000\000", 0, 8);
+ x2s("\000(\000?\000:\233<\216\312\000)\000*\000{\0000\000}\000\000", "\233<\216\312\233<\216\312\233<\000\000", 0, 0);
+ x2s("\000(\000?\000:\233<\216\312\000)\000{\0003\000,\000}\000\000", "\233<\216\312\233<\216\312\233<\216\312\233<\216\312\000\000", 0, 16);
+ ns("\000(\000?\000:\233<\216\312\000)\000{\0003\000,\000}\000\000", "\233<\216\312\233<\216\312\000\000");
+ x2s("\000(\000?\000:\233<\216\312\000)\000{\0002\000,\0004\000}\000\000", "\233<\216\312\233<\216\312\233<\216\312\000\000", 0, 12);
+ x2s("\000(\000?\000:\233<\216\312\000)\000{\0002\000,\0004\000}\000\000", "\233<\216\312\233<\216\312\233<\216\312\233<\216\312\233<\216\312\000\000", 0, 16);
+ x2s("\000(\000?\000:\233<\216\312\000)\000{\0002\000,\0004\000}\000?\000\000", "\233<\216\312\233<\216\312\233<\216\312\233<\216\312\233<\216\312\000\000", 0, 8);
+ x2s("\000(\000?\000:\233<\216\312\000)\000{\000,\000}\000\000", "\233<\216\312\000{\000,\000}\000\000", 0, 10);
+ x2s("\000(\000?\000:0K0M0O\000)\000+\000?\000{\0002\000}\000\000", "0K0M0O0K0M0O0K0M0O\000\000", 0, 12);
+ x3s("\000(pk\000)\000\000", "pk\000\000", 0, 2, 1);
+ x3s("\000(pkl4\000)\000\000", "pkl4\000\000", 0, 4, 1);
+ x2s("\000(\000(fB\225\223\000)\000)\000\000", "fB\225\223\000\000", 0, 4);
+ x3s("\000(\000(\230\250l4\000)\000)\000\000", "\230\250l4\000\000", 0, 4, 1);
+ x3s("\000(\000(f(e\345\000)\000)\000\000", "f(e\345\000\000", 0, 4, 2);
+ x3s("\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\000(\221\317[P\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000)\000\000", "\221\317[P\000\000", 0, 4, 20);
+ x3s("\000(0B0D\000)\000(0F0H\000)\000\000", "0B0D0F0H\000\000", 0, 4, 1);
+ x3s("\000(0B0D\000)\000(0F0H\000)\000\000", "0B0D0F0H\000\000", 4, 8, 2);
+ x3s("\000(\000)\000(0B\000)0D0F\000(0H0J0K\000)0M0O0Q0S\000\000", "0B0D0F0H0J0K0M0O0Q0S\000\000", 6, 12, 3);
+ x3s("\000(\000(\000)\000(0B\000)0D0F\000(0H0J0K\000)0M0O0Q0S\000)\000\000", "0B0D0F0H0J0K0M0O0Q0S\000\000", 6, 12, 4);
+ x3s("\000.\000*\000(0\3250\251\000)0\3630\3730\336\000(0\363\000(\000)0\2670\3450\277\000)0\2440\363\000\000", "0\3250\2510\3630\3730\3360\3630\2670\3450\2770\2440\363\000\000", 10, 18, 2);
+ x2s("\000(\000^0B\000)\000\000", "0B\000\000", 0, 2);
+ x3s("\000(0B\000)\000|\000(0B\000)\000\000", "0D0B\000\000", 2, 4, 1);
+ x3s("\000(\000^0B\000)\000|\000(0B\000)\000\000", "0D0B\000\000", 2, 4, 2);
+ x3s("\000(0B\000?\000)\000\000", "0B0B0B\000\000", 0, 2, 1);
+ x3s("\000(0~\000*\000)\000\000", "0~0~0~\000\000", 0, 6, 1);
+ x3s("\000(0h\000*\000)\000\000", "\000\000", 0, 0, 1);
+ x3s("\000(0\213\000+\000)\000\000", "0\2130\2130\2130\2130\2130\2130\213\000\000", 0, 14, 1);
+ x3s("\000(0u\000+\000|0x\000*\000)\000\000", "0u0u0u0x0x\000\000", 0, 6, 1);
+ x3s("\000(0B\000+\000|0D\000?\000)\000\000", "0D0D0D0B0B\000\000", 0, 2, 1);
+ x3s("\000(0B0D0F\000)\000?\000\000", "0B0D0F\000\000", 0, 6, 1);
+ x3s("\000(0B0D0F\000)\000*\000\000", "0B0D0F\000\000", 0, 6, 1);
+ x3s("\000(0B0D0F\000)\000+\000\000", "0B0D0F\000\000", 0, 6, 1);
+ x3s("\000(0U0W0Y\000|0B0D0F\000)\000+\000\000", "0B0D0F\000\000", 0, 6, 1);
+ x3s("\000(\000[0j0k0l\000]\000[0K0M0O\000]\000|0K0M0O\000)\000+\000\000", "0K0M0O\000\000", 0, 6, 1);
+ x3s("\000(\000(\000?\000i\000:0B0D0F\000)\000)\000\000", "0B0D0F\000\000", 0, 6, 1);
+ x3s("\000(\000(\000?\000m\000:0B\000.0F\000)\000)\000\000", "0B\000\0120F\000\000", 0, 6, 1);
+ x3s("\000(\000(\000?\000=0B0\223\000)0B\000)\000\000", "0B0\2230D\000\000", 0, 2, 1);
+ x3s("0B0D0F\000|\000(\000.0B0D0H\000)\000\000", "0\2230B0D0H\000\000", 0, 8, 1);
+ x3s("0B\000*\000(\000.\000)\000\000", "0B0B0B0B0\223\000\000", 8, 10, 1);
+ x3s("0B\000*\000?\000(\000.\000)\000\000", "0B0B0B0B0\223\000\000", 0, 2, 1);
+ x3s("0B\000*\000?\000(0\223\000)\000\000", "0B0B0B0B0\223\000\000", 8, 10, 1);
+ x3s("\000[0D0F0H\000]0B\000*\000(\000.\000)\000\000", "0H0B0B0B0B0\223\000\000", 10, 12, 1);
+ x3s("\000(\000\134\000A0D0D\000)0F0F\000\000", "0D0D0F0F\000\000", 0, 4, 1);
+ ns("\000(\000\134\000A0D0D\000)0F0F\000\000", "0\2230D0D0F0F\000\000");
+ x3s("\000(\000^0D0D\000)0F0F\000\000", "0D0D0F0F\000\000", 0, 4, 1);
+ ns("\000(\000^0D0D\000)0F0F\000\000", "0\2230D0D0F0F\000\000");
+ x3s("0\2150\215\000(0\2130\213\000$\000)\000\000", "0\2150\2150\2130\213\000\000", 4, 8, 1);
+ ns("0\2150\215\000(0\2130\213\000$\000)\000\000", "0\2150\2150\2130\2130\213\000\000");
+ x2s("\000(q!\000)\000\134\0001\000\000", "q!q!\000\000", 0, 4);
+ ns("\000(q!\000)\000\134\0001\000\000", "q!kf\000\000");
+ x2s("\000(zz\000?\000)\000\134\0001\000\000", "zzzz\000\000", 0, 4);
+ x2s("\000(zz\000?\000?\000)\000\134\0001\000\000", "zzzz\000\000", 0, 0);
+ x2s("\000(zz\000*\000)\000\134\0001\000\000", "zzzzzzzzzz\000\000", 0, 8);
+ x3s("\000(zz\000*\000)\000\134\0001\000\000", "zzzzzzzzzz\000\000", 0, 4, 1);
+ x2s("0B\000(0D\000*\000)\000\134\0001\000\000", "0B0D0D0D0D\000\000", 0, 10);
+ x2s("0B\000(0D\000*\000)\000\134\0001\000\000", "0B0D\000\000", 0, 2);
+ x2s("\000(0B\000*\000)\000(0D\000*\000)\000\134\0001\000\134\0002\000\000", "0B0B0B0D0D0B0B0B0D0D\000\000", 0, 20);
+ x2s("\000(0B\000*\000)\000(0D\000*\000)\000\134\0002\000\000", "0B0B0B0D0D0D0D\000\000", 0, 14);
+ x3s("\000(0B\000*\000)\000(0D\000*\000)\000\134\0002\000\000", "0B0B0B0D0D0D0D\000\000", 6, 10, 2);
+ x2s("\000(\000(\000(\000(\000(\000(\000(0}\000*\000)0z\000)\000)\000)\000)\000)\000)0t\000\134\0007\000\000", "0}0}0}0z0t0}0}0}\000\000", 0, 16);
+ x3s("\000(\000(\000(\000(\000(\000(\000(0}\000*\000)0z\000)\000)\000)\000)\000)\000)0t\000\134\0007\000\000", "0}0}0}0z0t0}0}0}\000\000", 0, 6, 7);
+ x2s("\000(0o\000)\000(0r\000)\000(0u\000)\000\134\0002\000\134\0001\000\134\0003\000\000", "0o0r0u0r0o0u\000\000", 0, 12);
+ x2s("\000(\000[0M\000-0Q\000]\000)\000\134\0001\000\000", "0O0O\000\000", 0, 4);
+ if (!org.joni.Config.NON_UNICODE_SDW) x2s("\000(\000\134\000w\000\134\000d\000\134\000s\000)\000\134\0001\000\000", "0B\0005\000 0B\0005\000 \000\000", 0, 12);
+ ns("\000(\000\134\000w\000\134\000d\000\134\000s\000)\000\134\0001\000\000", "0B\0005\000 0B\0005\000\000");
+ x2s("\000(\212\260\377\037\000|\000[0B\000-0F\000]\000{\0003\000}\000)\000\134\0001\000\000", "\212\260\377\037\212\260\377\037\000\000", 0, 8);
+ x2s("\000.\000.\000.\000(\212\260\377\037\000|\000[0B\000-0F\000]\000{\0003\000}\000)\000\134\0001\000\000", "0B\000a0B\212\260\377\037\212\260\377\037\000\000", 0, 14);
+ x2s("\000(\212\260\377\037\000|\000[0B\000-0F\000]\000{\0003\000}\000)\000\134\0001\000\000", "0F0D0F0F0D0F\000\000", 0, 12);
+ x2s("\000(\000^0S\000)\000\134\0001\000\000", "0S0S\000\000", 0, 4);
+ ns("\000(\000^0\200\000)\000\134\0001\000\000", "0\2010\2000\200\000\000");
+ ns("\000(0B\000$\000)\000\134\0001\000\000", "0B0B\000\000");
+ ns("\000(0B0D\000\134\000Z\000)\000\134\0001\000\000", "0B0D\000\000");
+ x2s("\000(0B\000*\000\134\000Z\000)\000\134\0001\000\000", "0B\000\000", 2, 2);
+ x2s("\000.\000(0B\000*\000\134\000Z\000)\000\134\0001\000\000", "0D0B\000\000", 2, 4);
+ x3s("\000(\000.\000(0\2040D0\206\000)\000\134\0002\000)\000\000", "\000z0\2040D0\2060\2040D0\206\000\000", 0, 14, 1);
+ if (!org.joni.Config.NON_UNICODE_SDW) x3s("\000(\000.\000(\000.\000.\000\134\000d\000.\000)\000\134\0002\000)\000\000", "0B\0001\0002\0003\0004\0001\0002\0003\0004\000\000", 0, 18, 1);
+ x2s("\000(\000(\000?\000i\000:0B\000v0Z\000)\000)\000\134\0001\000\000", "0B\000v0Z0B\000v0Z\000\000", 0, 12);
+ x2s("\000(\000?\000<a\0320K\000>Y\011\000|\000\134\000(\000\134\000g\000<a\0320K\000>\000\134\000)\000)\000\000", "\000(\000(\000(\000(\000(\000(Y\011\000)\000)\000)\000)\000)\000)\000\000", 0, 26);
+ x2s("\000\134\000A\000(\000?\000:\000\134\000g\000<\226?\000_\0001\000>\000|\000\134\000g\000<N\221\000_\0002\000>\000|\000\134\000z}BN\206\000 \000 \000(\000?\000<\226?\000_\0001\000>\211\263\000|\201\352\000\134\000g\000<N\221\000_\0002\000>\201\352\000)\000(\000?\000<N\221\000_\0002\000>W(\000|\203\351\205\251\000\134\000g\000<\226?\000_\0001\000>\203\351\205\251\000)\000)\000$\000\000", "\203\351\205\251\201\352\203\351\205\251\201\352W(\201\352\203\351\205\251\201\352\203\35 [...]
+ x2s("\000[\000[0r0u\000]\000]\000\000", "0u\000\000", 0, 2);
+ x2s("\000[\000[0D0J0F\000]0K\000]\000\000", "0K\000\000", 0, 2);
+ ns("\000[\000[\000^0B\000]\000]\000\000", "0B\000\000");
+ ns("\000[\000^\000[0B\000]\000]\000\000", "0B\000\000");
+ x2s("\000[\000^\000[\000^0B\000]\000]\000\000", "0B\000\000", 0, 2);
+ x2s("\000[\000[0K0M0O\000]\000&\000&0M0O\000]\000\000", "0O\000\000", 0, 2);
+ ns("\000[\000[0K0M0O\000]\000&\000&0M0O\000]\000\000", "0K\000\000");
+ ns("\000[\000[0K0M0O\000]\000&\000&0M0O\000]\000\000", "0Q\000\000");
+ x2s("\000[0B\000-0\223\000&\000&0D\000-0\222\000&\000&0F\000-0\221\000]\000\000", "0\221\000\000", 0, 2);
+ ns("\000[\000^0B\000-0\223\000&\000&0D\000-0\222\000&\000&0F\000-0\221\000]\000\000", "0\221\000\000");
+ x2s("\000[\000[\000^0B\000&\000&0B\000]\000&\000&0B\000-0\223\000]\000\000", "0D\000\000", 0, 2);
+ ns("\000[\000[\000^0B\000&\000&0B\000]\000&\000&0B\000-0\223\000]\000\000", "0B\000\000");
+ x2s("\000[\000[\000^0B\000-0\223\000&\000&0D0F0H0J\000]\000&\000&\000[\000^0F\000-0K\000]\000]\000\000", "0M\000\000", 0, 2);
+ ns("\000[\000[\000^0B\000-0\223\000&\000&0D0F0H0J\000]\000&\000&\000[\000^0F\000-0K\000]\000]\000\000", "0D\000\000");
+ x2s("\000[\000^\000[\000^0B0D0F\000]\000&\000&\000[\000^0F0H0J\000]\000]\000\000", "0F\000\000", 0, 2);
+ x2s("\000[\000^\000[\000^0B0D0F\000]\000&\000&\000[\000^0F0H0J\000]\000]\000\000", "0H\000\000", 0, 2);
+ ns("\000[\000^\000[\000^0B0D0F\000]\000&\000&\000[\000^0F0H0J\000]\000]\000\000", "0K\000\000");
+ x2s("\000[0B\000-\000&\000&\000-0B\000]\000\000", "\000-\000\000", 0, 2);
+ x2s("\000[\000^\000[\000^\000a\000-\000z0B0D0F\000]\000&\000&\000[\000^\000b\000c\000d\000e\000f\000g0F0H0J\000]\000q\000-\000w\000]\000\000", "0H\000\000", 0, 2);
+ x2s("\000[\000^\000[\000^\000a\000-\000z0B0D0F\000]\000&\000&\000[\000^\000b\000c\000d\000e\000f\000g0F0H0J\000]\000g\000-\000w\000]\000\000", "\000f\000\000", 0, 2);
+ x2s("\000[\000^\000[\000^\000a\000-\000z0B0D0F\000]\000&\000&\000[\000^\000b\000c\000d\000e\000f\000g0F0H0J\000]\000g\000-\000w\000]\000\000", "\000g\000\000", 0, 2);
+ ns("\000[\000^\000[\000^\000a\000-\000z0B0D0F\000]\000&\000&\000[\000^\000b\000c\000d\000e\000f\000g0F0H0J\000]\000g\000-\000w\000]\000\000", "\0002\000\000");
+ x2s("\000a\000<\000b\000>0\3200\3740\2700\3470\3630n0\3000\2460\3630\3550\3740\311\000<\000\134\000/\000b\000>\000\000", "\000a\000<\000b\000>0\3200\3740\2700\3470\3630n0\3000\2460\3630\3550\3740\311\000<\000/\000b\000>\000\000", 0, 40);
+ x2s("\000.\000<\000b\000>0\3200\3740\2700\3470\3630n0\3000\2460\3630\3550\3740\311\000<\000\134\000/\000b\000>\000\000", "\000a\000<\000b\000>0\3200\3740\2700\3470\3630n0\3000\2460\3630\3550\3740\311\000<\000/\000b\000>\000\000", 0, 40);
+
+ // Unicode case folding tests
+ // common case folding: u+0041 and u+0061
+ x2s("\u0000\u0041\000\000", "\u0000\u0061\000\000", 0, 2, Option.IGNORECASE);
+ x2s("\u0000\u0061\000\000", "\u0000\u0041\000\000", 0, 2, Option.IGNORECASE);
+ // common case folding: u+00C0 and u+00E0
+ x2s("\u0000\u00C0\000\000", "\u0000\u00E0\000\000", 0, 2, Option.IGNORECASE);
+ x2s("\u0000\u00E0\000\000", "\u0000\u00C0\000\000", 0, 2, Option.IGNORECASE);
+ // common case folding: u+00B5 and u+03BC
+ x2s("\u0000\u00B5\000\000", "\u0003\u00BC\000\000", 0, 2, Option.IGNORECASE);
+ x2s("\u0003\u00BC\000\000", "\u0000\u00B5\000\000", 0, 2, Option.IGNORECASE);
+ // common case folding: u+0073 and u+017F
+ x2s("\u0000\u0073\000\000", "\u0001\u007F\000\000", 0, 2, Option.IGNORECASE);
+ x2s("\u0001\u007F\000\000", "\u0000\u0073\000\000", 0, 2, Option.IGNORECASE);
+ // full case folding: u+1FA0 and u+1F60 u+03B9
+ x2s("\u001F\u00A0\000\000", "\u001F\u0060\u0003\u00B9\000\000", 0, 4, Option.IGNORECASE);
+ x2s("\u001F\u0060\u0003\u00B9\000\000", "\u001F\u00A0\000\000", 0, 2, Option.IGNORECASE);
+ // full case folding: u+1FA8 and u+1F60 u+03B9
+ x2s("\u001F\u00A8\000\000", "\u001F\u0060\u0003\u00B9\000\000", 0, 4, Option.IGNORECASE);
+ x2s("\u001F\u0060\u0003\u00B9\000\000", "\u001F\u00A8\000\000", 0, 2, Option.IGNORECASE);
+ // simple case folding: u+1FA8 and u+1FA0
+ x2s("\u001F\u00A8\000\000", "\u001F\u00A0\000\000", 0, 2, Option.IGNORECASE);
+ x2s("\u001F\u00A0\000\000", "\u001F\u00A8\000\000", 0, 2, Option.IGNORECASE);
+ // FIXME: Case folding for 'LATIN CAPITAL LETTER SHARP S' not supported
+ // full case folding: u+1E9E and u+0073 u+0073
+ // x2s("\u001E\u009E\000\000", "\u0000\u0073\u0000\u0073\000\000", 0, 4, Option.IGNORECASE);
+ // simple case folding: u+1E9E and u+00DF
+ // x2s("\u001E\u009E\000\000", "\u0000\u00DF\000\000", 0, 2, Option.IGNORECASE);
+
+ // Case fold exceeding Analyser#THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION (= 8)
+ x2s("\u0000\u0041\u0000\u0041\u0000\u0041\u0000\u0041\000\000", "\u0000\u0061\u0000\u0061\u0000\u0061\u0000\u0061\000\000", 0, 8, Option.IGNORECASE);
+
+ super.test();
+ }
+}
diff --git a/test/org/joni/test/TestU8.java b/test/org/joni/test/TestU8.java
old mode 100644
new mode 100755
index 76ea63b..1d2e7c7
--- a/test/org/joni/test/TestU8.java
+++ b/test/org/joni/test/TestU8.java
@@ -27,24 +27,24 @@ import org.joni.Option;
import org.joni.Syntax;
public class TestU8 extends Test {
-
+ @Override
public int option() {
return Option.DEFAULT;
}
-
+ @Override
public Encoding encoding() {
return UTF8Encoding.INSTANCE;
}
-
+ @Override
public String testEncoding() {
return "utf-8";
}
-
+ @Override
public Syntax syntax() {
return Syntax.DEFAULT;
}
-
- public void test() throws InterruptedException {
+ @Override
+ public void test() throws Exception {
xx("^\\d\\d\\d-".getBytes(), new byte []{-30, -126, -84, 48, 45}, 0, 0, 0, true);
x2s("x{2}", "xx", 0, 2, Option.IGNORECASE);
x2s("x{2}", "XX", 0, 2, Option.IGNORECASE);
@@ -159,9 +159,11 @@ public class TestU8 extends Test {
x2s("\\A\\X\\X\\z", "\r\u0308", 0, 3);
x2s("\\A\\X\\X\\z", "\n\u0308", 0, 3);
- }
- public static void main(String[] args) throws Throwable {
- new TestU8().run();
+ x2s("\\p{In_Unified_Canadian_Aboriginal_Syllabics_Extended}+", "\u18B0\u18FF", 0, 6);
+ x2s("(?i)\u1ffc", "\u2126\u1fbe", 0, 6);
+
+ super.test();
}
+
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jruby-joni.git
More information about the pkg-java-commits
mailing list