Set the handling of the ordering of options and arguments. A RuntimeError
is raised if option processing has already started.

The supplied value must be a member of GetoptLong::ORDERINGS. It alters the
processing of options as follows:

REQUIRE_ORDER :

Options are required to occur before non-options.

Processing of options ends as soon as a word is encountered that has not
been preceded by an appropriate option flag.

For example, if -a and -b are options which do not take arguments, parsing
command line arguments of ‘-a one -b two’ would result in ‘one’, ‘-b’,
‘two’ being left in ARGV, and only (‘-a’, ”) being processed as an
option/arg pair.

This is the default ordering, if the environment variable POSIXLY_CORRECT
is set. (This is for compatibility with GNU getopt_long.)

PERMUTE :

Options can occur anywhere in the command line parsed. This is the default
behavior.

Every sequence of words which can be interpreted as an option (with or
without argument) is treated as an option; non-option words are skipped.

For example, if -a does not require an argument and -b optionally takes an
argument, parsing ‘-a one -b two three’ would result in (‘-a’,”) and (‘-b’,
‘two’) being processed as option/arg pairs, and ‘one’,‘three’ being left in
ARGV.

If the ordering is set to PERMUTE but the environment variable
POSIXLY_CORRECT is set, REQUIRE_ORDER is used instead. This is for
compatibility with GNU getopt_long.

RETURN_IN_ORDER :

All words on the command line are processed as options. Words not preceded
by a short or long option flag are passed as arguments with an option of ”
(empty string).

For example, if -a requires an argument but -b does not, a command line of
‘-a one -b two three’ would result in option/arg pairs of (‘-a’, ‘one’)
(‘-b’, ”), (”, ‘two’), (”, ‘three’) being processed.