\w*$ will only match letters, numbers, and underscore. This is what you want:
Regex.IsMatch("jpere33z@1"@1?hs"hsjpere33z", @"^(?=\w*\d=.*?\d)(?=\w*[a=.*?[a-z])(?=\w*\W=.*?\W).*$"), RegexOptions.IgnoreCase)
I moved the validation to the left, and added \w* right before the \W.
Edit: Also used .* instead of \w for test lookaheads.