#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox
Local $sRegex = "(?mi)((?s)(\[)(\d)(\])([ ])(?=.*:LOOKUP\3=(\w+))|(\[(\d+)\])[ ])((?<artist1>Frank Sinatra)?(\s-\s)(?<title1>.*)(?<ext1>\..*)|(?<title2>.*)(\s-\s)(?<artist2>Frank Sinatra)(?<ext2>\..*)|(?<title3>.*)(?<ext3>\..*))|(?<dict>RegExDictionary:.*)$"
Local $sString = "[8] Frank Sinatra - One For My Friend.flac" & @CRLF & _
"[51] Come Fly With Me - Frank Sinatra.dsf" & @CRLF & _
"[2] Frank Sinatra - Love Me Tender.flac" & @CRLF & _
"[17] New York, New York.mp3" & @CRLF & _
"[45] Singing In The Rain - Frank Sinatra.flac" & @CRLF & _
"RegExDictionary:LOOKUP0=00:LOOKUP1=01:LOOKUP2=02:LOOKUP3=03:LOOKUP4=04:LOOKUP5=05:LOOKUP6=06:LOOKUP7=07:LOOKUP8=08:LOOKUP9=09"
Local $sSubst = "$6$8${title1}${title2}${title3}${ext1}${ext2}${ext3}"
Local $sResult = StringRegExpReplace($sString, $sRegex, $sSubst)
MsgBox($MB_SYSTEMMODAL, "Result", $sResult)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm