|  | #include <error.h> | 
|  | #include <sys/types.h> | 
|  | #include <regex.h> | 
|  | #include <stdio.h> | 
|  | #include <stdlib.h> | 
|  |  | 
|  | int | 
|  | main (void) | 
|  | { | 
|  | regex_t re; | 
|  | regmatch_t ma[2]; | 
|  | int reerr; | 
|  | int res = 0; | 
|  |  | 
|  | re_set_syntax (RE_DEBUG); | 
|  | reerr = regcomp (&re, "0*[0-9][0-9]", 0); | 
|  | if (reerr != 0) | 
|  | { | 
|  | char buf[100]; | 
|  | regerror (reerr, &re, buf, sizeof buf); | 
|  | error (EXIT_FAILURE, 0, "%s", buf); | 
|  | } | 
|  |  | 
|  | if (regexec (&re, "002", 2, ma, 0) != 0) | 
|  | { | 
|  | error (0, 0, "\"0*[0-9][0-9]\" does not match \"002\""); | 
|  | res = 1; | 
|  | } | 
|  | puts ("Succesful match with \"0*[0-9][0-9]\""); | 
|  |  | 
|  | regfree (&re); | 
|  |  | 
|  | reerr = regcomp (&re, "[0a]*[0-9][0-9]", 0); | 
|  | if (reerr != 0) | 
|  | { | 
|  | char buf[100]; | 
|  | regerror (reerr, &re, buf, sizeof buf); | 
|  | error (EXIT_FAILURE, 0, "%s", buf); | 
|  | } | 
|  |  | 
|  | if (regexec (&re, "002", 2, ma, 0) != 0) | 
|  | { | 
|  | error (0, 0, "\"[0a]*[0-9][0-9]\" does not match \"002\""); | 
|  | res = 1; | 
|  | } | 
|  | puts ("Succesful match with \"[0a]*[0-9][0-9]\""); | 
|  |  | 
|  | regfree (&re); | 
|  |  | 
|  | return res; | 
|  | } |