Yo creo que ambas opciones, serían mas eficientes que los arreglos, aunque también depende mucho de la máquina donde corras la aplicación, si tiene mucha capacidad de procesamiento y sobre todo los recursos libres suficientes, pos ni nos deberíamos preocupar.
Con respecto a las expresiones regulares ahí si quien sabe, me declaro totalmente neófito, alguna vez traté de hacer algo con ellas, pero como que van mas allá de mi comprensión
Y si, a mi me parece mucho mas eficiente manejarlo con funciones de cadenas, pa' mi que ocupas menor cantidad de memoria, y bueno, el problema de las iteraciones creo que sería el mismo para cualquier caso...
Salu2,