diff --git a/manifest.dhall b/manifest.dhall
index 1ff5a46bf131ee290c65b90b97b4778e69eca132..013a6af172007108c3489b52462dda1d7e102c3a 100644
--- a/manifest.dhall
+++ b/manifest.dhall
@@ -503,6 +503,7 @@ in  [ callHackage "Cabal" "3.8.1.0"
     , callHackage "reducers" "3.12.4"
     , callHackage "regex-applicative" "0.3.4"
     , callHackage "regex-tdfa" "1.3.2"
+    , callHackage "regex-posix" "0.96.0.1"
     , callHackage "refined" "0.8"
     , callHackage "reflection" "2.1.6"
     , callHackage "resource-pool" "0.3.1.0"
diff --git a/overlay.nix b/overlay.nix
index 490d2052e454b1e73a866601d48175b0f32e9349..3e80d6d972a14c2d77dc1f8e78c6e068f970edfc 100644
--- a/overlay.nix
+++ b/overlay.nix
@@ -721,6 +721,8 @@ self: with pkgs.haskell.lib; {
 
   regex-applicative = self.callPackage (./pkgs/regex-applicative.nix) { };
 
+  regex-posix = self.callPackage (./pkgs/regex-posix.nix) { };
+
   regex-tdfa = self.callPackage (./pkgs/regex-tdfa.nix) { };
 
   relude = self.callPackage (./pkgs/relude.nix) { };
diff --git a/pkgs/regex-posix.nix b/pkgs/regex-posix.nix
new file mode 100644
index 0000000000000000000000000000000000000000..4cccd4aa5b76d7182e9ec7991ff2a6cf235efdd7
--- /dev/null
+++ b/pkgs/regex-posix.nix
@@ -0,0 +1,35 @@
+{ mkDerivation
+, array
+, base
+, bytestring
+, containers
+, lib
+, regex-base
+}:
+mkDerivation {
+  pname = "regex-posix";
+  version = "0.96.0.1";
+  sha256 = "c7827c391919227711e1cff0a762b1678fd8739f9c902fc183041ff34f59259c";
+  revision = "1";
+  editedCabalFile = "1x5xkfddn3llxk4fngqbd8njssrwb7jlp0a0jxfrgdivbava9fwx";
+  isLibrary = true;
+  isExecutable = false;
+  enableSeparateDataOutput = false;
+  libraryHaskellDepends = [
+    array
+    base
+    bytestring
+    containers
+    regex-base
+  ];
+  enableLibraryProfiling = false;
+  enableExecutableProfiling = false;
+  doHaddock = false;
+  jailbreak = true;
+  doCheck = false;
+  doBenchmark = false;
+  hyperlinkSource = false;
+  description = "POSIX Backend for \"Text.Regex\" (regex-base)";
+  license = lib.licenses.bsd3;
+  broken = false;
+}