+!!22. Finally: A Love Letter to Perl and Regular Expressions
+
+Look through the code of chabo-dsl and you will find all the usual suspects.
+
+There is:
+
+Perl
+1
+qr//
+その他の行を表示する
+
+There is:
+
+Perl
+1
+s///
+その他の行を表示する
+
+There is:
+
+Perl
+1
+split
+2
+ 
+その他の行を表示する
+
+There are:
+
+Perl
+1
+$1
+2
+$2
+その他の行を表示する
+
+And scattered throughout the code, you'll find flags like:
+
+Perl
+1
+/g
+2
+/e
+3
+/x
+その他の行を表示する
+
+Waiting patiently for an opportunity to cause trouble.
+
+And somewhere beyond all of that, eventually, there is an AST.
+
+None of this happened by accident.
+
+The whole thing feels like the result of three independent forces somehow deciding to cooperate.
+
+Perl arrives with its eternal desire:
+
+"I just need to manipulate this string a little."
+
+Regular expressions respond immediately:
+
+"Then let me handle it."
+
+And the AST, standing quietly in the corner, eventually says:
+
+"Fine.
+
+Once you're done turning strings into pieces, I'll turn the pieces into a tree."
+
+Somehow, against all reasonable expectations, the arrangement works.
+
+That is essentially the story of chabo-dsl.
+
+Not a grand architectural vision.
+
+Not a carefully orchestrated compiler project.
+
+Just a collection of ideas that happened to fit together remarkably well.
+
+Which is why, when people ask what kind of project chabo-dsl really is, I hesitate.
+
+Because it is certainly a DSL engine.
+
+But it is also something else.
+
+It is a record of a particular way of thinking.
+
+A very Perl way of thinking.
+
+A way of looking at a string and immediately wondering:
+
+"Could a regex do this?"
+
+Not because a regex should do this.
+
+Not because it is always the correct choice.
+
+But because curiosity asks the question before caution has a chance to intervene.
+
+Perl programmers know this feeling.
+
+Or at least many of them do.
+
+You begin with a harmless pattern.
+
+Then another.
+
+Then a substitution.
+
+Then a capture group.
+
+Before long, a surprising amount of language processing has emerged from what originally looked like a text manipulation problem.
+
+At some point, an AST appears.
+
+At another point, evaluation starts working.
+
+And eventually you're forced to admit that what you built is no longer merely a collection of regexes.
+
+It has become a language.
+
+A small one, perhaps.
+
+An unconventional one, certainly.
+
+But undeniably a language.
+
+And that realization is deeply satisfying.
+
+Because language implementation is often presented as something enormous.
+
+Something requiring layers of formalism and sophisticated tooling.
+
+Those things are valuable.
+
+They matter.
+
+But there is another path.
+
+A smaller path.
+
+A messier path.
+
+A path where you sweeten some Japanese expressions, recognize a few operators, protect a few strings, chase a few parentheses, and gradually assemble an AST.
+
+And somehow, at the end of that journey, computation happens.
+
+The AST evaluates.
+
+The program runs.
+
+The language lives.
+
+All from a surprisingly small collection of moving parts.
+
+That is what I find beautiful.
+
+Not that regular expressions can do everything.
+
+They cannot.
+
+Not that Perl is the perfect language.
+
+It is not.
+
+But that a handful of simple ideas, combined with enough persistence, can produce something far more substantial than their individual pieces suggest.
+
+Perhaps that is why I never quite agreed with the claim that regular expressions are merely a tool.
+
+In projects like this, they become characters.
+
+They participate.
+
+They interfere.
+
+They make suggestions.
+
+Occasionally, they lead you into bad decisions.
+
+Occasionally, they lead you somewhere wonderful.
+
+And once you start listening to them, it becomes surprisingly difficult to stop.
+
+That, I suspect, is the real danger.
+
+Not complexity.
+
+Not maintainability.
+
+Not performance.
+
+Curiosity.
+
+The moment you write:
+
+Perl
+1
+$text =~ s/.../.../
+その他の行を表示する
+
+and realize it worked.
+
+The moment a small transformation becomes a parser feature.
+
+The moment a parser feature becomes part of a language.
+
+Those are the moments that pull you forward.
+
+One step at a time.
+
+One regex at a time.
+
+Until eventually there is no turning back.
+
+And honestly?
+
+I think that's fine.
+
+Because it's Perl.
+
+Because they're regular expressions.
+
+And because, in the end,
+
+that's what chabo-dsl is.