#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mx)^(?i)\s*("?)(?>(?<colname>\w+))\1" & @CRLF & _
" \s+" & @CRLF & _
" (?:(?<type>\b\w+\b)\s*(?:\((?<typepars>(?:\w|\s|\,|\*)+)\))?)" & @CRLF & _
" \s*" & @CRLF & _
" (\bdefault\s+(?<defaultval>(\(?)(null|\w+|\'\s\')+?\)?))?" & @CRLF & _
" \s*" & @CRLF & _
" (?:(?:\bconstraint\s+(")(?<constraint_name>\w+)\9\s+)?(?<nullable>not\s+null\b)\s+enable)?" & @CRLF & _
" (,?)(\s*)(?-i)$"
Local $sString = ""a1" NUMBER(10,0) CONSTRAINT "ca1" NOT NULL ENABLE, " & @CRLF & _
" "a2" NUMBER(10,0) CONSTRAINT "ca2" NOT NULL ENABLE, " & @CRLF & _
" "a3" NUMBER(14,0) DEFAULT 0 CONSTRAINT "ca3" NOT NULL ENABLE, " & @CRLF & _
" "a4" VARCHAR2(60 CHAR), " & @CRLF & _
" "a5" NUMBER(10,0), " & @CRLF & _
" "a6" NUMBER(10,0) DEFAULT 0 CONSTRAINT "ca6" NOT NULL ENABLE, " & @CRLF & _
" "a7" NUMBER(5,0) DEFAULT 0 CONSTRAINT "ca7" NOT NULL ENABLE, " & @CRLF & _
" "a8" NUMBER(5,0) DEFAULT 0 CONSTRAINT "ca8" NOT NULL ENABLE, " & @CRLF & _
" "abc" TIMESTAMP (6) DEFAULT SYSDATE NOT NULL ENABLE, " & @CRLF & _
" "def" CHAR(3 CHAR) NOT NULL ENABLE, " & @CRLF & _
" "ghi" CHAR(3 CHAR) NOT NULL ENABLE, " & @CRLF & _
" "XML" CLOB NOT NULL ENABLE, " & @CRLF & _
" "jkl" CHAR(6 CHAR), " & @CRLF & _
" "mno" NUMBER(*,0), " & @CRLF & _
" "pqr" NUMBER(*,0) DEFAULT (0) NOT NULL ENABLE, "
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