Te pasaste un poco al agrupar tantas veces las condiciones ((((()))), eso es lo que falla, están mal agrupadas, de todas formas te lo he mejorado un poco:
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles Button1.Click
' Creamos una expresión regular con el patrón de direcciones válidas.
Dim SoundCloud_RegEx As New System.Text.RegularExpressions.Regex("(http://|https://)(www\.)?soundcloud.com/.+?")
' Patrón de búsqueda:
' http://soundcloud.com/Texto
' https://soundcloud.com/Texto
' http://www.soundcloud.com/Texto
' https://www.soundcloud.com/Texto
' Aquí almacenaremos la url del TextBox.
Dim URL As Uri
Try
' Seteamos la Url del TextBox.
URL = New Uri(TextBox1.Text.ToLower)
Catch 'ex As Exception
MessageBox.Show("El formato de la URL no es correcto, intente de nuevo.", _
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
' Comprobamos la longitud de la url del TextBox.
Select Case URL.ToString.Length
Case 0 ' La longitud es 0.
MessageBox.Show("El campo de la URL está vacío, porfavor introduzca una URL.", _
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
Case Else ' La longitud es diferente a 0.
' Comprobamos si el RegEx encuentra coincidencias con la URL del TextBox.
If Not SoundCloud_RegEx.IsMatch(URL.ToString) Then
MessageBox.Show("La URL introducida no corresponde a Soundcloud, intente de nuevo.", _
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End Select
End Sub
EDITO: Aparte, una cosa sin importancia, pero que en el futuro puede darte error y no darte cuenta de la razón... los square brackets sobran [] aquí:
MessageBoxIcon.[Error]
Su uso es muy especial.
EDITO 2: Si usases un RegEx quedaría más simplificado el código, pero bueno, tal como te lo dejé te sirve.EDITO 3: Dejo aquí posteada la versión antigua por si el regex de antes no funcionase con todas las urls:
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles Button1.Click
' Seteamos en un Array las urls que consideramos válidas.
Dim Valid_URLs() As String = "http://www.soundcloud.com/ https://www.soundcloud.com/ http://soundcloud.com/ https://soundcloud.com/".ToLower.Split(ChrW(32)).ToArray
' Aquí almacenaremos la url del TextBox.
Dim URL As Uri
Try
' Seteamos la Url del TextBox.
URL = New Uri(TextBox1.Text.ToLower)
Catch 'ex As Exception
MessageBox.Show("El formato de la URL no es correcto, intente de nuevo.", _
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
' Comprobamos la longitud de la url del TextBox.
Select Case URL.ToString.Length
Case 0 ' La longitud es 0.
MessageBox.Show("El campo de la URL está vacío, porfavor introduzca una URL.", _
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
Case Else ' La longitud es diferente a 0.
For Each Valid_URL As String In Valid_URLs
If URL.ToString.StartsWith(Valid_URL) Then
' Se encontró una URL válida, así que salimos del ciclo y de la subrutina.
Exit Sub
End If
Next
' Si hemos llegado hasta aquí significa que no se encontró ninguna URL válida.
MessageBox.Show("La URL introducida no corresponde a Soundcloud, intente de nuevo.", _
"Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Select
End Sub
Saludos