#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "Data Transfer Element (\d+):(Full|Empty)(?: \(Storage Element (\d+) Loaded\):VolumeTag = (\w+))?"
Local $sString = "Storage Changer /dev/sg2:2 Drives, 48 Slots ( 0 Import/Export )" & @CRLF & _
"Data Transfer Element 0:Full (Storage Element 2 Loaded):VolumeTag = ALF029L5 " & @CRLF & _
"Data Transfer Element 1:Empty" & @CRLF & _
" Storage Element 1:Full " & @CRLF & _
" Storage Element 2:Empty" & @CRLF & _
" Storage Element 3:Empty" & @CRLF & _
" Storage Element 4:Full " & @CRLF & _
" Storage Element 5:Full :VolumeTag=AEF812LV " & @CRLF & _
" Storage Element 6:Full :VolumeTag=ALF021L5 " & @CRLF & _
" Storage Element 7:Full :VolumeTag=ALF019L5 " & @CRLF & _
" Storage Element 8:Full " & @CRLF & _
" Storage Element 9:Full :VolumeTag=ALF035L5 " & @CRLF & _
" Storage Element 10:Full :VolumeTag=AEF839LV " & @CRLF & _
" Storage Element 11:Full :VolumeTag=ALF018L5 " & @CRLF & _
" Storage Element 12:Empty" & @CRLF & _
" Storage Element 13:Full :VolumeTag=AEF832LV " & @CRLF & _
" Storage Element 14:Full :VolumeTag=ALF002L5 " & @CRLF & _
" Storage Element 15:Full :VolumeTag=ALF020L5 " & @CRLF & _
" Storage Element 16:Full :VolumeTag=ALF016L5 " & @CRLF & _
" Storage Element 17:Full :VolumeTag=AEF831LV " & @CRLF & _
" Storage Element 18:Full " & @CRLF & _
" Storage Element 19:Full :VolumeTag=AEF814LV " & @CRLF & _
" Storage Element 20:Full :VolumeTag=ALF010L5 " & @CRLF & _
" Storage Element 21:Full :VolumeTag=ALF022L5 " & @CRLF & _
" Storage Element 22:Full :VolumeTag=ALF001L5 " & @CRLF & _
" Storage Element 23:Full :VolumeTag=AEF830LV " & @CRLF & _
" Storage Element 24:Full :VolumeTag=ALF008L5 " & @CRLF & _
" Storage Element 25:Full :VolumeTag=ALF038L5 " & @CRLF & _
" Storage Element 26:Full " & @CRLF & _
" Storage Element 27:Full :VolumeTag=ALF034L5 " & @CRLF & _
" Storage Element 28:Full :VolumeTag=ALF009L5 " & @CRLF & _
" Storage Element 29:Full :VolumeTag=AEF821LV " & @CRLF & _
" Storage Element 30:Full :VolumeTag=ALF013L5 " & @CRLF & _
" Storage Element 31:Full :VolumeTag=AEF822LV " & @CRLF & _
" Storage Element 32:Full :VolumeTag=ALF006L5 " & @CRLF & _
" Storage Element 33:Full :VolumeTag=ALF028L5 " & @CRLF & _
" Storage Element 34:Full :VolumeTag=AEF813LV " & @CRLF & _
" Storage Element 35:Full :VolumeTag=ALF007L5 " & @CRLF & _
" Storage Element 36:Full :VolumeTag=ALF012L5 " & @CRLF & _
" Storage Element 37:Full :VolumeTag=ALF005L5 " & @CRLF & _
" Storage Element 38:Full :VolumeTag=ALF027L5 " & @CRLF & _
" Storage Element 39:Full :VolumeTag=ALF025L5 " & @CRLF & _
" Storage Element 40:Full :VolumeTag=AEF823LV " & @CRLF & _
" Storage Element 41:Full :VolumeTag=ALF036L5 " & @CRLF & _
" Storage Element 42:Full :VolumeTag=ALF017L5 " & @CRLF & _
" Storage Element 43:Full :VolumeTag=AEF811LV " & @CRLF & _
" Storage Element 44:Full :VolumeTag=AEF810LV " & @CRLF & _
" Storage Element 45:Full :VolumeTag=ALF024L5 " & @CRLF & _
" Storage Element 46:Full :VolumeTag=ALF003L5 " & @CRLF & _
" Storage Element 47:Full :VolumeTag=ALF032L5 " & @CRLF & _
" Storage Element 48:Full :VolumeTag=ALF039L5 "
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