import java.util.regex.Pattern;
class Example {
check("aaaa", true);
check("a", true);
check("", true);
check("m", true);
check("n", true);
check("mn", false);
check("q", false);
check("nnnn", false);
}
private static void check
(String text,
boolean expect
) { boolean result = Pattern.matches("a*|[mn]", text);
(result ? "Match " : "No match") +
(result == expect ? " OK " : " ERROR ") +
": " + text
);
}
}
aW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOwoKY2xhc3MgRXhhbXBsZSB7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24gewoJCWNoZWNrKCJhYWFhIiwgdHJ1ZSk7CgkJY2hlY2soImEiLCB0cnVlKTsKCQljaGVjaygiIiwgdHJ1ZSk7CgkJY2hlY2soIm0iLCB0cnVlKTsKCQljaGVjaygibiIsIHRydWUpOwoJCWNoZWNrKCJtbiIsIGZhbHNlKTsKCQljaGVjaygicSIsIGZhbHNlKTsKCQljaGVjaygibm5ubiIsIGZhbHNlKTsKCX0KCXByaXZhdGUgc3RhdGljIHZvaWQgY2hlY2soU3RyaW5nIHRleHQsIGJvb2xlYW4gZXhwZWN0KSB7CgkJYm9vbGVhbiByZXN1bHQgPSBQYXR0ZXJuLm1hdGNoZXMoImEqfFttbl0iLCB0ZXh0KTsKCQlTeXN0ZW0ub3V0LnByaW50bG4oCgkJCShyZXN1bHQgPyAiTWF0Y2ggICAiIDogIk5vIG1hdGNoIikgKwoJCQkocmVzdWx0ID09IGV4cGVjdCA/ICIgT0sgICAgIiA6ICIgRVJST1IgIikgKwoJCQkiOiAiICsgdGV4dAoJCSk7Cgl9Cn0=