JSFiddle - React, Tailwind, and code Playground

HTML

<table>
    <tr><th>Path</th><th>Match</th></tr>
</table>

CSS

table { border-collapse: collapse }
td { border: 1px solid black }

JavaScript

var regex = /^\/(?!public|static|files)([^\/]+)?\/?([^\/]+)?\/?([^\/]+)?\/?(.*)$/i;
var table = $("table");
var paths = [
    "/controller/action/4/var:something/",
    "/controller/action",
    "/controller",
    "/public/action/4/var:something/",
    "/static",
    "/files/action"
];

paths.forEach(function (path) {
    var m, tr = $("<tr></tr>").appendTo(table);
    tr.append($("<td>" + path + "</td>"));
    if( m = path.match(regex) ) {
        var s = [].slice.call(m, 1).join("<br>")
        tr.append("<td>" + s + "</td>");
    } else {
        tr.append("<td><em>No match</em></td>");
    }
});