Regex returning only first match?

I have a text file containing a lot of rows, I'm filtering them to find the content I need, like:

HBIJB LX 0359 25Aug14 07:37

This is my Regular Expression:

/(?:(HB...)\s(LX|WK)\s((?:[0-9]){1,4})\s((?:[0-9]){2}(?:[A-Z,a-z]){3}(?:[0-9]){2})\s((?:[0-9]){2}:(?:[0-9]){2}))/g

My problem is that it's returning only the first match in the file:

[ 
  'HBIJB LX 0359 25Aug14 07:37',
  'HBIJB',
  'LX',
  '0359',
  '25Aug14',
  '07:37',
  index: 323,
  input: /* Omitted */
]

The response is perfect, but why am I getting only the first match, even if I used the global /g flag?

Edit:

I'm using NodeJs, and the script is nothing fancy:

var regex = /(?:(HB...)\s(LX|WK)\s((?:[0-9]){1,4})\s((?:[0-9]){2}(?:[A-Z,a-z]){3}(?:[0-9]){2})\s((?:[0-9]){2}:(?:[0-9]){2}))/g
console.log(regex.exec(data));

Edit 2:

Here an extrapolation of the content I need to filter.

Lorem Ipsum Ø HBIJB LX 0359 25Aug14 07:37 HBIPV LX 2092 25Aug14 09:09
Lorem Ø HBIJB LX 1404 25Aug14 09:59 HBIJB LX 1405 25Aug14 10:53

It works fine for me,

> var s = "Lorem Ipsum Ø HBIJB LX 0359 25Aug14 07:37 HBIPV LX 2092 25Aug14 09:09\nLorem Ø HBIJB LX 1404 25Aug14 09:59 HBIJB LX 1405 25Aug14 10:53";
undefined
> console.log(s)
Lorem Ipsum Ø HBIJB LX 0359 25Aug14 07:37 HBIPV LX 2092 25Aug14 09:09
Lorem Ø HBIJB LX 1404 25Aug14 09:59 HBIJB LX 1405 25Aug14 10:53
undefined
> m = s.match((?:(HB...)\s(LX|WK)\s((?:[0-9]){1,4})\s((?:[0-9]){2}(?:[A-Z,a-z]){3}(?:[0-9]){2})\s((?:[0-9]){2}:(?:[0-9]){2})))
> m = s.match(/(?:(HB...)\s(LX|WK)\s((?:[0-9]){1,4})\s((?:[0-9]){2}(?:[A-Z,a-z]){3}(?:[0-9]){2})\s((?:[0-9]){2}:(?:[0-9]){2}))/g);
[ 'HBIJB LX 0359 25Aug14 07:37',
  'HBIPV LX 2092 25Aug14 09:09',
  'HBIJB LX 1404 25Aug14 09:59',
  'HBIJB LX 1405 25Aug14 10:53' ]

This is a clarification and expansion of the correct answer provided by Avinash Raj.

The problem is that I'm using RegExp.prototype.exec() but for what I intend to do, I need to use String.prototype.match() first:

var values = "Lorem Ipsum Ø HBIJB LX 0359 25Aug14 07:37 HBIPV LX 2092 25Aug14 09:09\nLorem Ø HBIJB LX 1404 25Aug14 09:59 HBIJB LX 1405 25Aug14 10:53";
values.match(/(?:(HB...)\s(LX|WK)\s((?:[0-9]){1,4})\s((?:[0-9]){2}(?:[A-Z,a-z]){3}(?:[0-9]){2})\s((?:[0-9]){2}:(?:[0-9]){2}))/g);

values.forEach(function(row) {
  var regex = /(?:(HB...)\s(LX|WK)\s((?:[0-9]){1,4})\s((?:[0-9]){2}(?:[A-Z,a-z]){3}(?:[0-9]){2})\s((?:[0-9]){2}:(?:[0-9]){2}))/g;
  var data = regex.exec(row));
}

This is because String.prototype.match() is returning an array containing every string matching the given RegExp, whereas RegExp.prototype.exec() is returning an array containing the groups matched by the given RegExp, if there is more than a string matching, only the first one is returned.