/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
final String regex
= "a(b|(bc|(bcd|(bcde|bcdef))))?$"; String string
= "asdjb|ak.fvajfabcdefabcdefabcdefabc";
final Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(string);
int length = 0;
while (matcher.find()) {
System.
out.
println("Full match: " + matcher.
group(0)); length += matcher.group(0).length();
// System.out.println(string.substring(0, string.length()-length));
// string = string.substring(0, string.length());
// System.out.println(string);
matcher = pattern.matcher(string.substring(0, string.length()- length));
}
System.
out.
println(string.
substring(0, string.
length()- length
)); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKaW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOwovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCQoKCQlmaW5hbCBTdHJpbmcgcmVnZXggPSAiYShifChiY3woYmNkfChiY2RlfGJjZGVmKSkpKT8kIjsKCQlTdHJpbmcgc3RyaW5nID0gImFzZGpifGFrLmZ2YWpmYWJjZGVmYWJjZGVmYWJjZGVmYWJjIjsKCgkJZmluYWwgUGF0dGVybiBwYXR0ZXJuID0gUGF0dGVybi5jb21waWxlKHJlZ2V4KTsKCQlNYXRjaGVyIG1hdGNoZXIgPSBwYXR0ZXJuLm1hdGNoZXIoc3RyaW5nKTsKCQlpbnQgbGVuZ3RoID0gMDsKCQl3aGlsZSAobWF0Y2hlci5maW5kKCkpIHsKICAgIAkJU3lzdGVtLm91dC5wcmludGxuKCJGdWxsIG1hdGNoOiAiICsgbWF0Y2hlci5ncm91cCgwKSk7CiAgICAJCWxlbmd0aCArPSBtYXRjaGVyLmdyb3VwKDApLmxlbmd0aCgpOwogICAgCQkvLyBTeXN0ZW0ub3V0LnByaW50bG4oc3RyaW5nLnN1YnN0cmluZygwLCBzdHJpbmcubGVuZ3RoKCktbGVuZ3RoKSk7CiAgICAJCS8vIHN0cmluZyA9IHN0cmluZy5zdWJzdHJpbmcoMCwgc3RyaW5nLmxlbmd0aCgpKTsKICAgIAkJLy8gU3lzdGVtLm91dC5wcmludGxuKHN0cmluZyk7CiAgICAJCW1hdGNoZXIgPSBwYXR0ZXJuLm1hdGNoZXIoc3RyaW5nLnN1YnN0cmluZygwLCBzdHJpbmcubGVuZ3RoKCktIGxlbmd0aCkpOwoJCX0KCQlTeXN0ZW0ub3V0LnByaW50bG4oc3RyaW5nLnN1YnN0cmluZygwLCBzdHJpbmcubGVuZ3RoKCktIGxlbmd0aCkpOwoJfQp9