import io:* import regex:* fun main():int { println("concat") var reg = regex("ab") println(reg.long_match("abab")) println(reg.long_match("aab")) println("repitition") reg = regex("a*b+c") println(reg.long_match("bc")) println(reg.long_match("aaaaaaaaaaaaaaaabc")) println(reg.long_match("aaaaaaaaaaaaaaaabbbbbbbbbc")) println(reg.long_match("aaaaaaaaaaaaaaaa")) println(reg.long_match("aaaaaaaaaaaaaaaac")) println(reg.long_match("aaaaaaaaaaaaaaaab")) println("alternation") reg = regex("a|b") println(reg.long_match("a")) println(reg.long_match("b")) println(reg.long_match("aa")) println(reg.long_match("bb")) println(reg.long_match("ab")) println(reg.long_match("c")) println("perens!") reg = regex("(a|b)*") println(reg.long_match("a")) println(reg.long_match("b")) println(reg.long_match("aa")) println(reg.long_match("bb")) println(reg.long_match("ab")) println(reg.long_match("abbbaaababab")) println(reg.long_match("c")) println("optional!") reg = regex("a?b") println(reg.long_match("a")) println(reg.long_match("b")) println(reg.long_match("ab")) println("escape!") reg = regex("a\\?+") println(reg.long_match("a")) println(reg.long_match("a?")) println(reg.long_match("a??")) println("Old Contributed") var re = regex("a*"); println(re.long_match("a")); println(re.long_match("aa")); println(re.long_match("aaaab")); println(re.long_match("b")); re = regex("a+"); println(re.long_match("aa")); println(re.long_match("aaaab")); println(re.long_match("b")); re = regex("a(bc)?"); println(re.long_match("ab")); re = regex("((ab)|c)*"); println(re.long_match("ababc")); println(re.long_match("ad")); println(re.long_match("ababccd")); re = regex("bbb((bba+)|(ba+))*a*((a+b)|(a+bb)|(a+))*bbb") ; println(re.long_match("bbbababbbaaaaaaaaaaaaaaaaaaabbb")); return 0 }