Итак по условиям задачи необходимо находить парные теги и выводить их.
Решил решить с помощью РВ и заодно разобраться в рекурсии, что оказалось не так просто, как казалось по началу.
Итак есть упрощенная строка пустых тегов с тройной или n-вложенностью
<tag><tag><tag>qwe</tag></tag></tag>
необоходимо РВ которое будет ее искать и находить в тексте.
вот что получилось, но ищет все равно не полностью, последний закрывающий тег не находит
(<tag>)(?=(\w*<\/tag>)|(<tag>(?:\w*|(?3))<\/tag>)<\/tag>)
открывающий тег, смотрим вперед, если видим закрывающий тег - то все Ок, без вложений, дальше проверяем на вложенность тегов.
https://regex101.com/r/MQpwng/1
помогите доделать РВ, чтобы работала рекурсия полностью по закрывающиему тегу.