PHP Version
8.0
CodeIgniter4 Version
4.3.1
CodeIgniter4 Installation Method
Composer (using codeigniter4/appstarter)
Which operating systems have you tested for this bug?
Linux
Which server did you use?
apache
Database
MariaDB 10.6
What happened?
Reverse routing is failing for routes with regex containing parenthesis
Error: preg_match(): Compilation failed: missing closing parenthesis at offset 19,
vendor/codeigniter4/framework/system/Router/RouteCollection.php
line: 1238
Looking at the RouteCollection.php line 1211
preg_match_all('/\(([^)]+)\)/', $from, $matches);
It appears the regex is only matching to the first parenthesis and losing the rest.
Steps to Reproduce
$routes->addPlaceholder('imgFileExt', '^.*\.(?:jpg|png)$');
$routes->get('images/(:imgFileExt)', 'Images::getFile/$1');
$file = 'test.jpg';
url_to('Images::getFile', $file)
Expected Output
<base_url>/images/test.jpg
Anything else?
No response
PHP Version
8.0
CodeIgniter4 Version
4.3.1
CodeIgniter4 Installation Method
Composer (using
codeigniter4/appstarter)Which operating systems have you tested for this bug?
Linux
Which server did you use?
apache
Database
MariaDB 10.6
What happened?
Reverse routing is failing for routes with regex containing parenthesis
Error: preg_match(): Compilation failed: missing closing parenthesis at offset 19,
vendor/codeigniter4/framework/system/Router/RouteCollection.php
line: 1238
Looking at the RouteCollection.php line 1211
preg_match_all('/\(([^)]+)\)/', $from, $matches);It appears the regex is only matching to the first parenthesis and losing the rest.
Steps to Reproduce
Expected Output
<base_url>/images/test.jpg
Anything else?
No response