def METHOD_NAME(args: str) -> CoinsArgs:
    """
    Parses a user's coin string into a representation of each currency.
    If the user input is a decimal number, assumes gold pieces.
    Otherwise, allows the user to specify currencies in the form ``/(([+-]?\\d+)\\s*([pgesc]p)?)+/``
    (e.g. +1gp -2sp 3cp).
    """
    # Remove commas, in the case of `+3,104gp` or `-2,000.05`
    args = args.replace(",", "")
    try:
        return _parse_coin_args_float(float(args))
    except ValueError:
        return _parse_coin_args_re(args)