separate out Repeat{Match{Next,From},Continuation}