using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var tststr = @"Hi I am normal text <strong>but bold</strong> and normal again";
var lst = new List<string>();
var former_idx = 0;
for (var m = Regex.Match(tststr, @"(?s)\s*<(\w+)\b[^>]*>.*?</\1>\s*"); m.Success; m = m.NextMatch())
{
lst.Add(tststr.Substring(former_idx, m.Index - former_idx));
lst.Add(m.Value);
former_idx = m.Index + m.Value.Length;
}
if (former_idx < tststr.Length)
lst.Add(tststr.Substring(former_idx, tststr.Length - former_idx));
Console.WriteLine(string.Join("\n", lst));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciB0c3RzdHIgPSBAIkhpIEkgYW0gbm9ybWFsIHRleHQgPHN0cm9uZz5idXQgYm9sZDwvc3Ryb25nPiBhbmQgbm9ybWFsIGFnYWluIjsKCQl2YXIgbHN0ID0gbmV3IExpc3Q8c3RyaW5nPigpOwoJCXZhciBmb3JtZXJfaWR4ID0gMDsKCQlmb3IgKHZhciBtID0gUmVnZXguTWF0Y2godHN0c3RyLCBAIig/cylccyo8KFx3KylcYltePl0qPi4qPzwvXDE+XHMqIik7IG0uU3VjY2VzczsgbSA9IG0uTmV4dE1hdGNoKCkpCgkJewoJCSAgICBsc3QuQWRkKHRzdHN0ci5TdWJzdHJpbmcoZm9ybWVyX2lkeCwgbS5JbmRleCAtIGZvcm1lcl9pZHgpKTsKCQkgICAgbHN0LkFkZChtLlZhbHVlKTsKCQkgICAgZm9ybWVyX2lkeCA9IG0uSW5kZXggKyBtLlZhbHVlLkxlbmd0aDsKCQl9CgkJaWYgKGZvcm1lcl9pZHggPCB0c3RzdHIuTGVuZ3RoKQoJCSAgICBsc3QuQWRkKHRzdHN0ci5TdWJzdHJpbmcoZm9ybWVyX2lkeCwgdHN0c3RyLkxlbmd0aCAtIGZvcm1lcl9pZHgpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZShzdHJpbmcuSm9pbigiXG4iLCBsc3QpKTsKCX0KfQ==