String parsing with awk/sed/?

If I have a string that has some name followed by an ID#(ex.B123456) followed by some more #'s and/or letters, would it be possible to just grab the ID portion of this string? If so how? I am pretty new with these text tools so any help is appreciated.
Example:
"Name_One-B123456A-12348A"

echo "Name_One-B123456A-12348A" | sed 's/.*-\(.*\)-.*/\1/'
echo "Name_One-B123456A-12348A" | awk -F- '{print $2}'

Thanks for the help that works like a champ.