docs: static Matcher getSuffix(Matcher matcher) {
      if (matcher instanceof SeqMatcher) {
        List<Matcher> ms = matcher.<SeqMatcher>as().matchers();
        return SeqMatcher.create(ms.subList(1, ms.size()));
      } else if (matcher instanceof ZeroOrMoreMatcher) {
        ZeroOrMoreMatcher zm = matcher.as();
        return zm.next();
      } else if (matcher instanceof CharSeqMatcher) {
        String pattern = matcher.<CharSeqMatcher>as().pattern();
        return pattern.length() <= 1 ? TrueMatcher.INSTANCE : new CharSeqMatcher(pattern.substring(1));
      } else {
        return TrueMatcher.INSTANCE;
      }
    }