In word boundary, word means \w
meta character (in most regular expression engine): [A-Za-z0-9_]
; %
, "
is not in that characters: match word boundary.
I think you don't need to use word boundary:
// javascript example
> 'abc def ghi jkl mno %%car% __car_ tall-person "thing" 20% %30%'.match(/[a-z0-9-_%"]+/g)
["abc", "def", "ghi", "jkl", "mno", "%%car%", "__car_", "tall-person", ""thing"", "20%", "%30%"]