Por uma questão de argumento, REGEXP_SUBSTR também funciona:
SQL> select regexp_substr('TIPTOP4152', 'TOP(\d+)', 1, 1, NULL, 1) nbr
from dual;
NBR
----
4152
SQL>
SQL> select regexp_substr('TIPTOP4152', 'TOP(\d+)', 1, 1, NULL, 1) nbr
from dual;
NBR
----
4152
SQL>