En realidad la comparacion seria ESTA porque yo concatenaba antes y no en cada resolucion (o iteracion de tu bucle)
<?php
$texto = 'Lorem ipsum at dolor...';
$cadena = 'ipsum';
$start = microtime(true);
for ($a = 0; ++$a <= 10000;)
stripos($texto, $cadena) !== false;
echo 'Usando strpos: ' , microtime(true) - $start;
echo "\n";
$buscado= "/".$buscado."/i"; // concatenaba antes!
$start = microtime(true);
for ($a = 0; ++$a <= 10000;)
preg_match($buscado, $texto);
echo 'Usando preg_match: ', microtime(true) - $start;
?>