, text:string} */ public function parse(string $text): ?array { $text = trim($text); if (preg_match('/^\[([A-Z0-9.-]+)(?:\s+([^\]]+))?\](?:\s*(.*))?$/i', $text, $matches) !== 1) { return null; } $arguments = trim($matches[2] ?? ''); return [ 'name' => strtoupper($matches[1]), 'arguments' => $arguments === '' ? [] : (preg_split('/\s+/', $arguments) ?: []), 'text' => trim($matches[3] ?? ''), ]; } }