Для тегов HTML, пожалуйста, используйте анализатор HTML.
Для [a] [/ a] вы можете сделать следующее
Match m=Regex.Match(@"[a b=""c"" d=""e""]Some multi line text[/a]",
@"\[a b=""([^""]+)"" d=""([^""]+)""\](.*?)\[/a\]",
RegexOptions.Multiline);
m.Groups[1].Value
"c"
m.Groups[2].Value
"e"
m.Groups[3].Value
"Some multi line text"
Вот Regex.Replace (хотя я не так предпочитаю)
string inputStr = @"[a b=""[[[[c]]]]"" d=""e[]""]Some multi line text[/a]";
string resultStr=Regex.Replace(inputStr,
@"\[a( b=""[^""]+"")( d=""[^""]+"")?\](.*?)\[/a\]",
@"<a$1$2>$3</a>",
RegexOptions.Multiline);