3v4l.org

run code in 300+ PHP versions simultaneously
<?php var_dump( preg_match_all( '/ (?<LITERAL_STRING> [^{]* ) | (?<INLINE_TAG_START>{) (?<TAG_NAME>@\w+) \s* #(?: # (?<TAG_WORD>[\S]*) # (?<TAG_WHITESPACE>[\s]*) #)* (?<I>[\w|\s]*)* (?<INLINE_TAG_END>}) /ux', 'This is {@inline a tag with} a description {@see descriptions} that is divided', $matches, PREG_SET_ORDER ) ); foreach ($matches as $key => $match) { echo "\n" . $key . "\n"; foreach ($match as $innerKey => $element) { if (is_numeric($innerKey)) { continue; } echo $innerKey .': '. var_export($element, true) . "\n"; } }
Output for 4.4.6 - 4.4.9, 5.2.2 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.38, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
int(8) 0 LITERAL_STRING: 'This is ' 1 LITERAL_STRING: '' 2 LITERAL_STRING: '' INLINE_TAG_START: '{' TAG_NAME: '@inline' I: '' INLINE_TAG_END: '}' 3 LITERAL_STRING: ' a description ' 4 LITERAL_STRING: '' 5 LITERAL_STRING: '' INLINE_TAG_START: '{' TAG_NAME: '@see' I: '' INLINE_TAG_END: '}' 6 LITERAL_STRING: ' that is divided' 7 LITERAL_STRING: ''
Output for 5.2.0 - 5.2.1
Warning: preg_match_all(): Compilation failed: unrecognized character after (?< at offset 16 in /in/cDbrc on line 22 bool(false) Warning: Invalid argument supplied for foreach() in /in/cDbrc on line 25
Output for 4.3.11, 4.4.0 - 4.4.5, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6
Warning: preg_match_all(): Compilation failed: unrecognized character after (?< at offset 16 in /in/cDbrc on line 22 bool(false)
Output for 4.3.0 - 4.3.10
Warning: Compilation failed: unrecognized character after (?< at offset 16 in /in/cDbrc on line 22 bool(false)

preferences:
280.28 ms | 401 KiB | 451 Q