import java.util.*;
import java.util.regex.*;
import java.lang.*;
import java.io.*;
class Ideone
{
{
String regex
= "%([^%.]+)%|(?<!\\$)\\$(?:\\{([^\\{}]+)\\}|([^$.\\s]+))"; String string
= "%ABC%\n$ABC.\n$ABC$XYZ ${ABC}\n\n$$EFG $${EFG}."; Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
Matcher m = pattern.matcher(string);
List<String> results = new ArrayList<>();
while (m.find()) {
results.add(Objects.toString(m.group(1),"") +
Objects.toString(m.group(2),"") +
Objects.toString(m.group(3),""));
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4Lio7CmltcG9ydCBqYXZhLmxhbmcuKjsKaW1wb3J0IGphdmEuaW8uKjsKCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTdHJpbmcgcmVnZXggPSAiJShbXiUuXSspJXwoPzwhXFwkKVxcJCg/OlxceyhbXlxce31dKylcXH18KFteJC5cXHNdKykpIjsKCQlTdHJpbmcgc3RyaW5nID0gIiVBQkMlXG4kQUJDLlxuJEFCQyRYWVogICR7QUJDfVxuXG4kJEVGRyAkJHtFRkd9LiI7CgkJUGF0dGVybiBwYXR0ZXJuID0gUGF0dGVybi5jb21waWxlKHJlZ2V4LCBQYXR0ZXJuLk1VTFRJTElORSk7CgkJTWF0Y2hlciBtID0gcGF0dGVybi5tYXRjaGVyKHN0cmluZyk7CgkJTGlzdDxTdHJpbmc+IHJlc3VsdHMgPSBuZXcgQXJyYXlMaXN0PD4oKTsKCQl3aGlsZSAobS5maW5kKCkpIHsKICAgIAkJcmVzdWx0cy5hZGQoT2JqZWN0cy50b1N0cmluZyhtLmdyb3VwKDEpLCIiKSArIAogICAgCQkJT2JqZWN0cy50b1N0cmluZyhtLmdyb3VwKDIpLCIiKSArIAogICAgCQkJT2JqZWN0cy50b1N0cmluZyhtLmdyb3VwKDMpLCIiKSk7CgkJfQogICAgCVN5c3RlbS5vdXQucHJpbnRsbihyZXN1bHRzKTsKCX0KfQ==