Za sada, evo one druge varijante, sa splitovanjem...
Kôd:
$matches = mb_split ('[[:space:][:punct:][:cntrl:][:blank:]]+', $string);
... verujem da bi ovo trebalo da isfiltrira većinu tekstova (možda sam malo i preterao, a možda sam nešto i ispustio (?)) - ostaje samo da se otresem reči kraćih od 3 karaktera i gotova stvar.