3v4l.org

run code in 300+ PHP versions simultaneously
<?php $pattern = '/{{' . '(?P<directiveName>[a-z]+)(?:[\s\t]*)' . '(?:\s*(?P<quoteType>[\'"])(?P<value>(?:(?!\k\'quoteType\').)*?)(?<!\\\)\k\'quoteType\')?' . '(?P<parameters>.*?)' . '(?P<filters>(?:\|[a-z0-9:_-]+)+)?' . '}}' . '(?:(?P<content>.*?){{\/(?P=directiveName)}})?' . '/si'; echo PHP_EOL . $pattern . PHP_EOL;
Output for 8.2.0 - 8.2.28, 8.3.0 - 8.3.22, 8.4.1 - 8.4.8
/{{(?P<directiveName>[a-z]+)(?:[\s\t]*)(?:\s*(?P<quoteType>['"])(?P<value>(?:(?!\k'quoteType').)*?)(?<!\\)\k'quoteType')?(?P<parameters>.*?)(?P<filters>(?:\|[a-z0-9:_-]+)+)?}}(?:(?P<content>.*?){{\/(?P=directiveName)}})?/si

preferences:
44.89 ms | 406 KiB | 5 Q