diff --git a/Userspace/libc/include/regex.h b/Userspace/libc/include/regex.h
new file mode 100644
index 00000000..81636aef
--- /dev/null
+++ b/Userspace/libc/include/regex.h
@@ -0,0 +1,68 @@
+/*
+ This file is part of Fennix C Library.
+
+ Fennix C Library is free software: you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of
+ the License, or (at your option) any later version.
+
+ Fennix C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Fennix C Library. If not, see .
+*/
+
+#ifndef _REGEX_H
+#define _REGEX_H
+
+#include
+#include
+
+typedef struct
+{
+ size_t re_nsub; /* Number of parenthesized subexpressions */
+} regex_t;
+
+typedef ptrdiff_t regoff_t;
+
+typedef struct
+{
+ regoff_t rm_so; /* Byte offset to start of substring */
+ regoff_t rm_eo; /* Byte offset after end of substring */
+} regmatch_t;
+
+/* Flags for regcomp() */
+#define REG_EXTENDED 0x01 /* Use Extended Regular Expressions */
+#define REG_ICASE 0x02 /* Case-insensitive matching */
+#define REG_MINIMAL 0x04 /* Leftmost shortest match (for REG_EXTENDED) */
+#define REG_NOSUB 0x08 /* Suppress subexpression reporting */
+#define REG_NEWLINE 0x10 /* Alter newline handling */
+
+/* Flags for regexec() */
+#define REG_NOTBOL 0x01 /* ^ does not match start of string */
+#define REG_NOTEOL 0x02 /* $ does not match end of string */
+
+/* Error codes */
+#define REG_NOMATCH 1 /* No match found */
+#define REG_BADPAT 2 /* Invalid regular expression */
+#define REG_ECOLLATE 3 /* Invalid collating element */
+#define REG_ECTYPE 4 /* Invalid character class */
+#define REG_EESCAPE 5 /* Trailing backslash */
+#define REG_ESUBREG 6 /* Invalid backreference */
+#define REG_EBRACK 7 /* Unbalanced '[]' */
+#define REG_EPAREN 8 /* Unbalanced '()' */
+#define REG_EBRACE 9 /* Unbalanced '{}' */
+#define REG_BADBR 10 /* Invalid content in {} */
+#define REG_ERANGE 11 /* Invalid range endpoint */
+#define REG_ESPACE 12 /* Memory exhaustion */
+#define REG_BADRPT 13 /* Invalid repetition operator */
+
+int regcomp(regex_t *restrict preg, const char *restrict pattern, int cflags);
+size_t regerror(int errcode, const regex_t *restrict preg, char *restrict errbuf, size_t errbuf_size);
+int regexec(const regex_t *restrict preg, const char *restrict string, size_t nmatch, regmatch_t pmatch[restrict], int eflags);
+void regfree(regex_t *preg);
+
+#endif /* _REGEX_H */