Factorized *MatchFrom and *MatchNext

* = {concat,repeat}

these methods were alsmost identical.