KMP pattern searching allows efficient searching of a pattern within text by taking advantage of prefix matches. It works by pre-processing the pattern to construct a prefix table indicating the length of matching prefix for all prefixes of the pattern. During searching, when a mismatch occurs, it uses the prefix table to "skip" already compared prefix matches, avoiding repeating comparisons and allowing it to run in linear time O(n+m).