extern crate onig;

use onig::*;

fn scan_callback<'t>(n: i32, caps: Captures<'t>) -> bool {
    println!("scan: {}", n);
    println!("match at {}", caps.offset());

    for (i, cap) in caps.iter_pos().enumerate() {
        match cap {
            Some(pos) => println!("{}: {:?}", i, pos),
            None => println!("{}: did not capture", i),
        }
    }

    true
}

fn exec(pattern: &str, to_match: &str) {
    let reg = Regex::new(pattern).unwrap();
    reg.scan(to_match, scan_callback);
}

fn main() {
    exec("\\Ga+\\s*", "a aa aaa baaa");
    exec("a+\\s*", "a aa aaa baaa");
}
