現時点では php-mbstring の問題だと思っています
これはPHPに後から追加するPHPの拡張モジュールです、このモジュールが oniguruma の
ライブラリのファイルを参照します

oniguruma は各正規表現パーツごとに有効、無効を切り替えられる仕様になって
いるのですが、oniguruma を呼び出す php-mbstring 側で (?W) や (*FAIL) が
有効にされていない可能性が高いと考えています

以下のページは oniguruma の各パーツごとのオプション名を説明するページです
s://github.com/kkos/oniguruma/blob/master/doc/SYNTAX.md

このページを "Set in:" でページ内検索すると各パーツがどのプログラム言語用の
正規表現ルールに適用されるかが分かります

(?W) は 30番目の ONIG_SYN_OP2_OPTION_ONIGURUMA というオプションを
有効にすると使えるのですが、これが適用されるルールは 「Set in: Oniguruma」と
書いてあるので正規表現ルールを "Oniguruma" と指定しないと使えません

しかし php-mbstring のソースを見てみると選べる正規表現ルールの中に "Oniguruma" は
ありませんでした、つまり正規表現ルールを "Oniguruma" に変更出来れば (*FAIL) なども
使えるようになる可能性があります(そう簡単に上手くいくとも思えませんが)