1. A computer-implemented method comprising: receiving one or more search strings at a computer system; processing the one or more search strings with a tail-first search at a finite state machine of the computer system; and forming a plurality of states based on the characters in the one or more search strings with at least one state accepting a match at a matching string machine of the computer system.