On improving the worst case running time of the Boyer-Moore string matching algorithm

It is shown how to modify the Boyer-Moore string matching algorithm so that its worst case running time is linear even when multiple occurrences of the pattern are present in the text.