added boyer-moore horspool algorithm