Dann werfe ich mal den in die Runde: .*/(.*?)(?:_\d{3})?.[^.]*
Absolut perfekt! Damit kann sogar _\d\d\d innerhalb des Namens auftauchen.
.*/ sollte gierig alles bis zum letzten '/' matchen
(.*?) den Dateinamen; ? – nicht gierig; () – merken
(?:_\d{3})? matcht '_' und 3 Ziffern; (?: – nicht merken, ? an Ende – kann einman vorkommen, muss aber nicht
.[^.]* letzter '.' und danachfolgende Zeichen
Und vielen Dank für die super Erklärung!
Ralf