No puede usar las declaraciones preparadas de esa manera. Cuando declara un marcador de posición, evita hacer cosas relacionadas en ellos, dejando esto al marcador de posición valor definición. Entonces, por ejemplo, puede usarlo así:
$STH = $DBH->prepare("SELECT songs ,image ,artist,album,r_year
FROM english_fm
WHERE artist REGEXP :artist
GROUP BY artist order by slno");
$STH->bindValue(":artist" , "^[$artist]", PDO::PARAM_STR);