Tres preguntas:
1) ¿Si cambias el orden del filtrado al que te pongo debajo ,qué ocurre?
Código MySQL:
Ver originalSELECT producto.marca
,producto.nombre
,producto.codigo
,producto.imagen
FROM producto
WHERE producto.tipologia
<> 'Adultos' AND CONCAT( producto.nombre
, producto.marca
) REGEXP '$txt_criterio'
2) Imagino que has indexado producto y marca. Si no lo has hecho, hazlo también y prueba. ¿Por qué necesitas el CONCAT? Explícanos la casuística de lo que buscas
3) Las expresiones regulares utilizan muchos recursos. Dinos qué puede ser $txt_criterio