private static string FormatPartiallyDelimitedToken(Match m, Func<string> propertyValue)
{
/* Logic for partial escaping depends on the delimiter pairs:
* - even/odd pairs = Reduce even sets of delimiters, retain property name
* e.g., {{Name} => {Name}
* e.g., {Name}} => {Name}
*
* - odd pairs = Reduce even sets of delimiters, use property value
* e.g., {{{Name} => {Ahmad
* e.g., {Name}}} => Ahmad}
*/
var isOddPair = m.Groups[START_DELIMITER].Length % 2 != 0 && m.Groups[END_DELIMITER].Length % 2 != 0;
var result = String.Concat(TrimPartialDelimiters(isOddPair, START_DELIMITER_CHAR, m.Groups[START_DELIMITER].Length),
isOddPair ? propertyValue() : m.Groups[PROPERTY].Value,
TrimPartialDelimiters(isOddPair, END_DELIMITER_CHAR, m.Groups[END_DELIMITER].Length));
return result;
}