One way would be to use RegexSearch(String, Regex, Flags) but that would require that you convert the array row content to a string first.
If you did something like... RegexSearch(YourArrayAs.String, "dog", "gi")
on this row ("cat", "dog", "cat", "dog"), converted into a string that looks like this "catdogcatdog" would return the index 4.
You then know that there are only 1 "cat" before you found a "dog", because the word "cat" is build from 3 letters, and there are 3 letters before you found the stop.
This would be complicated if you dont know all the words in the array. But if you know the lenght of the words you are looking for then it would be doable.
"catcatcatdog" would return the index 10, so 10 would equal 3