src/CarteBlanche/Library/Callback.php
protected function _parseCallbackFunctionName($fct)
    {
        $fct_name = $fct;
        $args = array();

        // case "fct_name(arg1,arg2)"
        if (0!=preg_match('/^
            ([^\(]+)                # the function name
            \(                      # the opening parenthesis of arguments
                (?:
                    ([^\)]+)        # anything but a coma
                ){1,}               # 1 or more times
            \)                      # the closing parenthesis of arguments
        $/xi', $fct, $matches)) {
            $fct_name = $matches[1];
            $args = explode(',', $matches[2]);
        }

        return array($fct_name, $args);
    }
protected function _parseCallbackFunctionName($fct)
    {
        $fct_name = $fct;
        $args = array();

        // case "fct_name(arg1,arg2)"
        if (0!=preg_match('/^
            ([^\(]+)                # the function name
            \(                      # the opening parenthesis of arguments
                (?:
                    ([^\)]+)        # anything but a coma
                ){1,}               # 1 or more times
            \)                      # the closing parenthesis of arguments
        $/xi', $fct, $matches)) {
            $fct_name = $matches[1];
            $args = explode(',', $matches[2]);
        }

        return array($fct_name, $args);
    }
Parse a function name for a callback extracting the arguments if so

@param   string  $fct   The function name to parse
@return  array   An array composed of the function name to execute and the arguments array to pass