I don't understand logic here as you set default to `""` but upper you set default but it is not used if you already set default to ""
And what is worse, if np is not valid, then it raise exception as match_data return nil and `nil[1]` raise exception.
So if I get how it should work, then it should be something like function that always return array with size 2 and if something is not valid, then return nil as element to use default value.

So my questions that need to be clear is 
1) is np always valid?
2) if yes, then it should always return result?
3) if no, what is expected response? something like `[nil, nil]`?