code: func isNextSuffixPattern(p []string) bool {
  	if len(p) >= 2 && isMatchPattern(p[0]) && !isMatchPattern(p[1]) {
  		matcher, _ := parseMatcher(p[0])
  		if _, ok := matcher.(*FixedLengthMatcher); ok {
  			return false
  		}
  		r, _ := utf8.DecodeRuneInString(p[1])
  		return matcher.MatchRune(r)
  	}
  	return false
  }
docs: // isNextSuffixPattern see next 2 patterns can be suffix matcher. If following
  // two cases are both true, it could possibly become a suffix matcher.
  //   1. the first pattern is a Matcher.
  //   2. the next pattern is a static pattern.
  // If the first matcher can't match the first rune of the second static pattern,
  // next pattern should be a suffix matcher combined the two patterns.