public override List<PatternMatch> AllMatches(AmbiguousPhrase subject, PatternMatch before)
        {
            List<PatternMatch> result = new List<PatternMatch>();
            if (caseSensitive) {
                if (pattern == subject.StringAt(before.End))
                    result.Add(before.MatchExtendedBy(1));
            } else
                if (pattern == subject.StringAt(before.End).ToLower())
                    result.Add(before.MatchExtendedBy(1));

            return result;
        }
        public override List <PatternMatch> AllMatches(AmbiguousPhrase subject, PatternMatch before)
        {
            List <PatternMatch> result = new List <PatternMatch>();

            if (caseSensitive)
            {
                if (pattern == subject.StringAt(before.End))
                {
                    result.Add(before.MatchExtendedBy(1));
                }
            }
            else
            if (pattern == subject.StringAt(before.End).ToLower())
            {
                result.Add(before.MatchExtendedBy(1));
            }

            return(result);
        }