public string GetInnermostString(string input, string startDelimiter, string endDelimiter)
int startIndex = input.LastIndexOf(startDelimiter) + startDelimiter.Length;
int endIndex = input.IndexOf(endDelimiter, startIndex);
if (startIndex >= 0 && endIndex >= 0 && startIndex <= endIndex)
return input.Substring(startIndex, endIndex - startIndex);
string text = "(a(b(c)d)e";
Console.WriteLine( GetInnermostString(text, "(", ")") );