Comum grep não entende \s ou parênteses. (*) Você quer grep -P se disponível ou grep -E / egrep e escreve \s como [ ^I] (onde ^I is Tab ; grep sem -P não entende \t também). Além disso, com aspas duplas, alguns shells processarão o \s e deixarão apenas s ; você deve sempre usar aspas simples com regexes do shell, exceto quando você realmente precisar interpolar uma variável (por exemplo, algo como '^\s*'"$foo"'\s+\(' , alternando entre aspas no parâmetro médio).
As alternativas em seu segundo exemplo (novamente, com -P e cotação única em vez de dupla) fazem a mesma coisa. O primeiro é tecnicamente melhor porque grep não vai recuar tanto, mas praticamente não importa.
(*) pedantismo: os parênteses invertidos irão funcionar, novamente exigindo uma única cotação para que o shell não coma as barras invertidas. egrep geralmente é mais fácil.