Deixe-me citar a documentação primeiro:
A partir da documentação, podemos ver a razão por trás do seu problema e não é causado por nenhum escape. O problema é que você está tentando combinar o limite da palavra
[[:<:]]
logo no início da string que não funcionará porque um limite de palavra como você pode ver na documentação separa um caractere de palavra de um caractere que não é de palavra, mas no seu caso o primeiro caractere é um "
que não é um caractere de palavra, portanto não há limite de palavra, o mesmo vale para o último "
e [[:>:]]
. Para que isso funcione, você precisa alterar um pouco sua expressão para esta:
"[[:<:]]word[[:>:]]"
^^^^^^^ ^^^^^^^
Observe como o limite da palavra separa um caractere não-palavra
"
de um caractere de palavra w
no início e um "
de d
no final da corda. EDITAR: Se você sempre quiser usar um limite de palavra no início e no final da string sem saber se haverá um limite real, poderá usar a seguinte expressão:
([[:<:]]|^)"word"([[:>:]]|$)
Isso corresponderá a um limite de palavra no início ou ao início da string
^
e o mesmo para o final do limite da palavra ou final da string. Eu realmente aconselho você a estudar os dados que você está tentando combinar e procurar padrões comuns e não usar expressões regulares se elas não forem a ferramenta certa para o trabalho. Demonstração do SQL Fiddle