Quais são as diferenças entre sintaxes de expressão regular para diferentes ferramentas? [fechadas]

Diferentes ferramentas implementam expressões regulares de maneira diferente. Por exemplo, para corresponder "foo" ou "bar":

printf "%s\n" foo bar baz food | grep -o '\<\(fo\+\|bar\)\>'
printf "%s\n" foo bar baz food | awk '/\<(fo+|bar)\>/'
printf "%s\n" foo bar baz food | sed -n '/\<\(fo\+\|bar\)\>/p'
printf "%s\n" foo bar baz food | sed -nr '/\<(fo+|bar)\>/p'

Onde essas diferenças estão documentadas?

questionAnswers(2)

yourAnswerToTheQuestion