StringReader _innerReadToMatchAsReader(char leftChar, char rightChar, char[] leftQuotes, char[] rightQuotes, ReadOptions mode)
        {
            var idx = UnderlyingString.IndexOfNextMatch(leftChar, rightChar, leftQuotes, rightQuotes, CurrentPosition);

            if (idx == -1)
            {
                return(null);
            }
            else
            {
                if (UnderlyingString[CurrentPosition] == leftChar && mode.HasFlag(ReadOptions.DiscardKey))
                {
                    ++CurrentPosition;
                }
                return(_innerReadToAsReader(idx, 1, mode));
            }
        }