Regular expressions are implemented in many languages as NFAs to support
backtracking (see http://msdn.microsoft.com/en-us/library/e347654k(v=vs.110).aspx).
Because of backtracking, you can construct regular expressions which have
terrible performance on some strings (see http://www.regular-expressions.info/catastrophic.html)
As far as analysing regular expressions to determine their performance,
I doubt there is a very good way in general. You can look for warning
flags, like compounded backtracking in the second link's example, but even
that may be hard to detect properly in some cases.