This is a very specific issue, at least as far as I've looked into it. It could be bug that occurs across the entire program when dealing with using Regex to match strings, but I've only a attempted a function similar to the example below in the Guess Values Action.
The program will not match a single parenthesis using the wildcard "." match function that matches any character if its preceded by a single string parenthesis, or "(".
Here's what I'm talking about.
TITLE: Song ft. xyz (edit)
TITLE: Song (edit)
ARTIST: abc ft. xyz
There's a little more to it but that's the basics.
if I write my Guess Value as:%artist% $regexp(%title%,(.*) (ft\..*) (\(.*),$2 +++ $1 $3) %artist% +++ %title%
The action will not do anything. There is no change whatsoever to the text of any of the fields of the file.
However, if I add the closing parenthesis to the third matching group,%artist% $regexp(%title%,(.*) (ft\..*) (\(.*\)),$2 +++ $1 $3)
It some reason decides to work. While yes, it makes sense that I'm giving the function more info on what to look for, the wildcard with repeat should pick up the parenthesis anyways because its a character and the wildcard is searching for any character!
I've also attempted to instruct the function to match anything up until end of line, so:(\(.*$)
Still no effect.
This tells me there's something internally in the program that confuses the fact that code cannot execute if parenthesis aren't closed, with an unclosed parenthesis in a string. I report this because it leaves many users libraries at risk because if they attempt any similar function, it will only match up until a closed parenthesis and anthing following will be wrongly moved or even more likely lost forever.
This is a simple bug that prevents many options in customizable metadata editing/formatting.
I've consulted with a friend who is fluent in several programming languages and is a web developer and he agrees with me on my diagnosis. I hope this post is not overlooked as a "small issue".