Creo que es más fácil definir una sola forma genérica, en lugar de varias en un array:
Código PHP:
if(preg_match('/SELECT (\w+,?)+ FROM ((tablaPermitida1|tablaPermitida2|tablaPermitida3)(\s\w+)?)+( WHERE (\w([=])*))?;/', $sql))
{
// Aquí ejecutas la sentencia
}
La cadena para la expresión regular la acabo de hacer y no garantizo que funcione (de hecho, tengo pocas esperanzas de que lo haga); de todos modos, quería darte una idea de cómo lo haría yo. ¡Suerte!