Assuming that you only care about plain ASCII characters and not entity encoding:
variable=${b#*name=} # trim everything up to and including "name=" in b
variable=${variable%%"&"*} # trim everything following first "&" in variable
variable2=${b#*login=} # trim everything up to and including "login=" in b
variable2=${variable2$$"&"*} # trim everything following first "&" in variable2
Alternately, if you really want to use regular expressions, you can do so as follows:
re_name='name=([^$]+)([&]|$)'
[[ $b =~ $re_name ]] && variable=${BASH_REMATCH[1]}
re_login='login=([^$]+)([&]|$)'
[[ $b =~ $re_login ]] && variable2=${BASH_REMATCH[1]}
References:
Also, if you do want to do HTML entity decoding, see Bash script to convert from HTML entities to characters