You have to copy the ListBox items into an array and then match it against regular expressions.
Here's a simple matching mechanism I quickly wrote up. You can easily add more complexity by toying with the regular expression (I'm not all that familiar with regular expressions myself, but can do simple things with them as shown below).
Code:
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
'Regular expression to match against.
Dim exp As String = "^(" + TextBox1.Text.ToLower + ")+"
Dim r As New System.Text.RegularExpressions.Regex(exp)
Dim s As String 'String for looping.
Dim list(ListBox1.Items.Count - 1) As String 'Array for our list.
ListBox1.Items.CopyTo(list, 0) 'Copy list into array.
'Loop through each list item to look for a match.
For Each s In list
If r.IsMatch(s.ToLower) Then
ListBox1.SelectedItem = s 'Select the matching item.
Exit For 'Found match, exit.
End If
Next
End Sub
Nice demo.. and I don't mean to be a stickler but it's not good to promote old legacy VB6 coding in a VB.NET forum. Microsoft even suggests staying away from the VisualBasic namespaces as they are not guaranteed support in the future. They are only there to help the transition for old VB6 coders.