# Syntax provider profile Regex Tools has one public profile: ```text community ``` It uses reviewed open-source dependencies and builds without private registry credentials. No licensed parser is installed, referenced or required. JavaScript/ECMAScript uses regexpp 4.12.2 for ECMAScript 2025 syntax. That is the only current complete grammar-backed normalized syntax tree. All other profiles use application-owned, deliberately partial lexical providers: | Profile | Authoritative compiler | Lexical-provider boundary | | ----------------------- | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | PCRE2 | Standalone PCRE2 10.47 | Common captures and PCRE2 constructs; no complete structural grammar or branch-reset numbering | | PHP | PHP 8.5.8 `preg` / PCRE2 10.44 | Common PCRE2/PHP capture forms and numbered replacement references; no delimiter or complete `preg` template model | | Perl | Perl 5.28.1 via legacy WebPerl 0.09-beta | Common captures and fixed bridge references only; embedded code and complete Perl interpolation are unavailable | | Python | CPython 3.14.2 `re` | Common Python captures and replacement references | | Ruby | CRuby 4.0.0 `Regexp` | Common Onigmo capture forms and `String#gsub` references | | Java | TeaVM 0.15.0 `java.util.regex` | Common Java captures and TeaVM replacement subset; not OpenJDK | | C++ | Emscripten 6.0.4 libc++ `std::wregex` | Capture discovery only for the default modified ECMAScript grammar; alternate grammars remain compiler-authoritative | | Go | Go 1.26.5 standard-library `regexp` | Common RE2 capture forms and `regexp.Expand` references | | Rust | Rust `regex` crate 1.13.1 | Common capture forms and `Captures::expand` references | | .NET | .NET 10.0.10 `System.Text.RegularExpressions` | Common captures/substitutions; no balancing-group or capture-history structure | | Scala/JVM compatibility | Same TeaVM 0.15.0 Java engine | Java-compatible syntax only; no Scala runtime, wrapper or extractor model | The Java and Scala providers follow the bundled TeaVM 0.15.0 replacement subset: single-digit `$n` is executable, `$12` is `$1` followed by literal `2`, and `${name}` is surfaced as a compatibility limitation. The Scala provider deliberately shares that implementation and says so. Every partial provider exposes its gaps through coverage metadata. Actual acceptance, capture numbering and replacement output always come from the selected runtime. ECMAScript analysis, case generation and formatting are not applied to these partial trees. The product deliberately does not implement or reference an `@r101/parser` profile. No commercial package alias, import, tarball, credential, licence key or private CI path exists. Further syntax coverage can grow behind the same application-owned interface without changing the runtime identity.