import java.util.*;
import java.util.regex.*;
class Test
{
{
String s
= "**bold** _italic_ ~strike~ `**code**` **_bold and italic_**"; String rx
= "(`[^`]*`)|(\\*\\*|[_~])((?:(?!\\2).)*)\\2"; do {
prev = s;
s = s.replaceAll(rx, "$1$3");
}
while (!prev.equals(s));
s = s.replaceAll("`([^`]*)`", "$1");
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS51dGlsLnJlZ2V4Lio7CgpjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVN0cmluZyBzID0gIioqYm9sZCoqICBfaXRhbGljXyB+c3RyaWtlfiBgKipjb2RlKipgICoqX2JvbGQgYW5kIGl0YWxpY18qKiI7CgkJU3RyaW5nIHJ4ID0gIihgW15gXSpgKXwoXFwqXFwqfFtffl0pKCg/Oig/IVxcMikuKSopXFwyIjsKCQlTdHJpbmcgcHJldiA9ICIiOwoJCWRvIHsKCQkJcHJldiA9IHM7CgkJCXMgPSBzLnJlcGxhY2VBbGwocngsICIkMSQzIik7CgkJfQoJCXdoaWxlICghcHJldi5lcXVhbHMocykpOwoJCXMgPSBzLnJlcGxhY2VBbGwoImAoW15gXSopYCIsICIkMSIpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihzKTsKCX0KfQ==