#include <stdio.h>
#include <regex.h>

int match(const char *string, const char *pattern) {
    regex_t re;

    if (regcomp(&re, pattern, REG_EXTENDED|REG_NOSUB) != 0) {
        return 0;
    }
    int status = regexec(&re, string, 0, NULL, 0);
    regfree(&re);
    if (status != 0) {
        return 0;
    }

    return 1;
}

int main(void) {
    const char *reg = "^[a-zA-Z0-9_-]+\\.csv$";
    if (!match("test.csv", reg)) {
        printf("Not a valid csv file.\n");
    } else {
        printf("Valid csv file.\n");
    }

    return 0;
}