', and '::'. */ public static function extract(string $line, int $position): string { $length = \mb_strlen($line); $position = \max(0, \min($position, $length)); if ($position === 0 || $line === '') { return ''; } $start = $position; while ($start > 0) { $char = \mb_substr($line, $start - 1, 1); if ($char === '' || \ctype_space($char) || $char === '$') { break; } if ($start >= 2) { $prev = \mb_substr($line, $start - 2, 1); if (($prev === '-' && $char === '>') || ($prev === ':' && $char === ':')) { break; } } $start--; } return \mb_substr($line, $start, $position - $start); } }