Regular expressions are a well-known pattern matching language. It is widely supported in many programming languages such as Java, Python and Perl.

The first time i heard about regular expressions was a few years ago (during the 90's) when i learned Perl. Perl has specific operators for regular expression usage. On the other hand, the other programming languages support regular expressions with the usage of Application Libraries.

Perl's regular expressions operator may seem more "cool" when using them, but in the long run they make your life difficult. For example, if we want to check an expression dynamically (loaded from a file or other), then we should write something like:
eval { $pattern = qr/$data[0]/o; };
if(!$@) {
	print "error";
}
Perl provides no other way to handle the validity of regular expressions, except eval (according to Perl's Cookbook also).

Yikes! ... Naturally it is not an operator problem, but one of the Perl's design flaws. Perl was a scripting language that set as good example in the 90's, but with many design problems, as it is revealed now.

Most modern design languages have more elegant ways to catch these errors, like Java for example:
try {
	Pattern p = Pattern.compile("[0-9]*");
} catch ( PatternSyntaxException pse ) {
	System.err.println("error");
}
A more elegant solution, error control supported by a solid exception handling mechanism. Don't get me wrong, i liked Perl very much, but it seems to me real deprecated by now. I hope these issues will be fixed in the future :).