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
