// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
  let regex = Regex::new(r"(?m)^\[Error: +(?<source_path>(?<file>[^\s\n](?:[^\n:\\]+|\\.)+?)(?::(?<line>\d+)(?::(?<column>\d+)))?) *$").unwrap();
  let string = "/usr/local/lib/node_modules/stylus/bin/stylus:685
              throw err;
              ^
[Error: /Users/user/path/to/stylus/file/invalid.styl:34:5
   30| ==/UserStyle== */
   31| 
   32| @-moz-document regexp(\"https?://(www\\\\.)?typescriptlang.org/(v2/)?docs.*$\"),
   33| 	           regexp(\"https?://(www\\\\.)?(staging-)?typescript\\\\.org/docs/.*$\")
   34|     error(\"compile error\")
-----------^
   35| 
compile error
] {
  fromStylus: true,
  lineno: 34,
  column: 5,
  filename: '/Users/disk0/git.local/stylus-stylus/static/test/testFiles/invalid.styl',
  stylusStack: '',
  input: '/* ==UserStyle==\\n' +
    '@name           TypeScript Docs\\n' +
    '@description    Expands width of code blocks and moves navigation bar fully to the left\\n' +
    '@version        0.0.12\\n' +
    '@namespace      github.com/disk0/stylus/typescript.org/docs\\n' +
    '\\n' +
    '@author         disk0 (github.com/disco0)\\n' +
    '@license        MIT\\n' +
    '\\n' +
    '@preprocessor   stylus\\n' +
    '\\n' +
    '@var select     CodeFont \"Font for code displayed on page.\" [\\n' +
    '  \"Iosevka Extended*\",\\n' +
    '  \"Iosevka Expanded\",\\n' +
    '  \"Iosevka Term\",\\n' +
    '  \"Iosevka\",\\n' +
    '\\n' +
    '  \"SemanticHaskell\",\\n' +
    '  \"SemanticJavascript\",\\n' +
    '  \"SemanticCode\",\\n' +
    '  \"Hasklig\",\\n' +
    '\\n' +
    '  \"PragmataPro Mono Liga\",\\n' +
    '\\n' +
    '  \"monospace\"\\n' +
    ']\\n' +
    '@var number     CodeFontSize   \"Size of code in documentation\"          [ 14, 1, 500, 1, \"px\" ]\\n' +
    '@var number     CodeFontWeight \"Code font weight\"                       [ 400, 100, 900, 100 ]\\n' +
    '@var number     DocTextWidth   \"Width of text content in documentation\" [ 1000, 300, 5000, 100, \"px\" ]\\n' +
    '==/UserStyle== */\\n' +
    '\\n' +
    '@-moz-document regexp(\"https?://(www\\\\\\\\.)?typescriptlang.org/(v2/)?docs.*$\"),\\n' +
    '\\t           regexp(\"https?://(www\\\\\\\\.)?(staging-)?typescript\\\\\\\\.org/docs/.*$\")\\n' +
    '    error(\"compile error\")\\n'
}
";
  
  // result will be an iterator over tuples containing the start and end indices for each match in the string
  let result = regex.captures_iter(string);
  
  for mat in result {
    println!("{:?}", mat);
  }
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Rust, please visit: https://docs.rs/regex/latest/regex/