Sugiro que você marque a Referência Rápida de Expressão Regular do MSDN
você deseja obter uma correspondência sem distinção entre maiúsculas e minúsculas para a palavra "foguete" cercada por caracteres não alfanuméricos. Um regex que funcionaria seria:
\W*((?i)rocket(?-i))\W*
O que ele fará é procurar zero ou mais (*) caracteres não alfanuméricos (\ W), seguidos por uma versão sem distinção entre maiúsculas e minúsculas do foguete ((? I) foguete (? - i)), seguido novamente por zero ou mais ( *) caracteres não alfanuméricos (\ W). Os parênteses extras ao redor do termo de correspondência de foguete atribuem a correspondência a um grupo separado. A palavra foguete estará, portanto, no grupo de partida 1.
ATUALIZAÇÃO 1:
Matt disse no comentário que esse regex deve ser usado em python. Python tem uma sintaxe um pouco diferente. Para obter o mesmo resultado em python, use este regex e passe a re.IGNORECASE
opção para a função compile
ou match
.
\W*(rocket)\W*
No Regex101, isso pode ser simulado digitando "i" na caixa de texto ao lado da entrada do regex.
ATUALIZAÇÃO 2 Ismael mencionou que o regex não está correto, pois pode corresponder a "1rocket1". Ele postou uma solução muito melhor, a saber
(?:^|\W)rocket(?:$|\W)