Sugiro que você marque a Referência rápida da expressão regular do MSDN
você deseja obter uma correspondência insensível a maiúsculas e minúsculas para a palavra "rocket", 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 não sensível a maiúsculas e minúsculas de foguete ((i) foguete (? - i)), seguida 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 correspondência 1.
UPDATE 1:
Matt disse no comentário que este regex é para ser usado em python. O Python tem uma sintaxe ligeiramente diferente. Para obter o mesmo resultado em python, use essa regex e passe a opção re.IGNORECASE
para a função compile
ou match
.
\W*(rocket)\W*
Em Regex101 , isso pode ser simulado inserindo-se "i" na caixa de texto ao lado da entrada de expressão regular.
UPDATE 2 Ismael mencionou que o regex não está correto, já que pode corresponder a "1rocket1". Ele postou uma solução muito melhor, ou seja,
(?:^|\W)rocket(?:$|\W)