- var_dump: documentation ( source)
- preg_match_all: documentation ( source)
<?php
$regex = '/(?:\A|\n)\s*(@[\pL-_]+)\ *(?s:(.*?))(?=\n\s*@)/ux';
$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);