パスから正規表現パートを抽出します。

@param	string	$path		解析するパス
@param	array	抽出した正規表現パート
552822
public static function PursePathRegex ($path) {
		//チャンク
		$chunk = str_split($path);
		$chunk_length = count($chunk);

		//エスケープレベル
		$escape_lv = 0;

		//スタッカ
		$stack = [];

		//パターンスタッカ
		$pattern_list = [];

		//パラメータスタッカ
		$parameter_list = [];

		//一括精査
		for ($i = 0;$i < $chunk_length;$i++) {
			$char = $chunk[$i];

			//エスケープ文字の積み上げ
			if ("\\" === $char) {
				$escape_lv++;
				$stack[] = $char;
				continue;
			}

			//エスケープされているかどうか見ながら処理
			if (($escape_lv % 2 === 0) && '{' === $char && ':' === $chunk[$i + 1]) {
				//ブレスレベル
				$breath_lv = 1;

				//エスケープレベルのリセット
				$escape_lv = 0;

				//パラメータ名
				$parameter_name = '';

				//パターン
				$pattern = '';

				//inner stack
				$inner_stack = [];

				//現在のモード
				$mode = 'parameter';

				//処理対象パート
				for ($i += 2;$i < $chunk_length;$i++) {
					$char = $chunk[$i];

					//パラメータモード
					if ($mode === 'parameter') {
						//パラメータ区切り文字が出るまで積み上げ
						if (($escape_lv % 2 === 0) && $char === ':') {
							$mode = 'pattern';

							//パラメータ名の抽出
							$parameter_name = implode('', $inner_stack);
							$inner_stack = [];
							continue;
						}
					}

					//エスケープ文字の積み上げ
					if ("\\" === $char) {
						$escape_lv++;
						$inner_stack[] = $char;
						continue;
					}

					//エスケープされていないbreathがあった場合積み上げ
					if (($escape_lv % 2 === 0) && '{' === $char) {
						$inner_stack[] = $char;
						$breath_lv++;
						continue;
					}

					//エスケープされていないbreathがあった場合積み下げ
					if (($escape_lv % 2 === 0) && '}' === $char) {
						$breath_lv--;
						//breathが0段になった時点で終了
						if ($breath_lv === 0) {
							break;
						}
						$inner_stack[] = $char;
						continue;
					}

					//エスケープは終わりました
					$escape_lv = 0;

					//インナースタックに積み上げ
					$inner_stack[] = $char;
				}

				//パターンの抽出
				$pattern = implode('', $inner_stack);
				$pattern = ($pattern ?: '[^/]*');

				//スタックに詰める
				$stack[] = '('. $pattern .')';

				//parameter名のリスト
				$parameter_list[] = $parameter_name;

				//パターンのリスト
				$pattern = str_replace('\ud', '[1-9][0-9]*|0', $pattern);
				$pattern = str_replace('\nn', '[1-9][0-9]*', $pattern);
				$pattern_list[] = '('. $pattern .')';

				//繰り返しもどし
				continue;
			}

			//文字が変わっているのでエスケープレベルを0に
			$escape_lv = 0;

			//スタックの積み上げ
			$stack[] = $char;
		}

		//処理の終了
		return [implode('', $stack), $parameter_list, $pattern_list];
	}
69857
protected function matchPath($path)
    {
        if (!preg_match_all($this->regex, $path, $matches, \PREG_SET_ORDER)) {
            return false;
        }

        foreach ($matches[0] as $k => $v) {
            if (is_numeric($k)) {
                continue;
            }

            $this->arguments[$k] = $v;
        }

        return true;
    }
971185
public static function addPath($path)
    {
        if (!in_array($path, self::$paths)) {
            array_unshift(self::$paths, $path);
        }
    }
1087334
public function setPath($path)
    {
        if (is_array($path)) {
            $this->path = '/' . implode('/', $path);
        } else {
            $this->path = (string) $path;
        }

        return $this;
    }
738694
public static function array_delete(&$arr, $path) {
		if(!$path)
			return;
		if(!is_array($path))
			$path = [$path];
		$lastkey = array_pop($path);
		foreach($path as $parent)
			$arr =& $arr[$parent];
		unset($arr[$lastkey]);
	}
20911
public static function addIncludePath(...$path): void
    {
        $paths = explode(PATH_SEPARATOR, get_include_path());

        foreach ($path as $r) {

            if (is_array($r)) {
                foreach ($r as $t) {
                    $paths[] = $t;
                }
            } else {
                $paths[] = $r;
            }
        }

        set_include_path(implode(PATH_SEPARATOR, array_unique($paths)));
    }
787204
function removePath($path)
    {
        $this->write(tap($this->read(), function (&$config) use ($path) {
            $config['paths'] = collect($config['paths'])->reject(function ($value) use ($path) {
                return $value === $path;
            })->values()->all();
        }));
    }
1131187
public function allowDirectory($path)
	{
		if (is_array($path))
			foreach ($path as $dir)
				$this->allowedDirectories[realpath($dir)] = true;
		else
			$this->allowedDirectories[realpath($path)] = true;
	}
1199167
public function removeAutomaticallyRemovedPath($path)
    {
        array_remove_value($this->automaticallyRemovedPaths, $path);
        $this->automaticallyRemovedPaths = array_values($this->automaticallyRemovedPaths);
    }
1068061
public function setPath($path)
    {
        if (is_string($path)) {
            $array = explode('/', $path);
        } else if (is_array($path)) {
            $array = $path;
            $path = implode('/', $path);
        }

        return $this
            ->setDot('path.string', $path)
            ->setDot('path.array', $array);
    }
259558
public static function addPath($path)
    {
        if ( ! isset(self::$_configPaths[$path]))
        {
            self::$_configPaths[$path] = $path;
        }
    }
548282
public static function set(array &$array, string $path, $value): void
    {
        $paths = explode('.', $path);
        $temp = &$array;
        while ($key = array_shift($paths)) {
            $temp = &$temp[$key];
        }
        $temp = $value;
    }
50685
public function delete($path)
    {
        $stmt = $this->pdo->prepare('DELETE FROM '.$this->tableName."  WHERE path = ? OR path LIKE ? ESCAPE '='");
        $childPath = strtr(
            $path,
            [
                '=' => '==',
                '%' => '=%',
                '_' => '=_',
            ]
        ).'/%';

        $stmt->execute([$path, $childPath]);
    }
309483
public function onFileChanged($path)
    {
        if (!Daemon::lintFile($path)) {
            Daemon::log(__METHOD__ . ': Detected parse error in ' . $path);
            return;
        }
        foreach ($this->files[$path] as $cb) {
            if (is_callable($cb) || is_array($cb)) {
                $cb($path);
            } elseif (!Daemon::$process->IPCManager->importFile($cb, $path)) {
                $this->rmWatch($path, $cb);
            }
        }
    }
458655
public static function unixslash(&$path) {
		if (\is_array($path)) {
			foreach ($path as $k=>$v) {
				static::unixslash($path[$k]);
			}
		}
		else {
			cast::string($path, true);

			$path = \str_replace('\\', '/', $path);
			$path = \str_replace('/./', '//', $path);
			$path = \preg_replace('/\/{2,}/u', '/', $path);
		}
	}
215303
public  function addClassPath($path) {
        if(!is_array($path)) {
            $path = array($path);
        }
        foreach($path as $item) {
            $this->classPaths[] = $item;
        }
    }
227390
public function setPath(string $path)
    {
        $info = pathinfo($path);

        $this->setLocation($info["dirname"] ?? "");
        $this->setName($info["filename"] ?? "");
    }