> If you apply that rule, you can figure out the answer: extglob changes the > behavior of the parser, so it must be enabled before a command is parsed. > The complete line of input is read before any of it is parsed, and the > complete line is parsed before any of it is executed. As a consequence, the > extglob option must be enabled for the ( to be recognized as an extended > globbing pattern instead of an operator.
I replied before reading your answer, my apologies. You unvealed the mystery ! Now I understand why it works as expected with -O extglob: it enables it BEFORE parsing the command. Thank you so much for shedding light on this !