import java.util.*;
import java.io.*;
import java.util.regex.*;
import java.util.List;
class Program {
String subject
= "custom onetomany manytomany atom tomcat tomorrow automatic tom tomahawk"; Pattern regex = Pattern.compile("custom|onetomany|manytomany|atom|tomcat|tomorrow|automatic|(\\w*tom\\w*)");
Matcher regexMatcher = regex.matcher(subject);
List<String> group1Caps = new ArrayList<String>();
// put Group 1 captures in a list
while (regexMatcher.find()) {
if(regexMatcher.group(1) != null) {
group1Caps.add(regexMatcher.group(1));
}
} // end of building the list
System.
out.
println("\n" + "*** Matches ***"); if(group1Caps.size()>0) {
}
} // end main
} // end Program
ICAgIGltcG9ydCBqYXZhLnV0aWwuKjsKICAgIGltcG9ydCBqYXZhLmlvLio7CiAgICBpbXBvcnQgamF2YS51dGlsLnJlZ2V4Lio7CiAgICBpbXBvcnQgamF2YS51dGlsLkxpc3Q7CiAgICAgCiAgICBjbGFzcyBQcm9ncmFtIHsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgl7CiAgICAgCiAgICBTdHJpbmcgc3ViamVjdCA9ICJjdXN0b20gb25ldG9tYW55IG1hbnl0b21hbnkgYXRvbSB0b21jYXQgdG9tb3Jyb3cgYXV0b21hdGljIHRvbSB0b21haGF3ayI7CiAgICBQYXR0ZXJuIHJlZ2V4ID0gUGF0dGVybi5jb21waWxlKCJjdXN0b218b25ldG9tYW55fG1hbnl0b21hbnl8YXRvbXx0b21jYXR8dG9tb3Jyb3d8YXV0b21hdGljfChcXHcqdG9tXFx3KikiKTsKICAgIE1hdGNoZXIgcmVnZXhNYXRjaGVyID0gcmVnZXgubWF0Y2hlcihzdWJqZWN0KTsKICAgIExpc3Q8U3RyaW5nPiBncm91cDFDYXBzID0gbmV3IEFycmF5TGlzdDxTdHJpbmc+KCk7CiAgICAgCiAgICAvLyBwdXQgR3JvdXAgMSBjYXB0dXJlcyBpbiBhIGxpc3QKICAgIHdoaWxlIChyZWdleE1hdGNoZXIuZmluZCgpKSB7CiAgICBpZihyZWdleE1hdGNoZXIuZ3JvdXAoMSkgIT0gbnVsbCkgewogICAgZ3JvdXAxQ2Fwcy5hZGQocmVnZXhNYXRjaGVyLmdyb3VwKDEpKTsKICAgIAl9CiAgICB9IC8vIGVuZCBvZiBidWlsZGluZyB0aGUgbGlzdAogICAgIAogICAgU3lzdGVtLm91dC5wcmludGxuKCJcbiIgKyAiKioqIE1hdGNoZXMgKioqIik7CiAgICBpZihncm91cDFDYXBzLnNpemUoKT4wKSB7CiAgICBmb3IgKFN0cmluZyBtYXRjaCA6IGdyb3VwMUNhcHMpIFN5c3RlbS5vdXQucHJpbnRsbihtYXRjaCk7CiAgICB9CiAgICAgCiAgICB9IC8vIGVuZCBtYWluCiAgICB9IC8vIGVuZCBQcm9ncmFt