The most important incompatibility between egrep regexps and perl regexps it the braces.
GNU egrep uses \{N,K\} for repetitions, while GNU grep -E and perl uses {N,K}. This might be different in other versions of grep.
Also, backslashes are ordinary characters inside a bracketed character set, but are special in perl, so you must escape backslashes inside brackets when converting from egrep to perl.
Update: also note that egrep is a DFA matcher (unless you use backreferences) so some regexps might have to be changed to work with perl (which is a NFA), especially some regexps that contain repetitions embedded in each other.
Update: from perl 5.10.0 you can replace the regex engine with any other, including a posix one. The modules re::engine::TRE and re::engine::POSIX does this. You may need to use the x flag to get the egrep syntax instead of the grep syntax.
In reply to Re: differnce between egrep and perl regex ?
by ambrus
in thread differnce between egrep and perl regex ?
by Random_Walk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |