Como você usa o limite da palavra Java com apóstrofos?

Estou tentando excluir todas as ocorrências de uma palavra em uma lista, mas estou tendo problemas quando há apóstrofos nas palavras.

String phrase="bob has a bike and bob's bike is red";
String word="bob";
phrase=phrase.replaceAll("\\b"+word+"\\b","");
System.out.println(phrase);

resultado:
has a bike and 's bike is red

O que eu quero é
has a bike and bob's bike is red

Eu tenho um entendimento limitado de regex, então acho que existe uma solução, mas agora não o suficiente para criar o regex para manipular apóstrofos. Também gostaria que funcionasse com traços, então a frasethe new mail is e-mail substituiria apenas a primeira ocorrência de email.

questionAnswers(2)

yourAnswerToTheQuestion