{0, "(.*)*\\1", "xx"},
{0, "^", ""},
{0, "$", ""},
{0, "^$", ""},
{0, "^a$", "a"},
{0, "abc", "abc"},
{1, "abc", "xbc"},
{1, "abc", "axc"},
{1, "abc", "abx"},
{0, "abc", "xabcy"},
{0, "abc", "ababc"},
{0, "ab*c", "abc"},
{0, "ab*bc", "abc"},
{0, "ab*bc", "abbc"},
{0, "ab*bc", "abbbbc"},
{0, "ab+bc", "abbc"},
{1, "ab+bc", "abc"},
{1, "ab+bc", "abq"},
{0, "ab+bc", "abbbbc"},
{0, "ab?bc", "abbc"},
{0, "ab?bc", "abc"},
{1, "ab?bc", "abbbbc"},
{0, "ab?c", "abc"},
{0, "^abc$", "abc"},
{1, "^abc$", "abcc"},
{0, "^abc", "abcc"},
{1, "^abc$", "aabc"},
{0, "abc$", "aabc"},
{0, "^", "abc"},
{0, "$", "abc"},
{0, "a.c", "abc"},
{0, "a.c", "axc"},
{0, "a.*c", "axyzc"},
{1, "a.*c", "axyzd"},
{1, "a[bc]d", "abc"},
{0, "a[bc]d", "abd"},
{1, "a[b-d]e", "abd"},
{0, "a[b-d]e", "ace"},
{0, "a[b-d]", "aac"},
{0, "a[-b]", "a-"},
{0, "a[b-]", "a-"},
{2, "a[b-a]", "-"},
{2, "a[]b", "-"},
{2, "a[", "-"},
{0, "a]", "a]"},
{0, "a[]]b", "a]b"},
{0, "a[^bc]d", "aed"},
{1, "a[^bc]d", "abd"},
{0, "a[^-b]c", "adc"},
{1, "a[^-b]c", "a-c"},
{1, "a[^]b]c", "a]c"},
{0, "a[^]b]c", "adc"},
{0, "ab|cd", "abc"},
{0, "ab|cd", "abcd"},
{0, "()ef", "def"},
{0, "()*", "-"},
{2, "*a", "-"},
{2, "^*", "-"},
{2, "$*", "-"},
{2, "(*)b", "-"},
{1, "$b", "b"},
{2, "a\\", "-"},
{0, "a\\(b", "a(b"},
{0, "a\\(*b", "ab"},
{0, "a\\(*b", "a((b"},
{1, "a\\x", "a\\x"},
{1, "abc)", "-"},
{2, "(abc", "-"},
{0, "((a))", "abc"},
{0, "(a)b(c)", "abc"},
{0, "a+b+c", "aabbabc"},
{0, "a**", "-"},
{0, "a*?", "-"},
{0, "(a*)*", "-"},
{0, "(a*)+", "-"},
{0, "(a|)*", "-"},
{0, "(a*|b)*", "-"},
{0, "(a+|b)*", "ab"},
{0, "(a+|b)+", "ab"},
{0, "(a+|b)?", "ab"},
{0, "[^ab]*", "cde"},
{0, "(^)*", "-"},
{0, "(ab|)*", "-"},
{2, ")(", "-"},
{1, "abc", ""},
{1, "abc", ""},
{0, "a*", ""},
{0, "([abc])*d", "abbbcd"},
{0, "([abc])*bcd", "abcd"},
{0, "a|b|c|d|e", "e"},
{0, "(a|b|c|d|e)f", "ef"},
{0, "((a*|b))*", "-"},
{0, "abcd*efg", "abcdefg"},
{0, "ab*", "xabyabbbz"},
{0, "ab*", "xayabbbz"},
{0, "(ab|cd)e", "abcde"},
{0, "[abhgefdc]ij", "hij"},
{1, "^(ab|cd)e", "abcde"},
{0, "(abc|)ef", "abcdef"},
{0, "(a|b)c*d", "abcd"},
{0, "(ab|ab*)bc", "abc"},
{0, "a([bc]*)c*", "abc"},
{0, "a([bc]*)(c*d)", "abcd"},
{0, "a([bc]+)(c*d)", "abcd"},
{0, "a([bc]*)(c+d)", "abcd"},
{0, "a[bcd]*dcdcde", "adcdcde"},
{1, "a[bcd]+dcdcde", "adcdcde"},
{0, "(ab|a)b*c", "abc"},
{0, "((a)(b)c)(d)", "abcd"},
{0, "[A-Za-z_][A-Za-z0-9_]*", "alpha"},
{0, "^a(bc+|b[eh])g|.h$", "abh"},
{0, "(bc+d$|ef*g.|h?i(j|k))", "effgz"},
{0, "(bc+d$|ef*g.|h?i(j|k))", "ij"},
{1, "(bc+d$|ef*g.|h?i(j|k))", "effg"},
{1, "(bc+d$|ef*g.|h?i(j|k))", "bcdd"},
{0, "(bc+d$|ef*g.|h?i(j|k))", "reffgz"},
{1, "((((((((((a))))))))))", "-"},
{0, "(((((((((a)))))))))", "a"},
{1, "multiple words of text", "uh-uh"},
{0, "multiple words", "multiple words, yeah"},
{0, "(.*)c(.*)", "abcde"},
{1, "\\((.*),", "(.*)\\)"},
{1, "[k]", "ab"},
{0, "abcd", "abcd"},
{0, "a(bc)d", "abcd"},
{0, "a[-]?c", "ac"},
{0, "(....).*\\1", "beriberi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Qaddafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mo'ammar Gadhafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Kaddafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Qadhafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moammar El Kadhafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Gadafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar al-Qadafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moamer El Kazzafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moamar al-Gaddafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar Al Qathafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Al Qathafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mo'ammar el-Gadhafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moamar El Kadhafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar al-Qadhafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar al-Qadhdhafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar Qadafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moamar Gaddafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar Qadhdhafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Khaddafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar al-Khaddafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'amar al-Kadafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Ghaddafy"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Ghadafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Ghaddafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muamar Kaddafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Quathafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muammar Gheddafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Muamar Al-Kaddafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moammar Khadafy "},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Moammar Qudhafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mu'ammar al-Qaddafi"},
{0, "M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", "Mulazim Awwal Mu'ammar Muhammad Abu Minyar al-Qadhafi"},
{0, "[[:digit:]]+", "01234"},
{1, "[[:alpha:]]+", "01234"},
{0, "^[[:digit:]]*$", "01234"},
{1, "^[[:digit:]]*$", "01234a"},
{0, "^[[:alnum:]]*$", "01234a"},
{0, "^[[:xdigit:]]*$", "01234a"},
{1, "^[[:xdigit:]]*$", "01234g"},
{0, "^[[:alnum:][:space:]]*$", "Hello world"},