I have written a code to get the GSM data on serial port. So when GSM module get's a call it sends the data

RING+CLIP: "+919823596784",145,"",,"",0".

However this data keeps on shifting towards right or left. I want to extract the phone number from this data. I thought of detecting first two word i.e RING+CLIP, using Instr function. However even it is present in incoming string, it's giving value 0' it means string is not present in given string. So i can not extract phone number. Moreover data keeps on shifting, so position of those two words is also not fix. Here is the code,

Dim str As String
Dim val As Integer
Dim str_1 As String

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()
   On Error GoTo errx:
   Dim strValue As String ' define Buffer value from Modem
   MSComm1.CommPort = 6   'comm port no.
   MSComm1.Settings = "9600,n,8,1"
   MSComm1.RThreshold = 47    'no. of chr to receive
   MSComm1.InputLen = 0  '  no. of chr on which oncomm  event fires
   MSComm1.PortOpen = True  'open comm port
   MSComm1.Output = "AT + CLIP = 1" + Chr(13)
   Sleep 500
   Exit Sub
 MsgBox "error"
End Sub

Private Sub MSComm1_OnComm()
'str = " RING+CLIP"
Select Case MSComm1.CommEvent

Case comEvReceive
''Case comEvRing
str_1 = Text1.Text
Text2.Text = InStr(str_1, "RING+CLIP")
''Text3.Text = Mid(str, 22, 10)
Case Else

End Select

End Sub
How to stop shifting of data, and extract desired number from this.