private static string Normalize(string expr)
{
var swap = new NormalizationSwap();
expr = RegExp(@"[\['](\??\(.*?\))[\]']").Replace(expr, swap.Capture);
expr = RegExp(@"'?\.'?|\['?").Replace(expr, ";");
expr = RegExp(@";;;|;;").Replace(expr, ";..;");
expr = RegExp(@";$|'?\]|'$").Replace(expr, string.Empty);
expr = RegExp(@"#([0-9]+)").Replace(expr, swap.Yield);
return expr;
}