diff --git a/doc/efun/regexp_package b/doc/efun/regexp_package
new file mode 100644
index 0000000..8b8d29f
--- /dev/null
+++ b/doc/efun/regexp_package
@@ -0,0 +1,48 @@
+SYNOPSIS
+        #include <regexp.h>
+
+        int regexp_package()
+
+DESCRIPTION
+        Return which regexp package is used by default:
+
+          RE_TRADITIONAL: traditional regexps
+          RE_PCRE:        PCRE
+
+        As the package can be selected at runtime through the
+        REGEXP_PACKAGE driver hook, there is no good way to determine
+        the package at LPC compile time.
+        Match the pattern <pattern> (interpreted according to <opt> if
+        given) against all strings in list, and return a new array with all
+        strings that matched.
+
+        If there is an error in the regular expression, a runtime
+        error will be raised.
+
+EXAMPLE
+        string strs;
+        string pattern;
+        
+        if (regexp_package() == RE_PCRE)
+            pattern = "\\<help\\>.*\\<me\\>";
+        else
+            pattern = "\\bhelp\\b.*\\bme\\b";
+
+        if (strs = regexp( ({"please, help me Sir John."}),
+                         , pattern
+                         ))
+        {
+           if (sizeof(strs)
+              write("It matches.\n");
+        }
+
+        The regular expression will test the given string (which is
+        packed into an array) if there is something like "help ... me"
+        inside of it.
+
+HISTORY
+        Introduced in LDMud 3.3.634.
+
+SEE ALSO
+        regexp(E), regexplode(E), regmatch(E), regreplace(E), sscanf(E),
+        regexp(C), regexp_package(H)
