A ver... quizás si vamos al revés se entenderá mejor la sentencia ejecutada en MySQL original es:
SELECT A.colegiado, B.especialidad
FROM medicos A, ubicacion B
WHERE A.colegiado REGEXP "^[mM]" AND B.zona = "Lleida"
ORDER BY A.colegiado DESC;
Y funciona correctamente sin problemas. El error está al "traducirlo-adaptarlo" al php por eso Cluster lo pregunté en este foro y no en el de Bases de Datos.
Le he puesto un espacio después de ubicación B (o sea antes del where) y me queda así:
SELECT "A.colegiado, B.especialidad FROM medicos A, ubicacion B"
. "WHERE A.colegiado REGEXP '^[mM]' AND B.zona = 'Lleida'"
."ORDER BY A.colegiado DESC";
Cuando ejecuto el archivo php me sale el mismo error ¿

?
You have an error in your SQL syntax near 'A.nombre REGEXP '^[aA]' AND B.zona = 'Lleida'ORDER BY A.nombre DESC' at line 1