int CodePoint() { if (!Char.IsHighSurrogate(chr)) return (int)chr; index--; return CharacterUtilities.CodePoint(pat, ref index); }