This is the code i ended up with. The context is that i don't control the lines (so i can't use a regex - in don't know if i have all the input). I suppose to be sure i should employ a stringbuilder to concatenate the lines while they don't match the end of the "tag".
boolean isMarkupStart = line.startsWith("\n***");
if (isMarkupStart) {
isStart = line.contains(START_TAG);
isEnd = line.contains(END_TAG);
inTag = isStart || isEnd;
}
if (isInValidText && !inTag) {
super.insertString(offset, line, attr);
}
//best i can do. If the string breaks exactly at *\n**
//or something, i suppose this wil break horribly.
if (inTag && line.endsWith("***")) {
isInValidText = isStart && !isEnd;
inTag = false;
}