Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Quote regular expression characters
<?php preg_quote(string $str, ?string $delimiter = null): string
<?php                     yield $tag;

                }

            } while (((string) $cursor) !== $defaultCursorValue);

        })->map(fn (string $tagKey) => Str::match('/^'.preg_quote($prefix, '/').'tag:(.*):entries$/', $tagKey));

    }
<?php         }



        return $this->getGuarded() == ['*'] ||

               ! empty(preg_grep('/^'.preg_quote($key, '/').'$/i', $this->getGuarded())) ||

               ! $this->isGuardableColumn($key);

    }
<?php             $type = strtolower($result->type);



            $collation = preg_match(

                '/\b'.preg_quote($result->name).'\b[^,(]+(?:\([^()]+\)[^,]*)?(?:(?:default|check|as)\s*(?:\(.*?\))?[^,]*)*collate\s+["\'`]?(\w+)/i',

                $sql,

                $matches

            ) === 1 ? strtolower($matches[1]) : null;
<?php             $isGenerated = in_array($result->extra, [2, 3]);



            $expression = $isGenerated && preg_match(

                '/\b'.preg_quote($result->name).'\b[^,]+\s+as\s+\(((?:[^()]+|\((?:[^()]+|\([^()]*\))*\))*)\)/i',

                $sql,

                $matches

            ) === 1 ? $matches[1] : null;
<?php     protected function keyReplacementPattern()

    {

        $escaped = preg_quote('='.$this->laravel['config']['app.key'], '/');



        return "/^APP_KEY{$escaped}/m";

    }
<?php         return preg_replace(

            vsprintf('/use %s;[\r\n]+use %s;/', [

                preg_quote($namespacedModel, '/'),

                preg_quote($namespacedModel, '/'),

            ]),

            "use {$namespacedModel};",
<?php         return preg_replace(

            vsprintf('/use %s;[\r\n]+use %s;/', [

                preg_quote($namespacedModel, '/'),

                preg_quote($namespacedModel, '/'),

            ]),

            "use {$namespacedModel};",

            $stub
<?php         $split = explode('/', $actual);



        return isset($split[1]) && preg_match('#'.preg_quote($split[0], '#').'/.+\+'.preg_quote($split[1], '#').'#', $type);

    }
<?php     protected function allSubdomainsOfApplicationUrl()

    {

        if ($host = parse_url($this->app['config']->get('app.url'), PHP_URL_HOST)) {

            return '^(.+\.)?'.preg_quote($host).'$';

        }

    }
<?php         $radius = $options['radius'] ?? 100;

        $omission = $options['omission'] ?? '...';



        preg_match('/^(.*?)('.preg_quote((string) $phrase, '/').')(.*)$/iu', (string) $text, $matches);



        if (empty($matches)) {

            return null;
<?php     public static function finish($value, $cap)

    {

        $quoted = preg_quote($cap, '/');



        return preg_replace('/(?:'.$quoted.')+$/u', '', $value).$cap;

    }
<?php                 return true;

            }



            $pattern = preg_quote($pattern, '#');
<?php     public static function start($value, $prefix)

    {

        $quoted = preg_quote($prefix, '/');



        return $prefix.preg_replace('/^(?:'.$quoted.')+/u', '', $value);

    }
<?php         $flip = $separator === '-' ? '_' : '-';



        $title = preg_replace('!['.preg_quote($flip).']+!u', $separator, $title);




        foreach ($dictionary as $key => $value) {
<?php         $title = str_replace(array_keys($dictionary), array_values($dictionary), $title);




        $title = preg_replace('![^'.preg_quote($separator).'\pL\pN\s]+!u', '', static::lower($title));




        $title = preg_replace('!['.preg_quote($separator).'\s]+!u', $separator, $title);