It looks like the code you are looking for the is the similar to
function:
where left(field,4) similar to '[0-9]{4}'
Redshift doc
We have tried the following and worked for most of our scenarios:
columnn ~ '^[-]{0,1}[0-9]{1,}[.]{0,1}[0-9]{0,}$'
This will positive, negative, integer and float numbers.