#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox
Local $sRegex = "(?i)\[url(?|]((https?://[^[]+))|(?:=['"]?(https?://[^]]+?)['"]?)](.+?))\[/url]"
Local $sString = "[URL]www.no.http.example.com[/URL]" & @CRLF & _
"[url]https://any.com/any[/url]" & @CRLF & _
"[url="nourl"]nourl[/url]" & @CRLF & _
"[URL="https://any.com/any?any=333"]text text[/URL]" & @CRLF & _
"[url="http://www.emptyTEXT.com"][/url]" & @CRLF & _
"[url]http://www.any.com/any?any=44#sss[/url]" & @CRLF & _
"[url='http://www.singlequoting.com']Single Quoting[/url]" & @CRLF & _
"[url=http://www.noquoting.com]No Quoting[/url]"
Local $sSubst = "<a href=\"$1\">$2</a>"
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