Question: I am trying to extract a string in this format **"[\r\n \"MG480612230220150018\"\r\n]"** using regex, i am trying to match number and alphabet with a min length of 5 character but it is not working, therefore i can guarantee i will extract this data (**MG480612230220150018**)

```
        Regex regex = new Regex(@"^[0-9a-zA-Z]{5,}$");
        Match match = regex.Match(availability.Id.ToString());
        if (match.Success)
        {
            var myid = match.Value;
        }

```

Answer: 
As has been said, it's an empty JavaScript object.

What's not so obvious I guess is *why* you would do that. A common reason is to make your code safe if the object happens to be `null` or `undefined`. Consider the example where you are passed an object and want to access an attribute of it:

```
function myFunc(obj) {
    console.log(obj.name);
}

```

That's fine, unless `obj` is `undefined`, in which case your code will crash.

A safer way is often:

```
function myFunc(obj) {
    console.log((obj || {}).name);
}

```

Now if `obj` is `undefined` then a new empty object is created instead. Getting the `.name` of that is safe and will simply return `undefined`.

This is obviously an over-simplified example, but the technique is widely used to make code shorter and easier to read (less tests and branches than putting `if` statements everywhere).
{} is a short way of declaring an empty object, the same way as using [] do declare an empty array.

`var my = parent.ajax = parent.ajax || {};` means that if the object `parent.ajax` exist then set it as the value. If not, set an empty object instead.