private static IList<string> SplitPattern(string match)
{
var firstparts = match.Split(')');
var parts = new List<string>();
foreach (var part in firstparts)
{
if (string.IsNullOrEmpty(part))
continue;
int pos = part.IndexOf('(');
if (pos >= 0)
{
if (pos > 0)
parts.Add(part.Substring(0, pos));
parts.Add(part.Substring(pos));
}
else
parts.Add(part);
}
return parts;
}