Specifically, are there any tasks that one can perform, but the other can't?
Por um lado, bc
suporta números grandes, enquanto expr
termina em 2 ^ 63-1:
$ expr 9223372036854775807 + 1
-9223372036854775807
$ echo "9223372036854775807 + 1" | bc
9223372036854775808
bc
também tem operações de exponenciação e raiz quadrada, que expr
não possui totalmente:
$ echo "2^1024" | bc
17976931348623159077293051907890247336179769789423065727343008115773\
26758055009631327084773224075360211201138798713933576587897688144166\
22492847430639474124377767893424865485276302219601246094119453082952\
08500576883815068234246288147391311054082723716335051068458629823994\
7245938479716304835356329624224137216
$ echo "scale=100; sqrt(2)" | bc
1.414213562373095048801688724209698078569671875376948073176679737990\
7324784621070388503875343276415727