Test, validate and match regular expressions
Matches version strings conforming to the Semantic Versioning 2.0.0 specification: a major.minor.patch triple where each numeric component disallows leading zeros (e.g., 1.4.0), optionally followed by a hyphenated pre-release segment (like -alpha.1 or -rc.2) and a plus-prefixed build metadata section (like +201303131447). The five numbered capture groups extract major, minor, patch, pre-release, and build metadata respectively. Used with global and multiline flags to find all semver strings across multiple lines of input.