diff --git a/bindings-posix.cabal b/bindings-posix.cabal
--- a/bindings-posix.cabal
+++ b/bindings-posix.cabal
@@ -1,8 +1,13 @@
-cabal-version: >= 1.2.3
+cabal-version: >= 1.8
 name: bindings-posix
 synopsis:
   Low level bindings to posix.
-version: 1.2.3
+description:
+  Low level bindings to Posix standard library, part
+  of the @bindings-*@. See:
+  .
+  <http://bitbucket.org/mauricio/bindings-DSL
+version: 1.2.4
 license: BSD3
 license-file: LICENSE
 maintainer: Maurício C. Antunes <mauricio.antunes@gmail.com>
@@ -16,12 +21,13 @@
     ForeignFunctionInterface
   build-depends:
     base >= 3 && < 5,
-    bindings-DSL >= 1.0.12 && < 1.1
+    bindings-DSL >= 1.0.16 && < 1.1
   exposed-modules:
     Bindings.Posix
     Bindings.Posix.Errno
     Bindings.Posix.Fcntl
     Bindings.Posix.Locale
+    Bindings.Posix.Regex
     Bindings.Posix.Signal
     Bindings.Posix.Sys
     Bindings.Posix.Sys.Mman
@@ -30,10 +36,16 @@
     Bindings.Posix.Sys.Utsname
     Bindings.Posix.Time
     Bindings.Posix.Unistd
+  c-sources:
+    src/Bindings/Posix/Sys/Select.c
+    src/Bindings/Posix/Time.c
   cc-options:
     "-D_ISOC99_SOURCE"
     "-D_POSIX_C_SOURCE=200112L"
     "-D_XOPEN_SOURCE=600"
-  c-sources: src/inlines.c
   extra-libraries: pthread
-
+source-repository head
+  type: git
+  location: https://bitbucket.org/mauricio/bindings-dsl
+  branch: master
+  subdir: bindings-posix
diff --git a/src/Bindings/Posix.hs b/src/Bindings/Posix.hs
--- a/src/Bindings/Posix.hs
+++ b/src/Bindings/Posix.hs
@@ -2,6 +2,7 @@
   module Bindings.Posix.Errno,
   module Bindings.Posix.Fcntl,
   module Bindings.Posix.Locale,
+  module Bindings.Posix.Regex,
   module Bindings.Posix.Signal,
   module Bindings.Posix.Sys,
   module Bindings.Posix.Time,
@@ -10,6 +11,7 @@
 import Bindings.Posix.Errno
 import Bindings.Posix.Fcntl
 import Bindings.Posix.Locale
+import Bindings.Posix.Regex
 import Bindings.Posix.Signal
 import Bindings.Posix.Sys
 import Bindings.Posix.Time
diff --git a/src/Bindings/Posix/Regex.hsc b/src/Bindings/Posix/Regex.hsc
new file mode 100644
--- /dev/null
+++ b/src/Bindings/Posix/Regex.hsc
@@ -0,0 +1,46 @@
+#include <bindings.dsl.h>
+#include <regex.h>
+
+-- | <http://www.opengroup.org/onlinepubs/9699919799/basedefs/regex.h.html>
+
+module Bindings.Posix.Regex where
+#strict_import
+import Bindings.Posix.Sys.Types
+
+#starttype regex_t
+#field re_nsub , CSize
+#stoptype
+
+#integral_t regoff_t
+
+#starttype regmatch_t
+#field rm_so , <regoff_t>
+#field rm_eo , <regoff_t>
+#stoptype
+
+#num REG_EXTENDED
+#num REG_ICASE
+#num REG_NOSUB
+#num REG_NEWLINE
+
+#num REG_NOTBOL
+#num REG_NOTEOL
+
+#num REG_NOMATCH
+#num REG_BADPAT
+#num REG_ECOLLATE
+#num REG_ECTYPE
+#num REG_EESCAPE
+#num REG_ESUBREG
+#num REG_EBRACK
+#num REG_EPAREN
+#num REG_EBRACE
+#num REG_BADBR
+#num REG_ERANGE
+#num REG_ESPACE
+#num REG_BADRPT
+
+#ccall regcomp , Ptr <regex_t> -> CString -> CInt -> IO CInt
+#ccall regerror , CInt -> Ptr <regex_t> -> CString -> CSize -> IO CSize
+#ccall regexec , Ptr <regex_t> -> CString -> CSize -> Ptr <regmatch_t> -> CInt -> IO CInt
+#ccall regfree , Ptr <regex_t> -> IO ()
diff --git a/src/Bindings/Posix/Sys/Select.c b/src/Bindings/Posix/Sys/Select.c
new file mode 100644
--- /dev/null
+++ b/src/Bindings/Posix/Sys/Select.c
@@ -0,0 +1,7 @@
+#include<bindings.cmacros.h>
+#include<sys/select.h>
+
+BC_INLINE2VOID(FD_CLR,int,fd_set*)
+BC_INLINE2(FD_ISSET,int,fd_set*,int)
+BC_INLINE2VOID(FD_SET,int,fd_set*)
+BC_INLINE1VOID(FD_ZERO,fd_set*)
diff --git a/src/Bindings/Posix/Time.c b/src/Bindings/Posix/Time.c
new file mode 100644
--- /dev/null
+++ b/src/Bindings/Posix/Time.c
@@ -0,0 +1,5 @@
+#include<bindings.cmacros.h>
+#include<time.h>
+
+BC_INLINE_(getdate_err,int)
+BC_GLOBALARRAY(tzname,char*)
diff --git a/src/inlines.c b/src/inlines.c
deleted file mode 100644
--- a/src/inlines.c
+++ /dev/null
@@ -1,11 +0,0 @@
-#include<bindings.cmacros.h>
-#include<sys/select.h>
-#include<time.h>
-
-BC_INLINE2VOID(FD_CLR,int,fd_set*)
-BC_INLINE2(FD_ISSET,int,fd_set*,int)
-BC_INLINE2VOID(FD_SET,int,fd_set*)
-BC_INLINE1VOID(FD_ZERO,fd_set*)
-BC_INLINE_(getdate_err,int)
-BC_GLOBALARRAY(tzname,char*)
-
