Shared expr As New _ System.Text.RegularExpressions.Regex("^-?d+(.d{2})?$", _ System.Text.RegularExpressions.RegexOptions.None) Public Function ExpandPrice(ByVal Price As Double, Optional ByVal pSeparator As String = ".") As String Dim pPrice As String pPrice = FORMAT(Price, "##############.00") Dim temp As New System.Text.StringBuilder() If Not expr.IsMatch(pPrice) Then ' temp.Append(pPrice) or whatever you want to do here temp.Append("we got here") ElseWhat I am getting back from this function is the text "we got here" when I pass 208.26 (or any other number for that matter) in. I don't know VB very well, nor the Regular Expressions stuff so would appreciate if anyone could point out why the passed in number is failing the IsMatch check.