# Ruby regular-expression engine Regex Tools executes Ruby expressions in the actual CRuby 4.0.0 engine built for `wasm32-wasi` by ruby.wasm. The reviewed runtime is the minimal `ruby.wasm` from `@ruby/4.0-wasm-wasi@2.9.3-2.9.4`; the JavaScript host API is `@ruby/wasm-wasi@2.9.3-2.9.4`. The fixed `bridge.rb` module is evaluated once during worker start. Pattern, flags, subject, limits and replacement travel through a bounded, length-prefixed file in the worker-local WASI memory filesystem. Bounded inert JSON returns metadata only; replacement output is written as UTF-8 to a separate bounded worker-local file. No user-controlled value is evaluated or interpolated as Ruby or JavaScript source, and the bridge does not use the ruby.wasm `JS.eval` conversion path. CRuby performs compilation and matching and reports character offsets, which the adapter exposes as Unicode code-point native offsets and normalizes to browser UTF-16 ranges. Native `String#gsub`/`String#sub` block iteration drives replacement matching without materializing expanded output. A fixed streaming implementation of CRuby 4.0.0's `rb_reg_regsub` grammar handles `\1` through `\9`, `\k`, `\0`, `\&`, ``\` ``, `\'`, `\+`, and `\\`; a load-time bounded fixture verifies parity with CRuby. The expander stops on a valid UTF-8 boundary at the configured byte limit. Unpaired browser UTF-16 surrogates are rejected before request encoding. A workbench timeout, cancellation, supersession or crash terminates the dedicated worker and its complete WebAssembly heap. The deterministic pack contains only: - `ruby.wasm`; - `engine-metadata.json`; - `SHA256SUMS`; - ruby.wasm's exact `LICENSE.txt`; - ruby.wasm's complete `NOTICE.txt`, including CRuby and bundled third-party notices; and - the exact browser WASI shim and `tslib` license texts required by the JavaScript host bundle.