dividir caracteres especiales y alfabetos de una cadena

Estoy teniendo un valor de cadena. Yo contengo la combinación de alfabetos, caracteres especiales y números y espacios en blanco. Pero quiero recuperar solo números.

my code
-------
Dim str1 As String = "!@!@#!$@#$#123456habAB^*^&(*)(_)()*("
    Dim str2 As String = Regex.Replace(str1, "[\[\]\\\^\$\.\|\?\*\+\(\)\{\}%,;><!@#&\-\+/d]", "")

    MsgBox(str2)


output am getting
-----------------
123456habAB_

expected output
---------------
123456