Aho-Corasick法ってfgrepで使われてるやつですよね。
前に調べたときPDFの論文を見つけたんですが、英語だったため挫折しました。
日本語でどこか解説してるページはご存知無いでしょうか?