Given the test data ...
SQL> select name
2 from t23
3 /
NAME
----------
SAM-I-AM
MR KNOX
X11
CAT
LORAX
SQL>
... the following query uses REGEXP_LIKE () to return records whose first four characters contain only letters or hyphens:
SQL> select name
2 from t23
3 where regexp_like(name, '^[[:alpha:]\-]{4}')
4 /
NAME
----------
SAM-I-AM
LORAX
SQL>
We can also use REGEXP_INSTR () with the same basic pattern (I reset the host carriage):
SQL> select name
2 from t23
3 where regexp_instr(name, '[[:alpha:]\-]{4}', 1) = 1
4 /
NAME
----------
SAM-I-AM
LORAX
SQL>
Oracle SQL 10g. .