set -x
declare -A vars=( )
re='^(|[^=]* )([[:alpha:]_-][[:alnum:]_-]+)=([^[:space:]]+)( (.*))?$'
string="/something an-arg=some-value another-arg=another-value third-arg=three"
while [[ $string =~ $re ]]; do : "${BASH_REMATCH[@]}"
string=${BASH_REMATCH[5]}
declare -n _newVar="var_${BASH_REMATCH[2]//-/_}" || continue
_newVar=${BASH_REMATCH[3]}
unset -n _newVar
declare -p "var_${BASH_REMATCH[2]//-/_}"
done
c2V0IC14CgpkZWNsYXJlIC1BIHZhcnM9KCApCgpyZT0nXih8W149XSogKShbWzphbHBoYTpdXy1dW1s6YWxudW06XV8tXSspPShbXls6c3BhY2U6XV0rKSggKC4qKSk/JCcKc3RyaW5nPSIvc29tZXRoaW5nIGFuLWFyZz1zb21lLXZhbHVlIGFub3RoZXItYXJnPWFub3RoZXItdmFsdWUgdGhpcmQtYXJnPXRocmVlIgp3aGlsZSBbWyAkc3RyaW5nID1+ICRyZSBdXTsgZG8gOiAiJHtCQVNIX1JFTUFUQ0hbQF19IgogIHN0cmluZz0ke0JBU0hfUkVNQVRDSFs1XX0KICBkZWNsYXJlIC1uIF9uZXdWYXI9InZhcl8ke0JBU0hfUkVNQVRDSFsyXS8vLS9ffSIgfHwgY29udGludWUKICBfbmV3VmFyPSR7QkFTSF9SRU1BVENIWzNdfQogIHVuc2V0IC1uIF9uZXdWYXIKICBkZWNsYXJlIC1wICJ2YXJfJHtCQVNIX1JFTUFUQ0hbMl0vLy0vX30iCmRvbmUK