A Date regular expression

I wrote this regular expression to recognize “any” date formats out there. It complies with regex++ format. As you can see, the expression is complex.
std::string expression_text =
 "(Labor Day|Christmas|Thanksgiving( Day)?|Memorial Day|New Year('s)? Day|Columbus Day|Martin Luther King(, Jr.)? Day|Independence Day)"
 // Day Month Date Year
 "|("
 "("
 "(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)"
 ",?[[:blank:]]*" // separator
 ")?"
 "("
 "(January|February|March|April|May|June|July|August|September|October|November|December)"
 "[[:blank:]]*" // separator
 "[0-3]?[0-9](st|nd|rd|th)?" // Date
 ")"
 "("
 ",?[[:blank:]]*" // separator
 "(\d\d\d?\d?)" // Year
 ")?" 
 ")"

 // Day Date Month Year
 "|("
 "("
 "(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)"
 ",?[[:blank:]]*" // separator
 ")?"
 "("
  "[0-3]?[0-9](st|nd|rd|th)?" // Date
  "[[:blank:]]+" // separator
 "(January|February|March|April|May|June|July|August|September|October|November|December)"
 ")"
 "("
 ",?[[:blank:]]*" // separator
 "(\d\d\d?\d?)" // Year
 ")?" 
 ")"
 // Day Date(cardinal number) Month Year
 "|("
 "("
  "(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)"
  ",?[[:blank:]]*" // separator
 ")?"
 "("
  "(the[[:blank:]]*)?"
  "("
    "(first|second|third|fourth|fifth|sixth|seventh|eighth|nineth|tenth)"
    "|([0-3]?[0-9](st|nd|rd|th)?)"
  ")"
  "[[:blank:]]*of[[:blank:]]*"
  "(January|February|March|April|May|June|July|August|September|October|November|December)"
 ")"
 "("
 ",?[[:blank:]]*" // separator
 "(\d\d\d?\d?)" // Year
 ")?" 
 ")"
 // Day Date-Month-Year
 "|("
 "("
 "(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)"
 ",?[[:blank:]]*" // separator
 ")?"
 "("
 "\d\d?" // Date
 "(-|\\|/)" // separator
 "(January|February|March|April|May|June|July|August|September|October|November|December|\d\d?)"
 ")"
 "("
 "(-|\\|/)" // separator
 "(\d\d\d?\d?)" // Year
 ")?" 
 ")"
 "|(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)"
 ;
Advertisements
A Date regular expression