Oh right. Well there is a few ways to accomplish this, all dependant on how much you know about the string (i.e if it is static then it would be very easy but dynamic is harder)
So lets try with static (that is, the string is always "I called the number 33cotto1224567 but is busy").
Look for the start and end of the part you want to extract:
start = string.IndexOf("number ")
end = string.IndexOf(" but")
Now cut the string down to only include those characters:
string = string.SubString2(start+7,end) //+7 because "number " is 7 characters
This leaves us with string = "33cotto1224567" so now we just search for "eight" or "cotto" and change if needs be:
If string.IndexOf("eight") > -1 Then
string = string.replace("eight","8")
Else If string.IndexOf("cotto") > -1 Then
string = string.replace("cotto","8")
End If
And string now = "3381224567".
All the code:
Dim string As String
Dim start As Integer
Dim end As Integer
string = "I called the number 33cotto1224567 but is busy"
start = string.IndexOf("number ")
end = string.IndexOf(" but")
string = string.SubString2(start+7,end)
If string.IndexOf("eight") > -1 Then
string = string.replace("eight","8")
Else If string.IndexOf("cotto") > -1 Then
string = string.replace("cotto","8")
End If
Log("Number: " & string)