Replace substring matching with a shared fuzzy scorer that matches characters in order (non-contiguous) with bonuses for consecutive and word-boundary hits. Results are ranked by match quality.