Você recebe uma mensagem de erro porque não escapou de ! , que tem um significado especial no shell. Para usar isso como parte do parâmetro padrão de grep , você deve citá-lo ou fugir dele.
Em vez de citar cada caractere especial um por um, é muito mais fácil colocar o padrão inteiro entre aspas simples ou duplas (dependendo do seu propósito), por exemplo:
grep -a -P '"stored": "*123*(?!00)[0-9]{2,5}#"'
Observe também que substitui -E por -P , porque lookahead negativo (?!...) não funciona em implementações típicas de grep extended regex. O -P sinalizador ativa expressões regulares Perl, que devem suportar isso.