Вам нужно объединить gregexpr с подстрокой, я считаю:
> s = c('abc','1b2b3b4')
> m = gregexpr('.b.',s)
> substring(s[1],m[[1]],m[[1]]+attr(m[[1]],'match.length')-1)
[1] "abc"
> substring(s[2],m[[2]],m[[2]]+attr(m[[2]],'match.length')-1)
[1] "1b2" "3b4"
Возвращенный список «m» содержит начало и длину совпадений. Обведите s, чтобы получить все подстроки.