#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox
Local $sRegex = "(?m)(?<=\s)((?:docstring|some_detailed_notes)\s*=\s*\(?\s*(?://.*\n\s*)*)"((?:[^"\\]|\\.)+)"(\s*\)?\s*;)"
Local $sString = "class myClassA(myBaseClass) {" & @CRLF & _
"" & @CRLF & _
" docstring = // End-of-line-comments possible" & @CRLF & _
""" & @CRLF & _
"This is my class description docstring stored in a string variable inherited from" & @CRLF & _
"myBaseClass." & @CRLF & _
"The content of this string, INCLUDING INDENTATION, MUST NOT be changed." & @CRLF & _
"";" & @CRLF & _
"" & @CRLF & _
"docstring = (" & @CRLF & _
""" & @CRLF & _
"Enclosed in parentheses" & @CRLF & _
""" & @CRLF & _
");" & @CRLF & _
"" & @CRLF & _
" // This variable is declared as string has a mismatched indentation:" & @CRLF & _
"string some_detailed_notes = "Some string like this is also possible." & @CRLF & _
" Also with" & @CRLF & _
" some really" & @CRLF & _
" strange indentation" & @CRLF & _
" and `inline code`, ```code blocks``` $\\text{LaTeX}$ $$\\frac{1}{2}$$" & @CRLF & _
":::{hint}" & @CRLF & _
"some admonitions" & @CRLF & _
":::" & @CRLF & _
"and all kind of special characters such as:" & @CRLF & _
"\"" & @CRLF & _
"(...)" & @CRLF & _
"{...}" & @CRLF & _
"[...]" & @CRLF & _
";.," & @CRLF & _
"etc." & @CRLF & _
"" & @CRLF & _
"which MUST be preserved.";" & @CRLF & _
"" & @CRLF & _
" string some_other_string = "" & @CRLF & _
" do NOT touch this, only docstring and some_detailed_notes" & @CRLF & _
" ";" & @CRLF & _
"}"
Local $sSubst = "\1R""""\2""""\3"
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