Watch out!
substr('12345',1) = '12345' and ascii() is platform dependant.

I'd vote for:
SUBSTR (v_str, 1, 1) BETWEEN '0' AND '9'