Вы могли бы сделать необычное регулярное выражение, чтобы делать именно то, что вы намеревались, но вам нужно использовать DOTALL и не жадный поиск, и вам нужно понять, как регулярные выражения работают в целом, а вы - нет.
Лучше всего использовать строковые методы, а не регулярные выражения, что в любом случае является более питоническим:
while '<reg>' in string:
begin, end = string.split('<reg>', 1)
trash, end = end.split('</reg>', 1)
string = begin + end
Если вы хотите быть очень универсальным, позволяя использовать странные заглавные буквы тегов или пробелов и свойств в тегах,Вам также не следует этого делать, но вкладывайте средства в изучение библиотеки разбора html / xml. lxml в настоящее время широко рекомендуется и поддерживается.