Os espaços reservados só podem ser usados onde um valor pode aparecer, não incorporado em strings. Experimentar:
$query = "SELECT * FROM `mytable` WHERE `file` REGEXP CONCAT('[', :val, '-9]')";
$query = "SELECT * FROM `mytable` WHERE `file` REGEXP CONCAT('[', :val, '-9]')";