String Searching Algorithms (Part I)