/* 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
{
{
String regex
= "^(?![^\\ []+\\ [[^]]*(?:\\ w+,\\ s*\\ b(?:asc|desc)\\ b|\\ b(?:asc|desc)\\ b,\\ s*\\ w+)[^]]*\\ ])([^]\\ [\\ r\\ n]+)\\ [([^]\\ [\\ r\\ n]+)]" ; final String string
= "hl[asc]\n " + "dd[desc]\n "
+ "pa[asc]\n "
+ "ldka[1azqmrueq0081po5uc1g16jot,1azqmrueq0081po5uc1g16jot,default]\n "
+ "poa[3oihkx5wfar7qu9nvqruhrn17]\n "
+ "ppa[dspxu1o2l06bzbh84m9luu701,f8ir6cuq4unhgi0a4kqjwidb0]\n \n "
+ "hl[asc,test]\n "
+ "dd[test,desc]\n "
+ "pa[test,asc,test]\n "
+ "ldka[1azqmrueq0081po5uc1g16jot,1azqmrueq0081po5uc1g16jot,default,asc]\n "
+ "poa[desc,3oihkx5wfar7qu9nvqruhrn17]\n "
+ "ppa[dspxu1o2l06bzbh84m9luu701,asc,f8ir6cuq4unhgi0a4kqjwidb0]\n \n "
+ "dd[mydesc,test]\n "
+ "pa[test,ascii,test]\n \n "
+ "hl[basc,test, desc, test]\n "
+ "ldka[1azqmrueq0081po5uc1g16jot,1azqmrueq0081po5uc1g16jot,default,asc]\n "
+ "poa[desc,3oihkx5wfar7qu9nvqruhrn17]\n "
+ "ppa[dspxu1o2l06bzbh84m9luu701,asc,f8ir6cuq4unhgi0a4kqjwidb0]" ;
final Pattern pattern = Pattern.compile ( regex, Pattern.MULTILINE ) ;
final Matcher matcher = pattern.matcher ( string) ;
while ( matcher.find ( ) ) {
for ( int i = 1 ; i <= matcher.groupCount ( ) ; i++ ) {
System .
out .
println ( "Group " + i
+ ": " + matcher.
group ( i
) ) ; }
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKaW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCQlTdHJpbmcgcmVnZXggPSAiXig/IVteXFxbXStcXFtbXl1dKig/OlxcdyssXFxzKlxcYig/OmFzY3xkZXNjKVxcYnxcXGIoPzphc2N8ZGVzYylcXGIsXFxzKlxcdyspW15dXSpcXF0pKFteXVxcW1xcclxcbl0rKVxcWyhbXl1cXFtcXHJcXG5dKyldIjsKCQlmaW5hbCBTdHJpbmcgc3RyaW5nID0gImhsW2FzY11cbiIKCQkJICsgImRkW2Rlc2NdXG4iCgkJCSArICJwYVthc2NdXG4iCgkJCSArICJsZGthWzFhenFtcnVlcTAwODFwbzV1YzFnMTZqb3QsMWF6cW1ydWVxMDA4MXBvNXVjMWcxNmpvdCxkZWZhdWx0XVxuIgoJCQkgKyAicG9hWzNvaWhreDV3ZmFyN3F1OW52cXJ1aHJuMTddXG4iCgkJCSArICJwcGFbZHNweHUxbzJsMDZiemJoODRtOWx1dTcwMSxmOGlyNmN1cTR1bmhnaTBhNGtxandpZGIwXVxuXG4iCgkJCSArICJobFthc2MsdGVzdF1cbiIKCQkJICsgImRkW3Rlc3QsZGVzY11cbiIKCQkJICsgInBhW3Rlc3QsYXNjLHRlc3RdXG4iCgkJCSArICJsZGthWzFhenFtcnVlcTAwODFwbzV1YzFnMTZqb3QsMWF6cW1ydWVxMDA4MXBvNXVjMWcxNmpvdCxkZWZhdWx0LGFzY11cbiIKCQkJICsgInBvYVtkZXNjLDNvaWhreDV3ZmFyN3F1OW52cXJ1aHJuMTddXG4iCgkJCSArICJwcGFbZHNweHUxbzJsMDZiemJoODRtOWx1dTcwMSxhc2MsZjhpcjZjdXE0dW5oZ2kwYTRrcWp3aWRiMF1cblxuIgoJCQkgKyAiZGRbbXlkZXNjLHRlc3RdXG4iCgkJCSArICJwYVt0ZXN0LGFzY2lpLHRlc3RdXG5cbiIKCQkJICsgImhsW2Jhc2MsdGVzdCwgZGVzYywgdGVzdF1cbiIKCQkJICsgImxka2FbMWF6cW1ydWVxMDA4MXBvNXVjMWcxNmpvdCwxYXpxbXJ1ZXEwMDgxcG81dWMxZzE2am90LGRlZmF1bHQsYXNjXVxuIgoJCQkgKyAicG9hW2Rlc2MsM29paGt4NXdmYXI3cXU5bnZxcnVocm4xN11cbiIKCQkJICsgInBwYVtkc3B4dTFvMmwwNmJ6Ymg4NG05bHV1NzAxLGFzYyxmOGlyNmN1cTR1bmhnaTBhNGtxandpZGIwXSI7CgkJCgkJZmluYWwgUGF0dGVybiBwYXR0ZXJuID0gUGF0dGVybi5jb21waWxlKHJlZ2V4LCBQYXR0ZXJuLk1VTFRJTElORSk7CgkJZmluYWwgTWF0Y2hlciBtYXRjaGVyID0gcGF0dGVybi5tYXRjaGVyKHN0cmluZyk7CgkJCgkJd2hpbGUgKG1hdGNoZXIuZmluZCgpKSB7CgkJICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG1hdGNoZXIuZ3JvdXBDb3VudCgpOyBpKyspIHsKCQkgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiR3JvdXAgIiArIGkgKyAiOiAiICsgbWF0Y2hlci5ncm91cChpKSk7CgkJICAgIH0KCQl9Cgl9Cn0=