preg_match_all("/\[(?:([^|\]\"]+)\|)?([^\]\"#]+)(?:#([^\]\"]+))?\]/", $content, $matches, PREG_SET_ORDER);
она разбивает строку [Читать|gimnastika#features|button] в массив
Array
(
[0] => Array
(
[0] => [Читать|poslerodovaya_gimnastika#features]
[1] => Читать
[2] => poslerodovaya_gimnastika
[3] => features
)
)
обязательное значение только gimnastika, остальные не обязательные.
помогите доработать регулярку, чтобы читала [Читать|gimnastika#features|button] и значение button было бы не обязательным.