Perspectives on Regex

I've read a few articles online, which the authors were not fans of regular expressions. I get the feeling they are "programmers" in the most literal since. People who are writing large scale applications in languages like C, C++, or Java.

Basically, their beef was that char by char comparisons are more reliable, often times more effective, and more scalable. In addition, one article was very pointed about regex not being "a real language."

Now, I think it's all a matter of perspective, because their basing their opinions off their position, I'm coming from a sysadmin who slice and dices text often - using regex much of the time. In addition, I think the author may have had a misconception about regex. It's not a language, but firstly a concept, which is then implemented in languages as a utility.

However, I'm curious to understand why someone who regularly works with computers via programming wouldn't see the benefits of regex. In fact, I've found regex to be very useful. From my experience, once you've written a well constructed regex, they are very powerful, useful, reliable, and can be written to be very flexible, without losing precision.

Please keep in mind - I'm not deploying my regex into gigantic code bases. Therefore, I'm chalking it up to their perspective. It has sparked my interest, and therefore, I'm looking for other members thoughts on the usefulness/limits of regex.

Not knowing what articles you are referring to, my answer might be vague. I'm considering my self to be a developer that contributes to the large scale applications. Although it is always a matter of perspective what is a large scale - not even in how large is "large" but also large in what dimension: lines of code, teams sizes, complexity, release cycle, no. of transactions per second, data volume, etc.

I consider Regex as a very good solution for a problem its solves. And as with all good solutions it is not a silver bullet. Knowing what to use, and when to use, is the most important part.

Depending on the problem you are solving Regex might be either too simple or to complicated solution. Each solution has at least its cost in for example applying it and then maintaining it. For example If you are a person daily working with regex you have no problems with understanding it. Most "programmers" (in general/on average) meet Regex less often, as "large scale" applications have many more issues to solve.

Regex expressions are very "compressed" expressions within the Java ecosystem already full of other expression languages like MEVL, SPEL (Spring) , or from Java EE. Too be honest Regex being the one of the longest one within the Java ecosystem, is also one most alien expression language within that ecosystem.
Basically sometimes using simpler approach might have more benefits that using Regex - for not complicated cases it makes code more readable (some times reading the code on the fly is more important that actually using sophisticated solution).

Regex also is not something that you can expect the general end users to know (in cases where you expose some text related functionality to them - for example textual configuration fields).