No, it's doing exactly as it states. @ matches \W and the start of the string also "matches" \W, so there is no \b between them. Same goes for the string starting with +. In the third example, t matches \w so the \b matches the space between the start of the string (\W) and the t (\w)