using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var input = "text, *text*, text, text, (text), [text], [some_text with _*](http://.....) *text*, text, text, (text), [text]";
var pattern = @"(\[[^][]*]\([^()]*\))|[][()*_]";
Console.WriteLine(Regex.Replace(input, pattern, m =>
m.Groups[1].Success ? m.Groups[1].Value : $@"\{m.Value}"));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBpbnB1dCA9ICJ0ZXh0LCAqdGV4dCosIHRleHQsIHRleHQsICh0ZXh0KSwgW3RleHRdLCBbc29tZV90ZXh0IHdpdGggXypdKGh0dHA6Ly8uLi4uLikgKnRleHQqLCB0ZXh0LCB0ZXh0LCAodGV4dCksIFt0ZXh0XSI7CgkJdmFyIHBhdHRlcm4gPSBAIihcW1teXVtdKl1cKFteKCldKlwpKXxbXVsoKSpfXSI7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoUmVnZXguUmVwbGFjZShpbnB1dCwgcGF0dGVybiwgbSA9PiAKICAgICAgICAJbS5Hcm91cHNbMV0uU3VjY2VzcyA/IG0uR3JvdXBzWzFdLlZhbHVlIDogJEAiXHttLlZhbHVlfSIpKTsKCX0KfQ==
text, \*text\*, text, text, \(text\), \[text\], [some_text with _*](http://.....) \*text\*, text, text, \(text\), \[text\]