T[i] jest liczbą kroków wstecz, które musimy wykonać, gdy nie istnieje dopasowanie). Dla wygody ustawiamy więc T = -1 – jeśli W nie zostanie dopasowane, nie możemy się cofnąć i musimy po prostu sprawdzić następny znak. Należy też zauważyć, że skoro po niepowodzeniu na pozycji m + i kolejne możliwe dopasowanie rozpocznie się od indeksu m + i – T[i], kontynuujemy więc szukanie od W[T[i]].
Poniżej znajduje się opis części szukającej algorytmu KMP zapisany w pseudokodzie.
algorytm kmp_search: wejście: tablica znaków, S (przeszukiwany tekst) tablica znaków, W (szukane słowo) wyjście: liczba całkowita (liczona od zera pozycja w S, na której znaleziono W) zdefiniowane zmienne: liczba całkowita, m = 0 (początek bieżącego dopasowania w S) liczba całkowita, i = 0 (pozycja bieżącego znaku w W) tabela liczb całkowitych, T (tabela liczona gdzie indziej) dopóki m + i jest mniejsze niż długość S, rób: jeżeli W[i] = S[m + i] niech i = i + 1 jeżeli i równe jest długości W, zwróć m przeciwnie niech m = m + i – T[i] jeśli i > 0, niech i = T[i] (jeśli dotrzemy tu, to przeszukaliśmy bezskutecznie cały S) zwróć długość S