- #include <regex.h> 
- #include <stdio.h> 
-   
- int checkregex(char *in){ 
-   regex_t regex; 
-   char *expression="^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$"; 
-   int reti; 
-   char msgbuf[100]; 
-   
-   /* Compile regular expression */ 
-   reti = regcomp(®ex, expression, REG_EXTENDED); 
-   if (reti) { 
-     fprintf(- stderr , "Could not compile regex\n");
 
-     return -1; 
-   } 
-   
-   /* Execute regular expression */ 
-   reti = regexec(®ex, in , 0, NULL, 0); 
-   if (!reti) { 
-     return 1; 
-   } 
-   else if (reti == REG_NOMATCH) { 
-     return 0; 
-   } 
-   else { 
-     regerror(reti, ®ex, msgbuf, sizeof(msgbuf)); 
-     fprintf(- stderr , "Regex match failed: %s\n",-  msgbuf );
 
-   } 
-   return 0; 
- } 
-   
- int main(void) {  
-     int x = checkregex("XII"); 
- 	return 0; 
- } 
				I2luY2x1ZGUgPHJlZ2V4Lmg+CiNpbmNsdWRlIDxzdGRpby5oPgoKaW50IGNoZWNrcmVnZXgoY2hhciAqaW4pewogIHJlZ2V4X3QgcmVnZXg7CiAgY2hhciAqZXhwcmVzc2lvbj0iXk17MCw0fShDTXxDRHxEP0N7MCwzfSkoWEN8WEx8TD9YezAsM30pKElYfElWfFY/SXswLDN9KSQiOwogIGludCByZXRpOwogIGNoYXIgbXNnYnVmWzEwMF07CgogIC8qIENvbXBpbGUgcmVndWxhciBleHByZXNzaW9uICovCiAgcmV0aSA9IHJlZ2NvbXAoJnJlZ2V4LCBleHByZXNzaW9uLCBSRUdfRVhURU5ERUQpOwogIGlmIChyZXRpKSB7CiAgICBmcHJpbnRmKHN0ZGVyciwgIkNvdWxkIG5vdCBjb21waWxlIHJlZ2V4XG4iKTsKICAgIHJldHVybiAtMTsKICB9CgogIC8qIEV4ZWN1dGUgcmVndWxhciBleHByZXNzaW9uICovCiAgcmV0aSA9IHJlZ2V4ZWMoJnJlZ2V4LCBpbiAsIDAsIE5VTEwsIDApOwogIGlmICghcmV0aSkgewogICAgcHJpbnRmKCJNYXRjaFxuIik7CiAgICByZXR1cm4gMTsKICB9CiAgZWxzZSBpZiAocmV0aSA9PSBSRUdfTk9NQVRDSCkgewogICAgcHJpbnRmKCJObyBtYXRjaFxuIik7CiAgICByZXR1cm4gMDsKICB9CiAgZWxzZSB7CiAgICByZWdlcnJvcihyZXRpLCAmcmVnZXgsIG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZikpOwogICAgZnByaW50ZihzdGRlcnIsICJSZWdleCBtYXRjaCBmYWlsZWQ6ICVzXG4iLCBtc2didWYpOwogICAgZXhpdCgxKTsKICB9CiAgcmV0dXJuIDA7Cn0KCmludCBtYWluKHZvaWQpIHsgCiAgICBpbnQgeCA9IGNoZWNrcmVnZXgoIlhJSSIpOwoJcHJpbnRmKCIlZFxuIiwgeCk7CglyZXR1cm4gMDsKfQ==