If using the oven, preheat to 350 degrees F. Pat the short ribs dry and season liberally with the salt and pepper.
Heat the olive oil in a large, heavy-bottomed Dutch oven or other heavy pot with a tight-fitting lid over medium-high heat. Working in batches if needed, brown the short ribs on all sides, about 8 minutes per batch. Transfer the ribs to a plate. Pour off all but 2 tablespoons of the drippings from the pot.
Add the onions, carrots, and celery to the pot and cook over medium-high heat, stirring often, until the onions are browned, about 5 minutes. Add the flour and tomato paste and cook, stirring constantly, until well combined and dark red, 2 to 3 minutes. Stir in the wine, then add the short ribs back to the pot. Bring to a boil, then lower the heat to medium and simmer until the wine is reduced by half, about 25 minutes.
Add the parsley, thyme, oregano, rosemary, bay leaves, and garlic to the pot, then stir in the beef stock. Bring to a boil and cover with the lid.
Braise using one of the methods below:Oven: Transfer the covered pot to the oven and cook until the short ribs are fork tender, 2 to 2 ½ hours.Stovetop: Reduce the heat to low so the liquid maintains a gentle, barely-there simmer, with a bubble breaking the surface every few seconds. Keep the pot tightly covered and cook until the short ribs are fork tender, 2 ½ to 3 hours. Turn the ribs and stir every 30 minutes to prevent scorching on the bottom, and add a splash of stock or water if the liquid drops below the halfway point on the ribs. Transfer the short ribs to a platter. Strain the sauce from the pot into a large measuring cup, pressing on the solids. Spoon the fat from the surface of the sauce and discard it. Season the sauce to taste with salt and pepper. If it is thin, simmer it on the stovetop for 10 to 15 minutes until it coats a spoon.