import  java.util.* ; 
import  java.lang.* ; 
import  java.io.* ; 
import  java.util.regex.Matcher ; 
import  java.util.regex.Pattern ; 
 
class  Ideone
{ 
	{ 
		String  regex 
=  "(?<hex><#\\ w+>)|(?<action>\\ [[^]]*]\\ ([^]]*\\ ))|(?<text>[\\ w!* ]+)" ;  		String  string 
=  "Some <#000000>*text* [<#ffffff>Some more](action: Other <#gradient>text) and **finally** some more <#000>text!" ;   
		Pattern pattern =  Pattern.compile ( regex) ; 
		Matcher matcher =  pattern.matcher ( string) ; 
 
		while  ( matcher.find ( ) )  { 
			if  ( matcher.group ( "hex" )  !=  null )  { 
				System .
out .
println ( "HEX - "  +  matcher.
group ( "hex" ) ) ; 	 			} 
			if  ( matcher.group ( "text" )  !=  null )  { 
				System .
out .
println ( "TEXT - "  +  matcher.
group ( "text" ) ) ; 	 			} 
			if  ( matcher.group ( "action" )  !=  null )  { 
				System .
out .
println ( "ACTION - "  +  matcher.
group ( "action" ) ) ; 	 			} 
		} 
	} 
} 
 
				aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKaW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOwoKY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVN0cmluZyByZWdleCA9ICIoPzxoZXg+PCNcXHcrPil8KD88YWN0aW9uPlxcW1teXV0qXVxcKFteXV0qXFwpKXwoPzx0ZXh0PltcXHchKiBdKykiOwoJCVN0cmluZyBzdHJpbmcgPSAiU29tZSA8IzAwMDAwMD4qdGV4dCogWzwjZmZmZmZmPlNvbWUgbW9yZV0oYWN0aW9uOiBPdGhlciA8I2dyYWRpZW50PnRleHQpIGFuZCAqKmZpbmFsbHkqKiBzb21lIG1vcmUgPCMwMDA+dGV4dCEiOwoJCQoJCVBhdHRlcm4gcGF0dGVybiA9IFBhdHRlcm4uY29tcGlsZShyZWdleCk7CgkJTWF0Y2hlciBtYXRjaGVyID0gcGF0dGVybi5tYXRjaGVyKHN0cmluZyk7CgkJCgkJd2hpbGUgKG1hdGNoZXIuZmluZCgpKSB7CgkJCWlmIChtYXRjaGVyLmdyb3VwKCJoZXgiKSAhPSBudWxsKSB7CgkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIkhFWCAtICIgKyBtYXRjaGVyLmdyb3VwKCJoZXgiKSk7CQoJCQl9CgkJCWlmIChtYXRjaGVyLmdyb3VwKCJ0ZXh0IikgIT0gbnVsbCkgewoJCQkJU3lzdGVtLm91dC5wcmludGxuKCJURVhUIC0gIiArIG1hdGNoZXIuZ3JvdXAoInRleHQiKSk7CQoJCQl9CgkJCWlmIChtYXRjaGVyLmdyb3VwKCJhY3Rpb24iKSAhPSBudWxsKSB7CgkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIkFDVElPTiAtICIgKyBtYXRjaGVyLmdyb3VwKCJhY3Rpb24iKSk7CQoJCQl9CgkJfQoJfQp9