Actually, Python does use a Boyer-Moore-Horspool variant internally for substring matching (I'm not sure about Ruby, though). See:
http://effbot.org/zone/stringlib.htm
Here's a link to the file in the Python SVN repo:
http://svn.python.org/view/python/trunk/Objects/stringlib/fa...