Нет необходимости в регулярном выражении:
select * from mytable where substr(ref_id, 8, 3) in ('0XX','1XX','2XX','3XX','4XX','5XX','6XX','7XX','8XX','9XX')
или
select * from mytable where substr(ref_id, 8, 3) in ('1XX','2XX','3XX','4XX','5XX','6XX','7XX','8XX','9XX')
Я не знаю, является ли '0XX' действительным соответствием или нет.
Регулярные выражения имеют тенденцию быть медленными.