private int findPlaceholderEndIndex(CharSequence buf, int startIndex) {
   int index = startIndex + this.placeholderPrefix.length();
   int withinNestedPlaceholder = 0;
   while (index < buf.length()) {
     if (StringUtils.substringMatch(buf, index, this.placeholderSuffix)) {
       if (withinNestedPlaceholder > 0) {
         withinNestedPlaceholder--;
         index = index + this.placeholderSuffix.length();
       } else {
         return index;
       }
     } else if (StringUtils.substringMatch(buf, index, this.simplePrefix)) {
       withinNestedPlaceholder++;
       index = index + this.simplePrefix.length();
     } else {
       index++;
     }
   }
   return -1;
 }