import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
{
final String regex
= "^# dev(?!2\\b)[0-9]+(?:\\R(?!# dev[0-9]).*)*"; final String string
= "# dev2\n" + "SAMETEXT %{URI} ^dev2-00.XXX.XXX.XXX\n"
+ "SAMETEXT %{URI} ^/XXX/\n"
+ "DIFFTEXT ^/XXX/(.*) https://X...content-available-to-author-only...X.XXX/XXX/$1 [X,Y]\n\n"
+ "# dev1\n"
+ "SAMETEXT %{URI} ^dev2-00.XXX.XXX.XXX\n"
+ "SAMETEXT %{URI} ^/XXX/\n"
+ "DIFFTEXT ^/XXX/(.*) https://X...content-available-to-author-only...X.XXX/XXX/$1 [X,Y]\n\n"
+ "# dev2\n"
+ "SAMETEXT %{URI} ^dev2-00.XXX.XXX.XXX\n"
+ "SAMETEXT %{URI} ^/XXX/\n"
+ "DIFFTEXT ^/XXX/(.*) https://X...content-available-to-author-only...X.XXX/XXX/$1 [X,Y]\n";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.
out.
println(matcher.
group(0)); }
}
}
aW1wb3J0IGphdmEudXRpbC5yZWdleC5NYXRjaGVyOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47CmltcG9ydCBqYXZhLnV0aWwuKjsKaW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgamF2YS5pby4qOwoKCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlmaW5hbCBTdHJpbmcgcmVnZXggPSAiXiMgZGV2KD8hMlxcYilbMC05XSsoPzpcXFIoPyEjIGRldlswLTldKS4qKSoiOwoJCWZpbmFsIFN0cmluZyBzdHJpbmcgPSAiIyBkZXYyXG4iCgkJCSArICJTQU1FVEVYVCAle1VSSX0gXmRldjItMDAuWFhYLlhYWC5YWFhcbiIKCQkJICsgIlNBTUVURVhUICV7VVJJfSAgXi9YWFgvXG4iCgkJCSArICJESUZGVEVYVCBeL1hYWC8oLiopIGh0dHBzOi8vWC4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uWC5YWFgvWFhYLyQxIFtYLFldXG5cbiIKCQkJICsgIiMgZGV2MVxuIgoJCQkgKyAiU0FNRVRFWFQgJXtVUkl9IF5kZXYyLTAwLlhYWC5YWFguWFhYXG4iCgkJCSArICJTQU1FVEVYVCAle1VSSX0gIF4vWFhYL1xuIgoJCQkgKyAiRElGRlRFWFQgXi9YWFgvKC4qKSBodHRwczovL1guLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLlguWFhYL1hYWC8kMSBbWCxZXVxuXG4iCgkJCSArICIjIGRldjJcbiIKCQkJICsgIlNBTUVURVhUICV7VVJJfSBeZGV2Mi0wMC5YWFguWFhYLlhYWFxuIgoJCQkgKyAiU0FNRVRFWFQgJXtVUkl9ICBeL1hYWC9cbiIKCQkJICsgIkRJRkZURVhUIF4vWFhYLyguKikgaHR0cHM6Ly9YLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5YLlhYWC9YWFgvJDEgW1gsWV1cbiI7CgkJCgkJZmluYWwgUGF0dGVybiBwYXR0ZXJuID0gUGF0dGVybi5jb21waWxlKHJlZ2V4LCBQYXR0ZXJuLk1VTFRJTElORSk7CgkJZmluYWwgTWF0Y2hlciBtYXRjaGVyID0gcGF0dGVybi5tYXRjaGVyKHN0cmluZyk7CgkJCgkJd2hpbGUgKG1hdGNoZXIuZmluZCgpKSB7CgkJICAgIFN5c3RlbS5vdXQucHJpbnRsbihtYXRjaGVyLmdyb3VwKDApKTsKCQl9Cgl9Cn0=