I also recommend use of
agrep. The only caveat is the restrictions on free use for commercial applications. I don't believe there is anything more efficient or better suited. The link that
tachyon and I point to has links to other libraries and applications.