No use una variable para almacenar comandos de shell, use una matriz. Ver BashFAQ -50 Estoy tratando de poner un comando en una variable, pero los casos complejos siempre fallan.
Simplemente usa una matriz como se muestra a continuación
num='[0-9]'
argArray=('-e' "s/${num}/as df/g")
y doble -comillas la expansión de la matriz para no permitir que las palabras se dividan por Word -división y llamada como
echo 123 | sed -r "${argArray[@]}"