Renaming photos with shooting time plus name

I'm surprised there doesn't seem to have been a sophisticated photo renaming script developed by someone. I'm trying to rename photo files with the date taken first, which is easy enough normally.
old name: .*
new name: {shootingtime|A#yyyy_MM_dd_MHH_mm_ss}

The problem is dealing with files that already have some naming, which I want to keep. So shooting time first, then if (and only if) there is existing naming (ie letters) a dash and whatever name was there before. My plan was to capture all letters and replace them
old name: ([a-zA-Z]+)
new name: {shootingtime|A#yyyy_MM_dd_MHH_mm_ss}-\1
But this doesn't work on files with no letters. I guess the question is how to capture all letters and replace them after the dash, but only using the dash if letters are found. Like this
old names:
123 - 01.jpg
123abc - 03.jpg
test 123.jpg
xyz123 - 04.jpg

new names:
2024_06_20_21_12_15.jpg
2024_06_20_21_12_27-abc.jpg
2024_06_20_21_12_31-xyz.jpg
2024_06_20_21_12_39-test.jpg
Where of course the shooting time was June 20. I don't care at all about the hour, minutes and seconds but seems like that is needed for minimal name clashing. Speaking of which, some of cameras dont have exif data down to seconds or ms so we have to use the "Automatically number files when names clash" option. Which works but doesn't seem ready for prime time. It adds (1) and further numbers starting with the SECOND file, if you are going to number files with the same name they should all be numbered. And don't want the parentheses either. Any way to do this? Would be nice if there was some type of dialog where we had the option to manually rename these.

You'd need a script for conditional inserts and the described numbering scheme.