Encontrar los índices de subcadenas coincidentes múltiples / superpuestas

Tengo una cadena, s="CCCGTGCC" y una subcadena ss="CC" . Quiero obtener todos los índices en s que inician la cadena ss . En mi ejemplo, me gustaría recuperar la matriz c(1,2,6) .

¿Hay alguna función de cadena que logre esto? Observe que mi cadena está en la forma "CCCGTGCC" , y no c("C","C","C","G","T","G","C","C") .

grep solo devuelve si hay una coincidencia en cualquier lugar de la cadena, y no los índices de las coincidencias dentro de la cadena, a menos que me falta algo.

Pruebe gregexpr con perl=TRUE y use expresiones regulares de Perl con aserciones de gregexpr (vea ?regex ):

 gregexpr("(?=CC)","CCCGTGCC",perl=TRUE) [[1]] [1] 1 2 7 attr(,"match.length") [1] 0 0 0