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