Sometimes it's not always a good idea to throw regex at a problem if there are other tools that do the job just fine.

Wims pointed out that \b isn't actually what me and you and a dog named boo think is a word boundary. In regex, there are 63 things that can be ina word - alphanumeric or underscore, and this may not be getting them what they want.

//noop $regex(and it's we-we-western theme here at the costume party! , /(^.*?\bwe\b)/i) | echo -a $regml(1)

result: and it's we

So if OP isn't happy with what $gettok's idea of a word "things between spaces", they need to give some examples of what false-positive or false-negative they're encountering.