In .NET, for ASCII Digits, use [0-9], not \d
In .NET, \d matches digits in any script, including Thai and Klingon. Assuming you only want ASCII digits 0 through 9 rather than 654۳۲١८৮੪૯୫୬१७੩௮, use this:
Dim firstNumber As String
Dim secondNumber As String
Dim RegexObj As New Regex("([0-9]+) packs? of ([0-9]+)", RegexOptions.IgnoreCase)
firstNumber = RegexObj.Match(yourString).Groups(1).Value
secondNumber = RegexObj.Match(yourString).Groups(2).Value
Explanation
RegexOptions.IgnoreCase makes it case-insensitive
([0-9]+) captures one or more digits to Group 1
packs? matches pack with an optional s
([0-9]+) captures one or more digits to Group 2
- the code retrieves groups 1 and 2