String Matching: KMP, Rabin-Karp, and Palindromes · Anvil