#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)^ *[^\s]+( +[^\s]+)*$"
Local $sString = "# UFIS : User-Friendly and Instant Installer System" & @CRLF & _
"" & @CRLF & _
"# Each comment starts with '#' and ends with a new line." & @CRLF & _
"# Each statement is written in one line." & @CRLF & _
"# Commands' and built-in variables' names are always uppercase." & @CRLF & _
"# A custom variable name must have at least one lowercase character and must begin with a letter or the underscore (_)." & @CRLF & _
"" & @CRLF & _
"LET APP_NAME = "MyApp"" & @CRLF & _
"LET APP_VERSION = "1.0.0"" & @CRLF & _
"" & @CRLF & _
"LET a = MATERIAL "folderx/"" & @CRLF & _
"a -= "test.exe"" & @CRLF & _
"a -= "main.exe"" & @CRLF & _
"a += MATERIAL "folderz/"" & @CRLF & _
"a += MATERIAL "README.md"" & @CRLF & _
"" & @CRLF & _
"LET b = MATERIAL "folderx/test.exe"" & @CRLF & _
"" & @CRLF & _
"LET c = MATERIAL "folderx/main.exe"" & @CRLF & _
"" & @CRLF & _
"IF INSTALLING" & @CRLF & _
" LET iAcceptLicense = INPUT CHECKBOX "Accept [license](https://myapp.com/license)" MANDATORY" & @CRLF & _
" IF iAcceptLicense == FALSE" & @CRLF & _
" QUIT" & @CRLF & _
" ENDIF" & @CRLF & _
"" & @CRLF & _
" LET iLanguage = INPUT CHOICES "Vietnamese" OR "English" DEFAULT "English" MANDATORY" & @CRLF & _
"" & @CRLF & _
" LET INSTALL_DIR = INPUT DIRECTORY "Installation directory" POSTFIX "/${APP_NAME}" DEFAULT PROGRAM_FILES" & @CRLF & _
" LET iInstallTest = INPUT CHECKBOX "Install test.exe" DEFAULT FALSE" & @CRLF & _
" LET iCreateDesktopShortcut = INPUT CHECKBOX "Create desktop shortcut" DEFAULT TRUE" & @CRLF & _
" LET iLaunchAtStartup = INPUT CHECKBOX "Launch program at startup" DEFAULT TRUE" & @CRLF & _
"" & @CRLF & _
" INSTALL a AND c TO INSTALL_DIR # the same as "${INSTALL_DIR}"" & @CRLF & _
"" & @CRLF & _
" IF iInstallTest == TRUE" & @CRLF & _
" INSTALL b TO INSTALL_DIR AS "test_program.exe"" & @CRLF & _
" ENDIF" & @CRLF & _
"" & @CRLF & _
" IF iCreateDesktopShortcut == TRUE" & @CRLF & _
" CREATE SHORTCUT FOR c IN DESKTOP_ALL_USERS" & @CRLF & _
" ENDIF" & @CRLF & _
"" & @CRLF & _
" IF iLaunchAtStartup == TRUE" & @CRLF & _
" RUN c AT STARTUP" & @CRLF & _
" ENDIF" & @CRLF & _
" " & @CRLF & _
" WORK registry_work" & @CRLF & _
" CREATE REGSZ "HKEY_LOCAL_MACHINE/Software/${APP_NAME}" VALUE "1"" & @CRLF & _
" ENDWORK" & @CRLF & _
" " & @CRLF & _
" CPP" & @CRLF & _
" #include <iostream>" & @CRLF & _
" " & @CRLF & _
" void entry() {" & @CRLF & _
" std::cout << "Not very intelligent";" & @CRLF & _
" }" & @CRLF & _
" ENDCPP" & @CRLF & _
" " & @CRLF & _
" CALL entry" & @CRLF & _
"" & @CRLF & _
"ELIF RUNNING" & @CRLF & _
" RUN c" & @CRLF & _
"" & @CRLF & _
"ELSE # UNINSTALLING" & @CRLF & _
" UNDO ALL EXCEPT registry_work" & @CRLF & _
"" & @CRLF & _
"ENDIF" & @CRLF & _
""
Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYGLOBALFULLMATCH)
Local $aFullArray[0]
For $i = 0 To UBound($aArray) -1
_ArrayConcatenate($aFullArray, $aArray[$i])
Next
$aArray = $aFullArray
; Present the entire match result
_ArrayDisplay($aArray, "Result")
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