diff --git a/app/MetaGer.php b/app/MetaGer.php
index 69fcdb4c416650f6ffca5e0055fd0590c5e5e787..1ae4df358eb0d7753eadddaefd7aff9f4aaeff5b 100644
--- a/app/MetaGer.php
+++ b/app/MetaGer.php
@@ -854,10 +854,7 @@ class MetaGer
         }
         # Sucheingabe
         $this->eingabe = trim($request->input('eingabe', ''));
-        if (strlen($this->eingabe) === 0) {
-            $this->warnings[] = trans('metaGer.formdata.noSearch');
-        }
-        $this->q = $this->eingabe;
+        $this->q       = strtolower($this->eingabe);
         # IP
         $this->ip = $request->ip();
         # Language
@@ -964,7 +961,8 @@ class MetaGer
 
     public function searchCheckSitesearch($site)
     {
-        while (preg_match("/(^|.+\s)site:(\S+)(?:\s(.+)|$)/si", $this->q, $match)) {
+        // matches '[... ]site:test.de[ ...]'
+        while (preg_match("/(^|.+\s)site:(\S+)(?:\s(.+)|($))/si", $this->q, $match)) {
             $this->site = $match[2];
             $this->q    = $match[1] . $match[3];
         }
@@ -975,9 +973,10 @@ class MetaGer
 
     public function searchCheckHostBlacklist()
     {
-        while (preg_match("/(.*)(^|\s)-host:(\S+)(.*)/si", $this->q, $match)) {
-            $this->hostBlacklist[] = $match[3];
-            $this->q               = $match[1] . $match[4];
+        // matches '[... ]-site:test.de[ ...]'
+        while (preg_match("/(^|.+\s)-site:([^\s\*]\S*)(?:\s(.+)|($))/si", $this->q, $match)) {
+            $this->hostBlacklist[] = $match[2];
+            $this->q               = $match[1] . $match[3];
         }
         if (sizeof($this->hostBlacklist) > 0) {
             $hostString = "";
@@ -991,9 +990,10 @@ class MetaGer
 
     public function searchCheckDomainBlacklist()
     {
-        while (preg_match("/(.*)(^|\s)-domain:(\S+)(.*)/si", $this->q, $match)) {
-            $this->domainBlacklist[] = $match[3];
-            $this->q                 = $match[1] . $match[4];
+        // matches '[... ]-site:*.test.de[ ...]'
+        while (preg_match("/(^|.+\s)-site:\*\.(\S+)(?:\s(.+)|($))/si", $this->q, $match)) {
+            $this->domainBlacklist[] = $match[2];
+            $this->q                 = $match[1] . $match[3];
         }
         if (sizeof($this->domainBlacklist) > 0) {
             $domainString = "";
@@ -1007,9 +1007,10 @@ class MetaGer
 
     public function searchCheckStopwords()
     {
-        while (preg_match("/(.*)(^|\s)-(\S+)(.*)/si", $this->q, $match)) {
-            $this->stopWords[] = $match[3];
-            $this->q           = $match[1] . $match[4];
+        // matches '[... ]-test[ ...]'
+        while (preg_match("/(^|.+\s)-(\S+)(?:\s(.+)|($))/si", $this->q, $match)) {
+            $this->stopWords[] = $match[2];
+            $this->q           = $match[1] . $match[3];
         }
         if (sizeof($this->stopWords) > 0) {
             $stopwordsString = "";
@@ -1025,7 +1026,8 @@ class MetaGer
     {
         $p   = "";
         $tmp = $this->q;
-        while (preg_match("/(.*)\"(.+)\"(.*)/si", $tmp, $match)) {
+        // matches '[... ]"test satz"[ ...]'
+        while (preg_match("/(^|.+\s)\"(.+)\"(?:\s(.+)|($))/si", $tmp, $match)) {
             $tmp             = $match[1] . $match[3];
             $this->phrases[] = strtolower($match[2]);
         }
@@ -1218,7 +1220,7 @@ class MetaGer
     {
         $host        = urlencode($host);
         $requestData = $this->request->except(['page', 'out', 'next']);
-        $requestData['eingabe'] .= " -host:$host";
+        $requestData['eingabe'] .= " -site:$host";
         $link = action('MetaGerSearch@search', $requestData);
         return $link;
     }
@@ -1227,7 +1229,7 @@ class MetaGer
     {
         $domain      = urlencode($domain);
         $requestData = $this->request->except(['page', 'out', 'next']);
-        $requestData['eingabe'] .= " -domain:$domain";
+        $requestData['eingabe'] .= " -site:*.$domain";
         $link = action('MetaGerSearch@search', $requestData);
         return $link;
     }
diff --git a/tests/MetaGerPhpTest.php b/tests/MetaGerPhpTest.php
index 73403bf7c01cf6acd8771cde5c269776f0d623a6..eb707fc55fc4f728c58d3c3d9431014117a18291 100644
--- a/tests/MetaGerPhpTest.php
+++ b/tests/MetaGerPhpTest.php
@@ -43,14 +43,14 @@ class MetaGerPhpTest extends TestCase
     // Testet das erkennen von Spezialsuchen in verschiedenen Sucheingaben
     public function specialSearchTest()
     {
-        $metager = $this->createSpecialSearchMetager('suchwort -blackword -host:blackhost -domain:blackdomain site:wantsite "i want phrase"');
+        $metager = $this->createSpecialSearchMetager('suchwort -blackword -site:blackhost -site:*.blackdomain site:wantsite "i want phrase"');
         $this->assertEquals("wantsite", $metager->getSite());
         $this->assertContains("blackhost", $metager->getUserHostBlacklist());
         $this->assertContains("blackdomain", $metager->getUserDomainBlacklist());
         $this->assertContains("blackword", $metager->getStopWords());
         $this->assertContains("i want phrase", $metager->getPhrases());
 
-        $metager = $this->createSpecialSearchMetager('site:peter:test -blackword-test -host:blackhost-test.de.nz/test ich suche nach -host:blackhost:blackhost2.cote/t?p=5 "peter ist obst-garten und -bauern"');
+        $metager = $this->createSpecialSearchMetager('site:peter:test -blackword-test -site:blackhost-test.de.nz/test ich suche nach -site:blackhost:blackhost2.cote/t?p=5 "peter ist obst-garten und -bauern"');
         $this->assertEquals("peter:test", $metager->getSite());
         $this->assertContains("blackhost:blackhost2.cote/t?p=5", $metager->getUserHostBlacklist());
         $this->assertContains("blackhost-test.de.nz/test", $metager->getUserHostBlacklist());
@@ -58,15 +58,19 @@ class MetaGerPhpTest extends TestCase
         $this->assertNotContains("bauern", $metager->getStopWords());
         $this->assertContains("peter ist obst-garten und -bauern", $metager->getPhrases());
 
-        $metager = $this->createSpecialSearchMetager('-host:-domain:test');
-        $this->assertContains("-domain:test", $metager->getUserHostBlacklist());
+        $metager = $this->createSpecialSearchMetager('-site:-site:*.test');
+        $this->assertContains("-site:*.test", $metager->getUserHostBlacklist());
 
-        $metager = $this->createSpecialSearchMetager('"-host:-domain:test"');
-        $this->assertContains("-host:-domain:test", $metager->getPhrases());
+        $metager = $this->createSpecialSearchMetager('"-site:-site:*.test"');
+        $this->assertContains("-site:-site:*.test", $metager->getPhrases());
 
-        $metager = $this->createSpecialSearchMetager('site:wikipedia.de site:test.de tomate');
-        $this->assertEquals("tomate", $metager->getQ());
+        $metager = $this->createSpecialSearchMetager('site:wikipedia.de apfel site:test.de tomate');
+        $this->assertEquals("apfel tomate", $metager->getQ());
         $this->assertEquals("test.de", $metager->getSite());
+
+        $metager = $this->createSpecialSearchMetager('site:wikipedia.de');
+        $this->assertEquals("", $metager->getQ());
+        $this->assertEquals("wikipedia.de", $metager->getSite());
     }
 
     public function createSpecialSearchMetager($eingabe)
@@ -142,9 +146,9 @@ class MetaGerPhpTest extends TestCase
         $this->containCallbackTester($metager, "generateSiteSearchLink", ["wolf.de"],
             'site%3Awolf.de');
         $this->containCallbackTester($metager, "generateRemovedHostLink", ["wolf.de"],
-            '-host%3Awolf.de');
+            '-site%3Awolf.de');
         $this->containCallbackTester($metager, "generateRemovedDomainLink", ["wolf.de"],
-            '-domain%3Awolf.de');
+            '-site%3A%2A.wolf.de');
     }
 
     // Prüft ob der Host Count funktioniert
@@ -330,7 +334,7 @@ class MetaGerPhpTest extends TestCase
         #new Request(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null)
 
         $query                = [];
-        $query["eingabe"]     = 'suchwort -blackword -host:blackhost -domain:blackdomain site:wantsite "i want phrase"';
+        $query["eingabe"]     = 'suchwort -blackword -site:blackhost -site:*.blackdomain site:wantsite "i want phrase"';
         $query["focus"]       = "angepasst";
         $query["encoding"]    = "utf8";
         $query["lang"]        = "all";
diff --git a/tests/ResultPhpTest.php b/tests/ResultPhpTest.php
index 341280f30226d39935c6cca388ec034fb646c0d0..19b7dc1eadb8b59ab8140944323626828cec1e08 100644
--- a/tests/ResultPhpTest.php
+++ b/tests/ResultPhpTest.php
@@ -78,7 +78,7 @@ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
         $this->assertTrue($result->isValid($metager));
 
         $metager = new MetaGer();
-        $request = new Request(['eingabe' => 'test -host:host.domain.de -domain:domain.de']);
+        $request = new Request(['eingabe' => 'test -site:host.domain.de -site:*.domain.de']);
         $metager->parseFormData($request);
         $metager->checkSpecialSearches($request);