Computer algorithms : string pattern matching strategies