Thank you.�� One of the reasons given for introducing BPatterns is a subtle difference between
single backticks and double backticks, which is mentioned but not explained in the BPatterns
blog entry.�� The help screen you directed me to does not explain that.

Is there any documentation which is *complete* and *proofread*?

On Tue, 3 Feb 2026 at 23:16, Denis Kudriashov <dionisiydk@gmail.com> wrote:
Yes. There is nice help presenter in the Pharo:

StRewriterHelpBrowserPresenter new open

Screenshot 2026-02-03 at 10.15.45.png


����, 3 ��������. 2026�����. �� 01:36, Richard O'Keefe <raoknz@gmail.com>:
Is the "classic" rewriting syntax documented anywhere?

On Mon, 2 Feb 2026 at 22:52, Denis Kudriashov via Pharo-users <pharo-users@lists.pharo.org> wrote:
Hi all.

This is the release of��BPatterns��project, one of my old ideas on how to make the rewrite engine usable for scripting.

As a quick reminder, here is an example of the classic rewrite-engine matching syntax:

``@receiver isNil ifTrue: ``@nilBlock

In practice, patterns like this usually live inside string literals���hidden away in lint rules, deprecations, or refactorings.
To use them for manual code search or rewriting, you typically need a dedicated tool.

Now compare that with the same pattern expressed as a BPattern:

[ any isNil ifTrue: anyBlock ] bpattern

No special syntax.
No magical tools.
Just pure Smalltalk.

You write a block.
You send #bpattern.
You���re done.

Every editor understands it.
Every tool respects it.

Want to see where this pattern appears?��

��[ any isNil ifTrue: anyBlock ] bpattern browseUsers

Screenshot 2026-01-31 at 12.16.19.png

Want to rewrite all of them?

[[ any isNil ifTrue: anyBlock ] -> [ any ifNil: anyBlock ]] brewrite preview

Screenshot 2026-01-31 at 12.17.57.png

Because BPatterns are real Smalltalk code, all development tools work out of the box:
syntax highlighting, completion, navigation, refactorings.

This is the rewrite engine treated as a first-class citizen.

Not strings.
Not tooling sidecars.
Not just for advanced users.

A rewrite engine you can actually use.
A rewrite engine at your fingertips.

More details are in the blog post:
And follow the project on GitHub: