Единственное хорошее регулярное выражение - регулярное выражение lex / yacc. Потратьте некоторое время на изучение lex / flex и yacc / bison или аналогичного инструментария синтаксического анализатора. Я убежден, что это тот путь, если вы хотите поработать с регулярными выражениями!
Если вы настаиваете на использовании «нормальных» уродливых регулярных выражений, вы можете сделать хуже, чем Perl, чтобы протестировать их:
perl -pe 's/fo+o/bar/'
perl -ne 'print $1 if /(hell*o|world)/i/'
</etc/passwd perl -ne 'print if /bash|tcsh/'
Вы также можете попробовать GNU grep с цветом и расширенные регулярные выражения:
</etc/passwd grep --color -E 'bash|tcsh'