Consumes and ignores any trailing occurrences of pattern.
pattern
Parser<T> trail(Pattern pattern) => then(match(pattern).opt()).first().cast<T>();