#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox
Local $sRegex = "(?mi)(?:(owner/repo)?#(\d+)\b|https?://github\.com/([^/]+/[^/]+/(?:issues|pull))/(\d+)(#issue(comment)(-)\d+)?)"
Local $sString = "#123" & @CRLF & _
"https://github.com/owner/repo/issues/123" & @CRLF & _
"https://github.com/shoptet/sofa/pull/456" & @CRLF & _
"owner/repo#123" & @CRLF & _
"https://github.com/owner/repo/issues/123#issuecomment-123456789" & @CRLF & _
""
Local $sSubst = "[\1#\2\4\7\6](https://github.com/owner/repo/issues/\2\4\5)"
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