Regex for Passwords: Enforce Complexity Rules Without Overcomplicating