@aXenDev
This is likely to be an issue for us who use Windows on our dev machines...cue "Windows isn't supported..."
So, a little playing around and grabbing out all the $skipPatterns & $pathnames involved with my single application allows me to do the following as an isolated PHP file...same issue, and easier to figure out now.
<?php
$patterns[] = '/C\:\\wamp64\\www\\dev\\ips_47_dev_b/applications/neappavrecorder\/(?:hooks|setup|dev)/';
$paths[] = 'C:\wamp64\www\dev\ips_47_dev_b/applications/neappavrecorder\Application.php';
$patterns[] = '/C\:\\wamp64\\www\\dev\\ips_47_dev_b/applications/neappavrecorder\/(?:hooks|setup|dev)/';
$paths[] = 'C:\wamp64\www\dev\ips_47_dev_b/applications/neappavrecorder\dev\jslang.php';
$patterns[] = '/C\:\\wamp64\\www\\dev\\ips_47_dev_b/applications/neappavrecorder\/(?:hooks|setup|dev)/';
$paths[] = 'C:\wamp64\www\dev\ips_47_dev_b/applications/neappavrecorder\dev\lang.php';
$patterns[] = '/C\:\\wamp64\\www\\dev\\ips_47_dev_b/applications/neappavrecorder\/(?:hooks|setup|dev)/';
$paths[] = 'C:\wamp64\www\dev\ips_47_dev_b/applications/neappavrecorder\hooks\code_dispatcher_front.php';
$patterns[] = '/C\:\\wamp64\\www\\dev\\ips_47_dev_b/applications/neappavrecorder\/(?:hooks|setup|dev)/';
$paths[] = 'C:\wamp64\www\dev\ips_47_dev_b/applications/neappavrecorder\hooks\theme_core_global_forms.php';
$patterns[] = '/C\:\\wamp64\\www\\dev\\ips_47_dev_b/applications/neappavrecorder\/(?:hooks|setup|dev)/';
$paths[] = 'C:\wamp64\www\dev\ips_47_dev_b/applications/neappavrecorder\modules\admin\recorder\avsettings.php';
$patterns[] = '/C\:\\wamp64\\www\\dev\\ips_47_dev_b/applications/neappavrecorder\/(?:hooks|setup|dev)/';
$paths[] = 'C:\wamp64\www\dev\ips_47_dev_b/applications/neappavrecorder\sources\NeappAvRecorder.php';
foreach($patterns as $k=>$v){
preg_match($v,$paths[$k]);
}
Result (snipped for brevity):
( ! ) Warning: preg_match(): Unknown modifier 'a' in C:\wamp64\www\loggedin.php on line 18
Call Stack
# Time Memory Function Location
1 0.0005 363704 {main}( ) ...\loggedin.php:0
2 0.0005 364456 preg_match( $pattern = '/C\\:\\wamp64\\www\\dev\\ips_47_dev_b/applications/neappavrecorder\\/(?:hooks|setup|dev)/', $subject = 'C:\\wamp64\\www\\dev\\ips_47_dev_b/applications/neappavrecorder\\Application.php' ) ...\loggedin.php:18
( ! ) Warning: preg_match(): Unknown modifier 'a' in C:\wamp64\www\loggedin.php on line 18
Call Stack
# Time Memory Function Location
1 0.0005 363704 {main}( ) ...\loggedin.php:0
2 0.0016 365328 preg_match( $pattern = '/C\\:\\wamp64\\www\\dev\\ips_47_dev_b/applications/neappavrecorder\\/(?:hooks|setup|dev)/', $subject = 'C:\\wamp64\\www\\dev\\ips_47_dev_b/applications/neappavrecorder\\dev\\jslang.php' ) ...\loggedin.php:18
( ! ) Warning: preg_match(): Unknown modifier 'a' in C:\wamp64\www\loggedin.php on line 18
Call Stack
# Time Memory Function Location
1 0.0005 363704 {main}( ) ...\loggedin.php:0
2 0.0027 365328 preg_match( $pattern = '/C\\:\\wamp64\\www\\dev\\ips_47_dev_b/applications/neappavrecorder\\/(?:hooks|setup|dev)/', $subject = 'C:\\wamp64\\www\\dev\\ips_47_dev_b/applications/neappavrecorder\\dev\\lang.php' ) ...\loggedin.php:18
The problem is, I believe, as follows:
$dir = ( ( \defined('IPS\CIC2') and \IPS\CIC2 ) ? \IPS\SITE_FILES_PATH : \IPS\ROOT_PATH ) . '/applications/' . $app->directory;
On Windows, that will give you:
C:\wamp64\www\dev\ips_47_dev_b/applications/neappavrecorder
It's the / in there that is causing the later problems.
Manipulate $dir as follows, before the $skipPattern is created, will sort it. Likely going to need to be a manual edit by us if the expected cue comes along...
$dir = str_replace('/','\\',$dir);