Givet: ett mönster P och en strän S. Mönsterlängden |P| betecknas m, stränglängden |S| med n.
Om S=which-finally-halt-at-that-point och P=at-that
which-finally-halt-at-that-point
a                                   
 a                                
  a                                
   a                            
    a                           
     a                          
      a                         
       a                        
        a                       
         at                     
          a                     
           a                    
            a                   
             a                  
              a                 
               at               
                a               
                 a              
                  a             
                   at-that      
28 jämförelser.
RF fungerar bra om m är litet (mindre än 4) eller n är ungefär m.
next[j] = 1+längden av matchande delsträng.Tecknet * visar aktuell mismatch, versaler den matchande delsträngen.
j abracadabra next[j] 1 0 (per def) 2 a* 1 3 ab* 1 4 abr* 1 5 abrA* 2 6 abrac* 1 7 abracA* 2 8 abracad* 1 9 abracadA* 2 10 abracadAB* 3 11 abracadABR* 4
abrada... abracabracadabra
abrac                        next[5]=2
    b                        next[2]=1
     ab                      next[2]=1
      a                      next[1]=0
       a                     next[1]=0
        a                    next[1]=0 
         a                   next[1]=0
          abracad            next[7]=2
                bracadabra   match!
KMP fungerar bäst i texter med alfabetets storlek ungefär lika med n.
P = AT-THAT
S = WHICH-FINALLY-HALT-AT-THAT-POINT(längd m=7 och n=32 respektive)
| A | H | T | - | Övr | |
|---|---|---|---|---|---|
| d1 | 1 | 2 | 0 | 4 | 7 | 
| A | T | - | T | H | A | T | |
|---|---|---|---|---|---|---|---|
| d1 | 11 | 10 | 9 | 8 | 7 | 4 | 1 | 
* markerar var mönsterpekaren är när en mismatch detekteras, versaler anger jämförda bokstäver. Varje rad motsvarar en flyttning via tabellerna.
WHICH-FINALLY-HALT-AT-THAT-POINT
      *
at-thaT      *                       F i d1 ger 7 steg
       at-thaT  *                    - i d1 ger 4 steg
           at-thAT*                  A i d2 ger 4 steg
              at-tHAT                H i d2 ger 7 steg
                   AT-THAT           match
 
                                     
Totalt 14 jämförelser. 
                                     
För varje tecken i d1 sätt tabellvärdet till:
d1[j]=m-läget i mönstret för den "högraste" förekomsten av tecknet.
1234567 AT-THATA, H, T och - förekommer sist i mönstret i lägena 6, 5, 7 resp. 3 vilket ger d1 värden 1, 2, 0 och 4.
Versala tecken har blivit jämförda, * anger mönsterpekaren och X ett tecken som mismatchar. Raden ovanför mönstret representerar en tänkt text man arbetar mot.
      *
   ...X...
at-thaT        j=7. Mismatch vid T: flytta 1 steg, ger:
       *        
 at-that
     *
  ...XT..
at-thAT        j=6. Match för T: flytta 4 steg, ger:
         *        
   at-that
    *
 ...XAT.
at-tHAT        j=5. Match för AT: flytta 7 steg, ger:
           *        
     at-that
   *
...XHAT
at-THAT        j=4. Match för HAT: flytta 8 steg, ger:
           *        
     at-that
  *
..XTHAT
at-THAT        j=3. Match för THAT: flytta 9 steg, ger:
           *        
     at-that
 *
.X-THAT
at-THAT        j=2. Match för -THAT: flytta 10 steg, ger:
           *        
     at-that
*
XT-THAT
at-THAT        j=1. Match för T-THAT: flytta 11 steg, ger:
           *        
     at-that
Se också http://www.ctc.dcu.ie/ctcweb/courses/algorithms/course/string.html för en genomgång av flera strängmatchningsalgoritmer.