To my understanding, * matches zero or more and + matches one or more. So when I did this on macOS:
echo "1" | sed 's/[0-9]*//g'
The number was deleted.
But if I do this:
echo "1" | sed 's/[0-9]+//g'
The number will still be there.
But shouldn't [0-9]+ matches "1" as well?