in fact its not wrong, cause the ?: will look for that match, but its just necessary the ?!
you can interpret the (?:(?![[:punct:]])) as
"the next match needs to be something, that its not punctuation" I'll say it again...> I'd like to know where you learned regex lol