The simplest solution would be to have a Workflow/Launcher that is triggered whenever a new asset is created that validates the asset's filename.
If there is a violation, the WF is assigned to someone to review/mitigate.
I'm not aware of any hooks or good ways to do this in Asset Link experience itself. Its possible you could create a Sling Filter that could intercept and write filenames, but I'm not sure if this would break in Asset Link since it expects the filename to be something else.