672 {
673 if (target.Length >
str.Value.Length -
str.Index)
674 {
675 return false;
676 }
677 if (
str.CompareInfo.Compare(
str.Value.Slice(
str.Index, target.Length), target,
CompareOptions.IgnoreCase) != 0)
678 {
679 return false;
680 }
681 int num = str.Index + target.Length;
682 if (num <
str.Value.Length)
683 {
684 char c =
str.Value[num];
685 if (char.IsLetter(c))
686 {
687 return false;
688 }
689 }
690 str.Index = num;
691 if (
str.Index <
str.Length)
692 {
693 str.m_current =
str.Value[
str.Index];
694 }
695 return true;
696 }