I created the following grammar:

grammar Test;

COMMA: ',';
OPEN: '(';
CLOSE: ')';

ATOM: [0-9a-zA-Z_]+;
SPACE: [ rnt]+ -> skip;

start: expr EOF;

expr
    : ATOM                                         # Identifier
    | expr OPEN (expr (COMMA expr)*)? CLOSE        # Call
    | OPEN expr CLOSE                              # Wrap
    | expr COMMA expr                              # Then
    ;

And then I tried parsing

FUNC(1, (2, 3), 4)

But it gave me this result

start:
    expr:
        expr "FUNC"
        "("
        expr:
            expr:
                expr "1"
                ","
                expr:
                    "("
                    expr:
                        expr "2"
                        ","
                        expr "3"
                    ")"
            ","
            expr "4"
        ")"
    <EOF>

instead of

start:
    expr:
        expr "FUNC"
        "("
        expr "1"
        ","
        expr:
            "("
            expr:
                expr "2"
                ","
                expr "3"
            ")"
        ","
        expr "4"
        ")"
    <EOF>

How can I make the parser prefer the Call branch over the Then one?
(I feel like * in Antlr4 is more like *? in regular expressions, is it true?)