Unit SS, Part B: String Matching, Summary
Use Boyer-Moore-Horspool usually
Use Naive Alg. if |pat| < 3
Use KMP if alphabet is large
Use Shift-Or for complex regular expressions