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...