Encontre una respuesa a lo que me estaba pasando.
Ejemplo:
Código:
('Este gendarme trabajador. ').match(/([!"#$%&'()*+,-.\/:;<=>?@[\]^_`{|}]|^|\s)(Gendarme|trabajador)([!"#$%&'()*+,-.\/:;<=>?@[\]^_`{|}]|$|\s)/gi)
El problema es que el resultado que me devuelve es solamente gendarme.
Si separo gendarme de trabajador, al menos con 2 espacios, me funciona.
Veo que tiene algo que ver con los extremos de cada palabra y de la cercania que tienen, pero no logro encontrar una solucion dentro de la regular expression