String matching is one of the topic I personally found hard in computer science, not only it had to be fast, but it has to be precise to a certain level determined.