Combinatorial Pattern Matching