/// <summary>
 /// Method called to parse tail of pointer path, when a potentially
 /// escaped character has been seen.
 /// </summary>
 /// <param name="input">Full input for the tail being parsed</param>
 /// <param name="i">Offset to character after tilde</param>
 protected internal static com.fasterxml.jackson.core.JsonPointer _parseQuotedTail(string input, int i)
 {
     int end = input.Length;
     System.Text.StringBuilder sb = new System.Text.StringBuilder(System.Math.max(16,
         end));
     if (i > 2)
     {
         sb.AppendRange(input, 1, i - 1);
     }
     _appendEscape(sb, input[i++]);
     while (i < end)
     {
         char c = input[i];
         if (c == '/')
         {
             // end is nigh!
             return new com.fasterxml.jackson.core.JsonPointer(input, sb.ToString(), _parseTail
                 (Sharpen.Runtime.substring(input, i)));
         }
         ++i;
         if (c == '~' && i < end)
         {
             _appendEscape(sb, input[i++]);
             continue;
         }
         sb.Append(c);
     }
     // end of the road, last segment
     return new com.fasterxml.jackson.core.JsonPointer(input, sb.ToString(), EMPTY);
 }