Are you sure you're understanding the requirements? What you say "they" want is straightforward character matching (with case-sensitivity):
"MM/dd/yyyy" -cmatch "(MM/dd/yyyy)|(MM-dd-yyyy)|(MMddyyyy)"
"MM-dd-yyyy" -cmatch "(MM/dd/yyyy)|(MM-dd-yyyy)|(MMddyyyy)"
"MMddyyyy" -cmatch "(MM/dd/yyyy)|(MM-dd-yyyy)|(MMddyyyy)"
But you don't even need to use regular expressions to accomplish that! Simple string comparisons work, too:
"MM/dd/yyyy" -ceq "MM/dd/yyyy"
Is this some sort of homework assignment?
If you're really being asked to verify dates to adhere to certain formats with some basic content verification, you can use this:
# regex matches MM-dd-yyyy or MM/dd/yyyy
"
^ # beginning of string
(1[0-2]|[1-9]) # month 10,11, or 12 -- or 01-09
(/|-) # separator "/" or "-"
(3[01]|[12][0-9]|0?[1-9]) # day
\2 # the 1st separator (a backreference)
([0-9]{4}) # year (4 digits)
$ # end of string
"
"12/30/2023" -match "^(1[0-2]|0?[1-9])(/|-)(3[01]|[12][0-9]|0?[1-9])\2([0-9]{4})$" # TRUE
"12-30-2023" -match "^(1[0-2]|0?[1-9])(/|-)(3[01]|[12][0-9]|0?[1-9])\2([0-9]{4})$" # TRUE
"12302023" -match "^(1[0-2]|0?[1-9])(3[01]|[12][0-9]|0?[1-9])([0-9]{4})$" # TRUE (NOTE: Uses a different regex without accounting for separators, so there's no backreference either
"13/30/2023" -match "^(1[0-2]|0?[1-9])(/|-)(3[01]|[12][0-9]|0?[1-9])\2([0-9]{4})$" # FALSE (month is incorrect)