вот регулярное значение Вопрос в 3 пункте ("<(" + arg + ")[^>]*>.*?(<\\1>.*?</\\1>).*?(</\\1>)"); 1) ("<(" + arg + ")[^>]*> отвечает за начало или 2) .*? текст Может быть а может и нет (в примере это ) Вопрос нужен, чтобы был до ближайшего следующего условия 3) (<\\1>.*?</\\1>) По уму я должен поставить после скобок *? Но когда я ставлю считает эти скобки null и все ломается вообщем .*? во втором пункте начинает много читать Забирает вообщем под себя все 4).*? тоже что и 2 пункт (в примере это ) 5)(</\\1>) закрывающий тег Мое решение должно проходить ("<(" + arg + ")[^>]*>.*?(<\\1>.*?</\\1>)*?.*?(</\\1>)"); Оно подходит ко всем вариантам