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