Вам нужно удалить заключающие в кавычки и убрать скобки.
Кроме того, вы можете использовать другую группу catch для получения строки. Первая группа уловов должна соответствовать всему, что не является скобкой. Используйте запасной массив в случае, если совпадение не найдено, и используйте деструктуризацию, чтобы получить строку и номер. Если строка / число undefined
, совпадения нет.
var key = 'value[0]';
var [, str, number] = key.match(/([^\[]+)\[([0-9]+)\]/) || [];
console.log({ str, number });