Detecting many different DateTime patterns

Hi,
As the years progress i've been asked/requested by friends/family & other fools to help them cleanup their chaotic Photo galleries. Think a typical combination of Media in Photos Library, Google Photo's synced, Dropbox, Flickr, iPhone, Android syncs, Digitized Photo's (yep. those with dateTaken before 1/1/1970) and Whatsapp stuff..
In the meantime i've become pretty good/fast in cleanup the rubble by using a combination of self-written shell scripts, Gemini 2, A Better Finder Renamer, Finder and recently i've added Hazel to the mix.
Although Hazel is not the 'fastest' way to bulk progress 10 to 100,000's of precious home photo's & video's, it allows me to reduce the number of manual steps drastically and allows me to have a more "robust" workflow.
My flow
Once i have a DateTimeOriginal stored in the image/video metadata, the following re-organisation is applied.

My problem
For media that does NOT have DateTime data stored in metadata, i'm forced to switch to manual mode and use custom shell scripts and tools mentioned above to handle all different cases in which i'm still able to detect a DateTime pattern on sight. eg.
[*]it's in the filename YYYY-MM-DD_hh:mm:ss-some very funnyname.jpg
[*]or YYYYMMDD_hh.mm-someothername.JPEG
[*]or YYMMDD_NoTimeFound.JPEG
[*]or It's in the parent folder name "May 20th 2017, Birthday of some child"
[*]or even better "20th anniversary of some marriage"
[*]...
BTW I also Store the original filename into the METADATA just to be sure I can always revert in case the automation messed up.
My question
What would be the best approach to setup Rules & Actions & maybe some shell script magic to automate the detection of DateTime and save it into the DateTimeOriginal of metadata.
Basically, i could create new rules for any different kind of DateTime situation I match, and execute almost similar exiftool script to handle that situation, but I'm hoping there are more generic ways to handle the situation.
As the years progress i've been asked/requested by friends/family & other fools to help them cleanup their chaotic Photo galleries. Think a typical combination of Media in Photos Library, Google Photo's synced, Dropbox, Flickr, iPhone, Android syncs, Digitized Photo's (yep. those with dateTaken before 1/1/1970) and Whatsapp stuff..
In the meantime i've become pretty good/fast in cleanup the rubble by using a combination of self-written shell scripts, Gemini 2, A Better Finder Renamer, Finder and recently i've added Hazel to the mix.
Although Hazel is not the 'fastest' way to bulk progress 10 to 100,000's of precious home photo's & video's, it allows me to reduce the number of manual steps drastically and allows me to have a more "robust" workflow.
My flow
Once i have a DateTimeOriginal stored in the image/video metadata, the following re-organisation is applied.

My problem
For media that does NOT have DateTime data stored in metadata, i'm forced to switch to manual mode and use custom shell scripts and tools mentioned above to handle all different cases in which i'm still able to detect a DateTime pattern on sight. eg.
[*]it's in the filename YYYY-MM-DD_hh:mm:ss-some very funnyname.jpg
[*]or YYYYMMDD_hh.mm-someothername.JPEG
[*]or YYMMDD_NoTimeFound.JPEG
[*]or It's in the parent folder name "May 20th 2017, Birthday of some child"
[*]or even better "20th anniversary of some marriage"
[*]...
BTW I also Store the original filename into the METADATA just to be sure I can always revert in case the automation messed up.
My question
What would be the best approach to setup Rules & Actions & maybe some shell script magic to automate the detection of DateTime and save it into the DateTimeOriginal of metadata.
Basically, i could create new rules for any different kind of DateTime situation I match, and execute almost similar exiftool script to handle that situation, but I'm hoping there are more generic ways to handle the situation.