In the middle you have (.+)(.+[-]) and you throw away whatever is matched in the second set of brackets, which includes at least (and maybe more) one character before the - since that's what .+ means.
thanks for quick answer...
Any Idea how to detect and parse the "-" or "--" in the Filename?
When I use (..)(_|-)(-*)([-])(.+).mp3 it will not work if "--" is detected...
I'm only guessing about what you want to do but I guess something like this:
Old name: (..)(_|-)(.[^-])-+([^-]..mp3)
New name: \1_\3_-_\4
Of course, this may not do what you want if the artist name contains a '-' e.g. "Gil Scott-Heron." If your MP3 files are tagged then there are much better ways to do this by using the tags instead of trying to guess the meanings based on ambiguous filenames. (Some example renames using tags are in the Rename Scripting forum, I think in the Various Simple Rename presets topic, though I may not remember correctly.)
That is exactly what I was looking for.
Quite often MP3 Filenames are really bad formatted, this helps me a lot to re-format the Filenames more automatic.