in reply to Match whitespace or start-of-string with lookbehind

It's not precisely the same thing as you're asking for... but would word-boundary (\b) be sufficient?

If not, you can just re-nest the look-behind and the alternation into:

$text =~ s/(^|(?<=\s))"(?=\w)/“/gs;
That works. They key is that the ^ doesn't have to be look-behind, since it's zero-width, anyway.
------------ :Wq Not an editor command: Wq