diff --git a/include/sdbusplus/asio/object_server.hpp b/include/sdbusplus/asio/object_server.hpp
index f163208..cf3cb80 100644
--- a/include/sdbusplus/asio/object_server.hpp
+++ b/include/sdbusplus/asio/object_server.hpp
@@ -19,7 +19,6 @@
 
 #include <list>
 #include <optional>
-#include <regex>
 #include <set>
 
 namespace sdbusplus
@@ -27,9 +26,8 @@
 namespace asio
 {
 
-constexpr const char* PropertyNamePattern = "[a-zA-Z0-9_]+";
-constexpr const char* PathPattern = "(/[a-zA-Z0-9_]+)+";
-constexpr const char* InterfaceNamePattern = "[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)+";
+constexpr const char* PropertyNameAllowedCharacters =
+    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
 
 class callback
 {
@@ -386,7 +384,8 @@
         {
             return false;
         }
-        if (!std::regex_match(name, std::regex(PropertyNamePattern)))
+        if (name.find_first_not_of(PropertyNameAllowedCharacters) !=
+            std::string::npos)
         {
             return false;
         }
@@ -426,7 +425,8 @@
         {
             return false;
         }
-        if (!std::regex_match(name, std::regex(PropertyNamePattern)))
+        if (name.find_first_not_of(PropertyNameAllowedCharacters) !=
+            std::string::npos)
         {
             return false;
         }
@@ -535,7 +535,8 @@
         {
             return false;
         }
-        if (!std::regex_match(name, std::regex(PropertyNamePattern)))
+        if (name.find_first_not_of(PropertyNameAllowedCharacters) !=
+            std::string::npos)
         {
             return false;
         }
@@ -829,11 +830,6 @@
     std::shared_ptr<dbus_interface> add_interface(const std::string& path,
                                                   const std::string& name)
     {
-        if (!std::regex_match(path, std::regex(PathPattern)) ||
-            !std::regex_match(name, std::regex(InterfaceNamePattern)))
-        {
-            throw exception::SdBusError(EINVAL, "Invalid path or interface");
-        }
         auto dbusIface = std::make_shared<dbus_interface>(conn_, path, name);
         interfaces_.emplace_back(dbusIface);
         return dbusIface;
