treat underscore and hyphen as part of word