Funnily, this is actually the reason I shied away. I read something very similar in my earlier days of coding. And with that, and the fact that regex can be pretty scary at first, I kissed the damn thing goodbye and went off on my way to reinvent the wheel.
Imagine looping through a string of 500+ characters just to assert that it does or does not contain one or more characters. Or writing 20 if/then blocks just to validate one string. Just one string of characters. Or even doing something like:
if (startsWith("J") && endsWith("m") &&
contains("i") && !contains("y") &&
!contains("o") && !contains("h") &&
(length == 3 || length == 9)... )
// Note: startsWith(), endsWith() and contains() may not come easy
// in real code
When you can knock the thing out with a few-character-regex-pattern.
I agree. There is no point using regex for things can easily be achieved using built-in string functions. And yes, there are performance concerns with regexs, but regex, as I've come to realize, is most certainly not as bad as it is sometimes projected to be.