Fix #4096
diff --git a/system/database/DB_driver.php b/system/database/DB_driver.php
index 0c2e499..fe0cd7d 100644
--- a/system/database/DB_driver.php
+++ b/system/database/DB_driver.php
@@ -1487,7 +1487,7 @@
 				'\s+IS NOT NULL',                // IS NOT NULL
 				'\s+EXISTS\s*\([^\)]+\)',        // EXISTS(sql)
 				'\s+NOT EXISTS\s*\([^\)]+\)',    // NOT EXISTS(sql)
-				'\s+BETWEEN\s+\S+\s+AND\s+\S+',  // BETWEEN value AND value
+				'\s+BETWEEN\s+',                 // BETWEEN value AND value
 				'\s+IN\s*\([^\)]+\)',            // IN(list)
 				'\s+NOT IN\s*\([^\)]+\)',        // NOT IN (list)
 				'\s+LIKE\s+\S.*('.$_les.')?',    // LIKE 'expr'[ ESCAPE '%s']
diff --git a/user_guide_src/source/changelog.rst b/user_guide_src/source/changelog.rst
index 69a7ed4..5fa9c78 100644
--- a/user_guide_src/source/changelog.rst
+++ b/user_guide_src/source/changelog.rst
@@ -25,6 +25,7 @@
 -  Fixed a bug (#4086) - :doc:`Query Builder <database/query_builder>` didn't apply *dbprefix* to LIKE conditions if the pattern included spaces.
 -  Fixed a bug (#4091) - :doc:`Cache Library <libraries/caching>` 'file' driver could be tricked into accepting empty cache item IDs.
 -  Fixed a bug (#4093) - :doc:`Query Builder <database/query_builder>` modified string values containing 'AND', 'OR' while compiling WHERE conditions.
+-  Fixed a bug (#4096) - :doc:`Query Builder <database/query_builder>` didn't apply *dbprefix* when compiling BETWEEN conditions.
 
 Version 3.0.1
 =============