sayregexp changed results since V2.62

Since V2.62 on I get different results with sayregexp in the way the output is 2 times the expected result separated by a blank.
sayregexp "(www)([^>"]*)" ";" "" used on
href=""> gives result
Going back to V2.60 returns expected output:

I can not find any information about mods for sayregexp in the change history since V2.50. Maybe my coding is is the root cause, however any help or information about correct usage of this very helpful function is highly appreciated. At the moment I have no glue how to fix that.

Anyway MP3TAG is a great piece of SW and may thanks to all who make it available!

I got the same exact problem.

I tried to modified the Pone Discogs plugins in order to add the Featuring artists in the artists field (Artist = Artist & FeaturingArtist).

Featuring artists are written in the Discogs data:
"extraanv&role track": "Graham Candy (Featuring)"

As I want to add " & " between the track artist name and the featuring artist(s), I first modify the preceding with:
"extraanv&role track": " & Graham Candy (Featuring)"

This can be done with this command:
RegexpReplace "(?<="extraanv&role track": ")((?:[^"])+?)(?=(Featuring)")" " & $1"

Then I need to store " & Graham Candy (Featuring)" in my output buffer.
So I need to capture it using a regular expression:
sayregexp "(?<="extraanv&role track": ")(\s+[^"]+?)(?=\s+(Featuring)")" " & " "<>"

But even if this is a correct regular expression (tested on engine), it does match twice instead of a single match.
So the output is:
Output : >& Graham Candy & & Graham Candy<
instead of
" & Graham Candy"

So I introduced a non-capturing group :
sayregexp "(?<="extraanv&role track": ")(?:\s+[^"]+?)(?=\s+(Featuring)")" " & " "<>"
This time the output is:
"& Graham Candy"

I didn't find a way to include the preceding white space, though it does work on other Regular Expression engines.

I wonder which is the internal regular expression engine used by Mp3Tag. <_<

At least someone who confirms the problem ...
I even get a similar behavior using regExp with quick actions.

doing (.*) -> string$1 results in stringOLDSTRINGstring

imho this seems to be an issue of the RegEx engine. Btw I confirmed this result on an second PC. This was tested with V2.60 on with machines.

Can Any of the gurus with the background information give this a try please. That's an fast and easy one - at least to confirm.

Thank You!

Maybe it can help to understand this ...

$regexp('test','.*','x') ==> 'xx' $regexp('test','.+','x') ==> 'x'


There is no need for grouping the stuff that you want as output. So try
sayregexp "www[^>"]*" ";" ""

Other "problem" (it works as it should) is explained here:
Regular Expressions