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
[image: 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*
[image: Screenshot 2026-01-31 at 12.16.19.png]
Want to rewrite all of them?
*[[ any isNil ifTrue: anyBlock ] -> [ any ifNil: anyBlock ]] brewrite preview*
[image: 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:
- https://dionisiydk.blogspot.com/2026/02/bpatterns-rewrite-engine-with-smallt...
And follow the project on GitHub:
- https://github.com/dionisiydk/BPatterns
-