- var_dump: documentation ( source)
- preg_match_all: documentation ( source)
<?php
$regex = <<<REGEX
/
(?:\A|\n)\s*
(@[\pL-_]+)
\ *
(?s:(.*?))
((?=\n\s*@))
/ux
REGEX;
$comment = <<<COMMENT
@see MyTag this is a @description
that spans multiple lines
@internal
@author Mike van Riel <me@mikevanriel.com>
COMMENT;
var_dump(preg_match_all($regex, $comment, $matches, PREG_SET_ORDER));
var_dump($matches);