Multiple pattern search with callbacks for non-overlapping matches and all possible matches