Si infatti volevo dire anche io che per quel che serve all'utente sicuramente andrà più che bene anche la sua senza troncature e non si noterà differenza.

Per quanto riguarda invece i casi molto complessi, cercando di immaginare, mi viene da pensare che:

str_replace, substr ed str(i)pos hanno tutte complessità lineare (se non ricordo male... ci sta anche che ricordi male io).

preg_replace ha una complessità ben maggiore e sicuramente non lineare e quindi anche tempi di esecuzione ne risentono.

Ora ammettiamo ci siano un set di 1.000.000 di verifiche da effettuare (giusto per parlare di molti anche se sono relativamente molti):

utilizzando il soggetto indicato dall'utente per ogni controllo ci metto più o meno 21 secondi a farle (poi varia anche dalle potenzialità del calcolatore - io ho provato su un catorcio di server).

se provo a modificare inserendo la modifica che ho scritto, ottengo la verifica del blocco di 1M in 13 secondi.

Una bella differenza no? E se proviamo ad aumentare ancora??
Vero è che il software per fare milioni di controlli deve essere qualcosa di grosso.
Però è giusto per dire... se ci si abitua da subito a tenere certi accorgimenti...