You can try this regex:
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$
PS: It meets all conditions and I didn't include characters mentioned in section e.
since you wrote May contain
and dot will allow all of those.
UPDATE: As per edited question: Use this regex to meet conditions (a) - (f)
^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?:(?!.*?(.)\1).){8,}$
I would highly recomment not using regex for meeting condition (g)
since it will be an awfully long regex.