Provided by: librgxg-dev_0.1-1_amd64 bug

NAME

       rgxg_number_range,  rgxg_number_greaterequal  -  create regex that matches integers in the
       given range

SYNOPSIS

       #include <rgxg/number.h>

       int rgxg_number_range (long long first, long long last, int base,
            size_t min_length, char *regex, rgxg_options_t options);

       int rgxg_number_greaterequal (long long number, int base,
            size_t min_length, char *regex, rgxg_options_t options);

DESCRIPTION

       rgxg_number_range() generates the (extended) regular expression that matches  integers  in
       the range between first and last.

       rgxg_number_greaterequal()  generates  the  (extended)  regular  expression  that  matches
       integers greater than or equal to number.

       The base of the matched integers is specified by base, which must  be  between  2  and  32
       inclusive.  Note  that  for  bases  greater  than  16  the "extended hex" alphabet is used
       (referenced as 'base32hex' in RFC 4648).

       If RGXG_LEADINGZERO or RGXG_VARLEADINGZERO is set, then min_length specifies  the  minimum
       length  of  the  matched  integers  (otherwise  the argument is ignored). For instance the
       number 5 with min_length set to 3 and options set to RGXG_LEADINGZERO is matched as '005'.
       By  default  the  number  of  leading  zeros  depends on the length of the last number. If
       min_length is lesser than or equal to the number of digits  of  last,  the  value  has  no
       effect.

       The  generated  regular expression is written to the character string regex, including the
       terminating null byte ('\0'), unless RGXG_NONULLBYTE is set. If regex is NULL  the  return
       value  is  the  number of characters (excluding the terminating null byte) that would have
       been written in case regex has  been  initialized.  Note  that  the  functions  assume  an
       arbitrarily  long  regex string, callers must ensure that the given string is large enough
       to not overflow the actual space.

       options is either zero, or the bitwise-or of one or more of the following macros:

       RGXG_NOUPPERCASE
              The generated regular expression only matches lower case letters  for  base  values
              greater than 10. The default is to match both lower and upper case letters.

       RGXG_NOLOWERCASE
              The  generated  regular  expression only matches upper case letters for base values
              greater than 10. The default is to match both lower and upper case letters.

       RGXG_NOOUTERPARENS
              Omit the outer parenthesis, if any, of the regular expression.

       RGXG_LEADINGZERO
              The generated regular expression only matches integers with leading zeros (e.g. the
              integer  5  is only matched as '005'). The number of leading zeros is influenced by
              the min_length argument (see above). By default no leading zeros are matched.

       RGXG_VARLEADINGZERO
              The generated regular expression matches integers with a variable number of leading
              zeros  (e.g. the number 5 is matched as '5', '05' and '005'). The maximum number of
              leading zeros is influenced by the min_length argument (see above). By  default  no
              leading zeros are matched.

       RGXG_NONULLBYTE
              Do not add the terminating null byte ('\0') to the regex string.

       Note   that   RGXG_NOUPPERCASE  and  RGXG_NOLOWERCASE  as  well  as  RGXG_LEADINGZERO  and
       RGXG_VARLEADINGZERO are mutual exclusive options.

RETURN VALUE

       Upon successful return, these functions return the number  of  characters  (excluding  the
       terminating null byte) written to regex.

       If an error occurs, a (negative) error code is returned (see ERRORS section).

ERRORS

       The following errors can be returned:

       RGXG_ERROR_RANGE (rgxg_number_range() only)
              Invalid range (e.g.  first number is greater than last number).

       RGXG_ERROR_BASE
              The base is lesser than 2 or greater than 32.

       RGXG_ERROR_NEGARG
              At least one argument is negative.

       RGXG_ERROR_ARG2BIG (rgxg_number_greaterequal() only)
              The value of number is too large.

       RGXG_ERROR_MUTEXOPTIONS
              Two mutual exclusive options were specified.

AVAILABILITY

       These functions are available since rgxg 0.1.

SEE ALSO

       regex(7), rgxg_net_cidr_ipv4(3), rgxg_net_cidr_ipv6(3), rgxg_net_cidr_string(3).

AUTHOR

       Hannes von Haugwitz <hannes@vonhaugwitz.com>